From b774f281810d8b0b01f36841162c5fea412f4b56 Mon Sep 17 00:00:00 2001 From: xuchen-amd Date: Wed, 29 Oct 2025 11:32:06 -0400 Subject: [PATCH] [rocprofiler-compute] Remove grafana and mongodb integration (#978) * Remove grafana and mongodb integration * Remove grafana documentation assets * clarify changelog --------- Co-authored-by: Vignesh Edithal --- projects/rocprofiler-compute/CHANGELOG.md | 5 + projects/rocprofiler-compute/CMakeLists.txt | 7 - .../rocprofiler-compute/coverage/Coverage.xml | 108 - .../docs/data/analyze/global_variables.png | Bin 87313 -> 0 bytes .../Current_and_baseline_dispatch_ids.png | Bin 101740 -> 0 bytes .../analyze/grafana/Kernel_time_histogram.png | Bin 29305 -> 0 bytes .../grafana/Top_bottleneck_dispatches.png | Bin 50048 -> 0 bytes .../docs/data/analyze/grafana/cpc_panel.png | Bin 42591 -> 0 bytes .../docs/data/analyze/grafana/cpf_panel.png | Bin 29738 -> 0 bytes .../analyze/grafana/cu-arith-ops_panel.png | Bin 22320 -> 0 bytes .../analyze/grafana/cu-inst-mix_panel.png | Bin 21937 -> 0 bytes .../cu-mafma-arith-instr-mix_panel.png | Bin 10743 -> 0 bytes .../grafana/cu-pipeline-stats_panel.png | Bin 23575 -> 0 bytes .../data/analyze/grafana/cu-sol_panel.png | Bin 20855 -> 0 bytes .../cu-value-arith-instr-mix_panel.png | Bin 27579 -> 0 bytes .../grafana/cu-vmem-instr-mix_panel.png | Bin 15328 -> 0 bytes .../grafana/instr-cache-accesses_panel.png | Bin 20271 -> 0 bytes .../analyze/grafana/instr-cache-sol_panel.png | Bin 15365 -> 0 bytes .../analyze/grafana/l2-accesses_panel.png | Bin 55988 -> 0 bytes .../l2-fabric-interface-stalls_panel.png | Bin 20315 -> 0 bytes .../grafana/l2-fabric-transactions_panel.png | Bin 49092 -> 0 bytes .../l2-per-channel-agg-stats_panel.png | Bin 67449 -> 0 bytes .../data/analyze/grafana/l2-sol_panel.png | Bin 21252 -> 0 bytes .../data/analyze/grafana/lds-sol_panel.png | Bin 17621 -> 0 bytes .../data/analyze/grafana/lds-stats_panel.png | Bin 33861 -> 0 bytes .../analyze/grafana/memory-chart_panel.png | Bin 110545 -> 0 bytes .../data/analyze/grafana/roofline_panel.png | Bin 112803 -> 0 bytes .../grafana/sl1d-cache-accesses_panel.png | Bin 41882 -> 0 bytes .../grafana/sl1d-l12-interface_panel.png | Bin 15813 -> 0 bytes .../data/analyze/grafana/sl1d-sol_panel.png | Bin 15046 -> 0 bytes .../docs/data/analyze/grafana/sol_panel.png | Bin 73168 -> 0 bytes .../grafana/spi-resource-allocation_panel.png | Bin 50634 -> 0 bytes .../data/analyze/grafana/spi-stats_panel.png | Bin 35244 -> 0 bytes .../analyze/grafana/system-info_panel.png | Bin 39668 -> 0 bytes .../docs/data/analyze/grafana/ta_panel.png | Bin 51887 -> 0 bytes .../docs/data/analyze/grafana/td_panel.png | Bin 24483 -> 0 bytes .../data/analyze/grafana/top-stat_panel.png | Bin 77241 -> 0 bytes .../grafana/vl1d-addr-translation_panel.png | Bin 20649 -> 0 bytes .../grafana/vl1d-cache-accesses_panel.png | Bin 53977 -> 0 bytes .../grafana/vl1d-cache-stalls_panel.png | Bin 18565 -> 0 bytes .../grafana/vl1d-l2-transactions_panel.png | Bin 16660 -> 0 bytes .../data/analyze/grafana/vl1d-sol_panel.png | Bin 17948 -> 0 bytes .../grafana/wavefront-launch-stats_panel.png | Bin 34983 -> 0 bytes .../grafana/wavefront-runtime-stats_panel.png | Bin 36450 -> 0 bytes .../docs/data/install/datasource_config.jpg | Bin 85019 -> 0 bytes .../docs/data/install/datasource_settings.jpg | Bin 188825 -> 0 bytes .../docs/data/install/grafana_welcome.png | Bin 277970 -> 0 bytes .../install/grafana_workload_selection.png | Bin 64950 -> 0 bytes .../docs/data/install/import_dashboard.png | Bin 58539 -> 0 bytes .../data/install/install-decision-tree.png | Bin 360324 -> 0 bytes .../omniperf_server_vs_client_install.png | Bin 176046 -> 0 bytes .../docs/data/install/opening_dashboard.png | Bin 59014 -> 0 bytes .../docs/how-to/analyze/grafana-gui.rst | 1076 -- .../docs/how-to/analyze/mode.rst | 7 +- .../docs/how-to/analyze/standalone-gui.rst | 8 +- .../rocprofiler-compute/docs/how-to/use.rst | 51 - projects/rocprofiler-compute/docs/index.rst | 3 - .../docs/install/core-install.rst | 20 +- .../docs/install/grafana-setup.rst | 219 - .../docs/reference/faq.rst | 12 - .../docs/sphinx/_toc.yml.in | 3 - .../docs/what-is-rocprof-compute.rst | 63 +- .../rocprofiler-compute/grafana/.dockerignore | 1 - .../rocprofiler-compute/grafana/Dockerfile | 73 - .../dashboards/RocProfCompute_v1.0.3_pub.json | 13325 --------------- .../dashboards/RocProfCompute_v1.0.5_pub.json | 13331 --------------- .../dashboards/RocProfCompute_v1.0.7_pub.json | 13325 --------------- .../dashboards/RocProfCompute_v1.0.8_pub.json | 13397 --------------- .../dashboards/RocProfCompute_v2.0.0_pub.json | 13415 ---------------- .../grafana/docker-compose.yml | 43 - .../grafana/docker-entrypoint.sh | 37 - .../rocprofiler-compute/grafana/grafana.ini | 1007 -- .../rocprofiler-compute_plugin/.jscs.json | 14 - .../rocprofiler-compute_plugin/.prettierrc | 5 - .../rocprofiler-compute_plugin/CHANGELOG.md | 5 - .../rocprofiler-compute_plugin/Gruntfile.js | 88 - .../rocprofiler-compute_plugin/LICENSE | 21 - .../rocprofiler-compute_plugin/README.md | 19 - .../rocprofiler-compute_plugin/package.json | 43 - .../server/config/default.json | 9 - .../server/mongo-proxy.js | 647 - .../server/mongodb-grafana-proxy.plist | 38 - .../src/css/query-editor.css | 3 - .../src/datasource.js | 147 - .../src/html/annotations.editor.html | 28 - .../src/html/config.html | 47 - .../src/html/query.editor.html | 48 - .../src/html/query.options.html | 26 - .../src/img/rocprofiler-compute_circle.png | Bin 68305 -> 0 bytes .../src/img/sample.PNG | Bin 48157 -> 0 bytes .../rocprofiler-compute_plugin/src/module.js | 41 - .../src/plugin.json | 28 - .../src/query_ctrl.js | 50 - projects/rocprofiler-compute/pyproject.toml | 6 +- projects/rocprofiler-compute/src/argparser.py | 102 +- .../rocprofiler-compute/src/rocprof-compute | 2 - .../src/rocprof_compute_base.py | 25 - .../src/utils/db_connector.py | 245 - .../tests/test_db_connector.py | 414 - .../tests/test_import_workloads.py | 4567 ------ 100 files changed, 15 insertions(+), 76189 deletions(-) delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/global_variables.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/Current_and_baseline_dispatch_ids.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/Kernel_time_histogram.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/Top_bottleneck_dispatches.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/cpc_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/cpf_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/cu-arith-ops_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/cu-inst-mix_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/cu-mafma-arith-instr-mix_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/cu-pipeline-stats_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/cu-sol_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/cu-value-arith-instr-mix_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/cu-vmem-instr-mix_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/instr-cache-accesses_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/instr-cache-sol_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/l2-accesses_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/l2-fabric-interface-stalls_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/l2-fabric-transactions_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/l2-per-channel-agg-stats_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/l2-sol_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/lds-sol_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/lds-stats_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/memory-chart_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/roofline_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/sl1d-cache-accesses_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/sl1d-l12-interface_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/sl1d-sol_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/sol_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/spi-resource-allocation_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/spi-stats_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/system-info_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/ta_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/td_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/top-stat_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/vl1d-addr-translation_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/vl1d-cache-accesses_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/vl1d-cache-stalls_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/vl1d-l2-transactions_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/vl1d-sol_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/wavefront-launch-stats_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/analyze/grafana/wavefront-runtime-stats_panel.png delete mode 100644 projects/rocprofiler-compute/docs/data/install/datasource_config.jpg delete mode 100644 projects/rocprofiler-compute/docs/data/install/datasource_settings.jpg delete mode 100644 projects/rocprofiler-compute/docs/data/install/grafana_welcome.png delete mode 100644 projects/rocprofiler-compute/docs/data/install/grafana_workload_selection.png delete mode 100644 projects/rocprofiler-compute/docs/data/install/import_dashboard.png delete mode 100644 projects/rocprofiler-compute/docs/data/install/install-decision-tree.png delete mode 100644 projects/rocprofiler-compute/docs/data/install/omniperf_server_vs_client_install.png delete mode 100644 projects/rocprofiler-compute/docs/data/install/opening_dashboard.png delete mode 100644 projects/rocprofiler-compute/docs/how-to/analyze/grafana-gui.rst delete mode 100644 projects/rocprofiler-compute/docs/install/grafana-setup.rst delete mode 100644 projects/rocprofiler-compute/grafana/.dockerignore delete mode 100644 projects/rocprofiler-compute/grafana/Dockerfile delete mode 100644 projects/rocprofiler-compute/grafana/dashboards/RocProfCompute_v1.0.3_pub.json delete mode 100644 projects/rocprofiler-compute/grafana/dashboards/RocProfCompute_v1.0.5_pub.json delete mode 100644 projects/rocprofiler-compute/grafana/dashboards/RocProfCompute_v1.0.7_pub.json delete mode 100644 projects/rocprofiler-compute/grafana/dashboards/RocProfCompute_v1.0.8_pub.json delete mode 100644 projects/rocprofiler-compute/grafana/dashboards/RocProfCompute_v2.0.0_pub.json delete mode 100644 projects/rocprofiler-compute/grafana/docker-compose.yml delete mode 100755 projects/rocprofiler-compute/grafana/docker-entrypoint.sh delete mode 100644 projects/rocprofiler-compute/grafana/grafana.ini delete mode 100644 projects/rocprofiler-compute/grafana/plugins/rocprofiler-compute_plugin/.jscs.json delete mode 100644 projects/rocprofiler-compute/grafana/plugins/rocprofiler-compute_plugin/.prettierrc delete mode 100644 projects/rocprofiler-compute/grafana/plugins/rocprofiler-compute_plugin/CHANGELOG.md delete mode 100644 projects/rocprofiler-compute/grafana/plugins/rocprofiler-compute_plugin/Gruntfile.js delete mode 100644 projects/rocprofiler-compute/grafana/plugins/rocprofiler-compute_plugin/LICENSE delete mode 100644 projects/rocprofiler-compute/grafana/plugins/rocprofiler-compute_plugin/README.md delete mode 100644 projects/rocprofiler-compute/grafana/plugins/rocprofiler-compute_plugin/package.json delete mode 100644 projects/rocprofiler-compute/grafana/plugins/rocprofiler-compute_plugin/server/config/default.json delete mode 100644 projects/rocprofiler-compute/grafana/plugins/rocprofiler-compute_plugin/server/mongo-proxy.js delete mode 100644 projects/rocprofiler-compute/grafana/plugins/rocprofiler-compute_plugin/server/mongodb-grafana-proxy.plist delete mode 100644 projects/rocprofiler-compute/grafana/plugins/rocprofiler-compute_plugin/src/css/query-editor.css delete mode 100644 projects/rocprofiler-compute/grafana/plugins/rocprofiler-compute_plugin/src/datasource.js delete mode 100644 projects/rocprofiler-compute/grafana/plugins/rocprofiler-compute_plugin/src/html/annotations.editor.html delete mode 100644 projects/rocprofiler-compute/grafana/plugins/rocprofiler-compute_plugin/src/html/config.html delete mode 100644 projects/rocprofiler-compute/grafana/plugins/rocprofiler-compute_plugin/src/html/query.editor.html delete mode 100644 projects/rocprofiler-compute/grafana/plugins/rocprofiler-compute_plugin/src/html/query.options.html delete mode 100644 projects/rocprofiler-compute/grafana/plugins/rocprofiler-compute_plugin/src/img/rocprofiler-compute_circle.png delete mode 100644 projects/rocprofiler-compute/grafana/plugins/rocprofiler-compute_plugin/src/img/sample.PNG delete mode 100644 projects/rocprofiler-compute/grafana/plugins/rocprofiler-compute_plugin/src/module.js delete mode 100644 projects/rocprofiler-compute/grafana/plugins/rocprofiler-compute_plugin/src/plugin.json delete mode 100644 projects/rocprofiler-compute/grafana/plugins/rocprofiler-compute_plugin/src/query_ctrl.js delete mode 100644 projects/rocprofiler-compute/src/utils/db_connector.py delete mode 100644 projects/rocprofiler-compute/tests/test_db_connector.py delete mode 100644 projects/rocprofiler-compute/tests/test_import_workloads.py diff --git a/projects/rocprofiler-compute/CHANGELOG.md b/projects/rocprofiler-compute/CHANGELOG.md index b157cd4124..e2903dc9cf 100644 --- a/projects/rocprofiler-compute/CHANGELOG.md +++ b/projects/rocprofiler-compute/CHANGELOG.md @@ -20,6 +20,11 @@ Full documentation for ROCm Compute Profiler is available at [https://rocm.docs. ### Removed +* Removed `database` mode from `rocprofiler-compute`. This is to move our focus from grafana + and mongodb integration to other visualization methods such as: + * Analysis DB based Visualizer (upcoming) + * Plotly server based standalone GUI + * Commandline based Textual User Interface ### Optimized diff --git a/projects/rocprofiler-compute/CMakeLists.txt b/projects/rocprofiler-compute/CMakeLists.txt index f758b04b4d..971ecaa789 100644 --- a/projects/rocprofiler-compute/CMakeLists.txt +++ b/projects/rocprofiler-compute/CMakeLists.txt @@ -445,7 +445,6 @@ if(${ENABLE_COVERAGE}) test_L1_cache_counters test_num_xcds_spec_class test_num_xcds_cli_output - test_db_connector test_utils test_autogen_config ) @@ -542,12 +541,6 @@ install( COMPONENT main PATTERN "__pycache__" EXCLUDE ) -# grafana assets -install( - DIRECTORY grafana - DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME} - COMPONENT main -) # samples install( DIRECTORY sample diff --git a/projects/rocprofiler-compute/coverage/Coverage.xml b/projects/rocprofiler-compute/coverage/Coverage.xml index 478d115bda..b7b56945e1 100644 --- a/projects/rocprofiler-compute/coverage/Coverage.xml +++ b/projects/rocprofiler-compute/coverage/Coverage.xml @@ -2214,114 +2214,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/projects/rocprofiler-compute/docs/data/analyze/global_variables.png b/projects/rocprofiler-compute/docs/data/analyze/global_variables.png deleted file mode 100644 index 87f49b5e14cbf829e8447424f9b18e20871c93cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87313 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 Vi}Hi~k0DRoxTd34eD&Tx{~!G6{}TWJ diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/Current_and_baseline_dispatch_ids.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/Current_and_baseline_dispatch_ids.png deleted file mode 100644 index 811bf99692670b9a1a5756eae24a4721384d6ecb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101740 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%0DFiH4&^K9km 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 diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/Kernel_time_histogram.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/Kernel_time_histogram.png deleted file mode 100644 index 8ec0fd83ba33f853790f4994c389ba0c882db0fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29305 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 z@{G((re->
  • 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 LyK|*y?>zb+mj;H) diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/Top_bottleneck_dispatches.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/Top_bottleneck_dispatches.png deleted file mode 100644 index 31d13a0a2f1cf98f0054a92e09f2bf48a8a1df87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50048 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 a?u1^kwO$YK6~{>*OXH!=1N1%H=l=rvG(lDX diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/cpf_panel.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/cpf_panel.png deleted file mode 100644 index a43b878536660e93601309d98538a17839163ac5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29738 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 Rte^dX{8N=D#gC2O{To)8Czk*K diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/cu-arith-ops_panel.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/cu-arith-ops_panel.png deleted file mode 100644 index 073b64d707d25f680d27e29c65d77a5ab0c2d7dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22320 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 diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/cu-inst-mix_panel.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/cu-inst-mix_panel.png deleted file mode 100644 index 1b9a6d2b25cbdb0eb3da64af43a76bdbddd886bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21937 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

    CHiJRq}2O9B@CU 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 E0Js&d3;+NC diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/cu-sol_panel.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/cu-sol_panel.png deleted file mode 100644 index 8e8f46174f7c3d510fc85517e5d598cd4f10b2dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20855 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 diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/cu-value-arith-instr-mix_panel.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/cu-value-arith-instr-mix_panel.png deleted file mode 100644 index de3750d2d0bfd6bec2bad7b060f83285a6b4edde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27579 zcmdpe_d`=%yCsS!h=_uKf{5j%H$jS06%>`;Lq|&J5NV-O1zfyQbL{u6FNzMgQb?k8*E^f%*YrcHLMNz0PdQ&C;BN0@ z`Y?;6Sk;;gIyz|Hp?zlc%Tkqn~8j))>ORrp^*6zy8l)U(bb45avOY#)$0uuZFXtI>JK2 z$^Xx@Qrgw3ijpxuWmXNfmC5wl_(;5hdOlc^$^g9QR=^ZP%(0B%Gs)Z^g%u(qBG+wA zHD#0HM;A&&i(h?B#tEewBCr0Ox(U3N$a)-Z#18LxM%G5Fpe!P?fIq5Nw&%$Nk6r_w zED>GrDG`{=t9Izr( zb*R?pG+=ycUR~lSFI#s~!tKSG-dxsX%4A*QSoBfxpo8x~ELKipL?USEY{P_Oj3`=t zQgie=R+#f1e=)mvftq8$i2~)Ayqsx;ksmS5;-9ZPAGhx8l~G zWlfXqelHA?lYYaKNzPKS5T;+3my|F(*K<$Qtxe28FNpY2=Ed(zZQbqg29B5uEzB2# zUD7wwvHYEFH*<4vr81p?l!0D~(04|VG%4C4pY0MiA#FJE!87R2Xa1Tvs&+ZQ4=axJ z1CtpY)@b`b^G-hqOb2E$$qNZ-X%RWrk)Qk?6C3jA*Y0>3nN+D@zL1gLFN-yMjSTPo ziui|BPuDeII}tRJw0Aem5|eeo5yd7JJwN`@wRd1bPG6>(^|hCmLw0B9!7C#FtSPBF zey%WX%pyaGMrxs|Dl@$z$L+3F*))3afZT^_!xD|skSUD8#iZjBpS&soZAW}$yh(<@@|xBf|!|K53H`*tUvB*(Q!ng4Yy$!?}e5hc=%ym zqydJ*`4Nu84bDUtD>+c)l%{XseN%&f>*&Bx4F1|COye@}AywL4?J2_xd;4?I0TAz3 ztdo3cBT!2%{(2+pC!GTEP0<%-&$v-L`rbxY>fTA6OI4n~crVx+uCAAwXJw$#^=oR# zNqcOkXxmguZ>65uV|MZ-i4_gBM|GwBsCTd^ny%-H46;oB+~jn4ulgf55z$y&bMaN4 zLI;$-{Xs(G$Dz%Up))`CjqclRGpNz^ryEm`N zfptTAc(#P?=Z?4Yoo5|!-n&fU%R6g!7aXT@h%s2$=rPF-3#P=0s|fdcJ9gdTejT#x z3V^$4(Q$ZcIQPm#lsEFi*K1%v>Yv?I>QW{?AFR{v&he{`9hvpG-%Q%dQms$8fJyva zRC%hWry!?IXAqvt`9KXi%e<*IeDmfix!SW@?^XrYYQ9WsLpM#<@hSUO%`Y-ce6PBB z1~lRxsJQW+Q9Y7gI8Aq3nwM~s>h)esFx!c6^OA|}d7u(1+B=#}4UDBS{&YTG$Wb8* zo2oh>CcN2*(}QN3iu~x#^|=?*GGBKR@7$jAb~Mf$%;|jYC5B%vuiaDdVN16iMIB|N z9KTz6R^cvjq_-l*vs)uC;h3@D$nH7KB$?5?8`ak9VZ0x|4Ru}gZ2Q*vO23TBW1W1- zP_#+&4*JY%zMKqo(ZL&6Jh4BAvOIT7W*Yi_a;CP|LFYV$LrI*+P27$iqAQAzsIh;q zwAd@0+W)1Tca>quoBZI#E=Ab6dxWTg#~--1`AUANs=;&UN?eRI{r++9>MRSxeFG@O zRNq3Yt2vrQa-uj$*JRuyV!}m9USa+1-VhzSooK76u;dQ@fty+)uKlbU^NA&G{pV{BU8X)HzmS!i>8f{b}XA8G0y-E&$ zdq^IpDc(p0_!zj`GZhXQ+9-rr#B;D@?*)ZFHeh=aGvxLbDS>r;wkLT5Jy%&j|F47j(R&P%6dIEJy6BCp?_-QU;#Yqy86W&&NfG?cG4r~WsmGIEk_JGClP(SaI z`ei^O0Xfkd(W7Y-KeSX&4&-8i1 z2ib_Fcd!|nzX7V|rP^Uhn zf7h_nHGjXrz4H;7KDJE*CM#cP5hs%Ct`$+-C5;~`P6?>J{aCelANSgHRf~I!_>eZxgxiXIJ1?{+dI~$qo!V>P3OAj{g+SVMu z>hJy>Q*W$v^k(k~|87j_q@2~ zO*&Z-|Kh@W=bVL6D6#6`LJ;CIk!d$(lIGU>gd%ER7DJ>}$v5?D{JLSNh;6`Xlw|R> z4fM)VC3b(H{>yW2%4L5>szZxJ{8VNW$}99((nkR$dKz~#o@kw-y-xV4Q_qi-hD{e? z^OR9s24?)_QXpNG*m$0hqYtDzQ5n0bI_QO;Pu$!3xPrAz)ZZ>ykgyIeAz*y|5jjb< z@B-A{uf-FtQfyU{ekAK`cWhI9K8>Msa)Z9YTpW9yy;IYp#3%Lrjx`vf8`05v%zv=* zcKv=D)7UF_-Fa(mhCMv{x!lrBBWF>=hE95Xabv!4_xUx61m!t%ojZfv4YM46s}hBV zB4eg=a*CLh*uB#zrDZbVq&_CudlgyaJ|EUzpA2EluMIFe)#jl6Ye^J*B$!}TltyGg z{nzN?ZJ+Aj{%luI9ak)1H@#)|u`yEr*29BvjAx00-y-#C-GpgQGaC|T*yoc7tm0x; z#Rs5GUZ*u_N{I~CY}{5Ai}@N4)LC|-u<68o~-S$~EbwI?J|(Q~_|Wvi;nM9Febn9^<6-VPOm z`Rz3#D;xDJivDcRL`3~A)FpNLIP{_*ay*z}q-wKyaN1!`&{3&;E&`v6UaMf+-ZmFJ za+Ttv4yQFco3)ECo_@M*RQ%xdP*~u2foy+)3DxkH)q7t%Oi{tE@v=}<|9}fzYr=>z z81u;W$S3S8Lr83&5rf_53;c#P)x=EZ;D+_+0BmTbS6>ySFOd0Jclpss-onNArxzQ( z0gOr597Dm>BMHXi!uR4QU!-NLKTZuezl#t*BGIqKXB^QX#9OEyZ?}qaZUDWV#p{4I zPB-z3V_7*&v0Fpf-4{OEP@V4S6H3di3`zgZfh{s-iE7ZXoeb)Xfu=mZN|CGR$6KYf z7YFrASl*RW)&~N<%sJf)!9G1*~-mn2Z%XUVCfW z_@lPLRl7IUv31HUrEid0duqB)>C4;HfuqxTpT+u=;~%$~brKb##|vVeT8mofLfMxB ze=mZIFvC0D=N=lzkc&C+*>`=J%`-CbrA8>Pq5Mjzp~W-vAUU72?3&_+5Tww1q}^(n z?pXToQ1iVBC~4}E@QWQpujSs_Irey`4eNB=A2h64*66W*D+XB3B}T0HO`zHDN&Vz= z(HbJ$kd7POG=Ah~ExmfS&(}~EH@JQ}M=aUx)@3Gn)^RCJqufgOAA^Ch&|(hjob$FP0*FmtBXT8EO++ELbqCMT&o)MEOTKV%%`Du-HvPt3oVSv!R4pSlEbsvyVxHKM#-Yyd} zO5vm`DAt}5J|c&I5Nz$-{|zX*$r4{dJt+c3#i1!FaDt|RJs122G&Nh`e_lYdLH zN=JDaBo`H3H(a2`+-~c-t;kj)y&qYq4S#aX{pxg#eZ_OJuRijTKecvS?N!c{M4hPB zB+isrgRh+T;-bKQs%7jS-`H&?nN`~0ADaVL|B?|Hc)CN6s>IhH!}p_%6}oC~J(u85 z+`X*%DEfwyRUbn>-PCCY?)Bo+ru0n4Rq-{E5ln^fDbRx9_$@G{Lye{svlUinfQMOUv(wYhh-)pAEmOrSgZ`pry7+lJwt zd}R?&JLNAFhLf)HgXBw5mI}2eas6yG1Yrhu*&nXZVO7%^Krb7#Q`0whIoQzGA?oNd zP5v-w2oXqTxzs2Z)EhQA+(Ko-T6Y$4pgAAPZXei3s6Rj7YK=$paZmAYrx)ftMdb{9 zb0;@~b5(FpVll>_IpXU*hPt`zMUWL!%U(J+$*%NOXQVxc8yDgKHcE3=WHlV zhqgu~NRH^aE96wBWV(27YcHA&)?#9Yd;@Mfr&hc&hhb;ElCG!v>32X%5CUM#8(z(m zgt7DhNaIT^-J`jUSSg)oPEK#wTU^w@TV8Y$D$jWXVtE=Ui4nGUPaf2XpP7O z-)c!^KH*CLemkZlM)D9T#I??cZuBaMD5Q`D%1D3_K{w0|XWWLiUxB%gCs5p?X`uoh z$}cZ_>miTG;l9QE_n5k1bu2_td~Y4f4fQ^-iWMu}t-$)ly2Ovlf9NmD*jY1jAcIYP zF7bc&!#k<872w|Vy6Do%`w(j>S^Yf)UAa|PDFpY`q}8t;p_)grGJNZLGOP4l32=D;#-b_wT^y#XT`5R6H@LRjOGq1up+Q)*6Am7MBySKsVnP9|8 zIOTGSjbdq$DIX~XD=c_1x<*~^g)44>223+L+sAQ-o@~<+_-d7DbVs*2MDWn`GU{bW zt33+TarIF#mB4prk9=wfPoeZa(iIdtqrk~b(lN24q^JJNcQ9&=^!ki@!mU@~rq+t_j` zs8McVxkJl@Rht+~zai6T%D^Hlnz0ep26=dq*zb({(d=mbHK-C4B|%$U9We|ScmZMk zC$NKKsvlu+a<(>u?qJ( ziJMu1ZO$aj3$Zn9)xnI&a!CSb-*oGKE*noXm5v~jO+fn>FQT+-zVe5{!KNp19X#yM z>c*eofrXzv*+QaUN@r-jHtP=Xc$_A*=vy+YdYQiM1uf&X$FH?QRA+K;PB61!^T}kZ z>esFzHlpP04A&J5JK09vwKDA@jW60-L$G#M?v+9J6={Di+(gH}q!CR^i6jdrl%NvM zzF}QXc8NW*LWMBbR4H6E$0_&1J z`z7=1>A4>~b%e>I?wsYT;8&aSIcu^+<|8T8pcd1Z7rU4rPQM>k0+0%2E>4Jou;fJV zBNwZWD1)yXSq|bZUuT>i+mLef%|XF2r?xFW^|oAfFj`W6zD=gsE6lp+GpFJQI{8M} z=PmvTFT<2WqX(IhFk;69vJZgm>;Aw zEc>O8Xm}!O{q{pDfA}x3Ac#sPa7gs_-JTKQd^KoKUri989C26f=m5H74C9(IRqCidEFhV@9YEe^~pgEztMbV<_e;OL6 z@g)04{D)gRv88)K!;3)!@!vF51y^$&;Pp?7YSnKq$ht{ybq3w5g&of&H@|sIsLUUV zZB2<~#cj`4sR(C@Hqh1V@ek{%%zrvhyvjrVYFb&`@fVXOT|fP~xd+;-xM87&@w0g` zpYrjfhyYL`gSKm)T_S4YF+#l9ANfRjJ0`>Q^EZ7vQEwamTU@FMdpyrQ(u;UamkJ}1 zvWp!IAxHyKpfXXkCrYcEqc!6`<=%>UEaWt#X`DbTjTvclwei{lbqvnwxh{6-szjs% zK#UV%M)VKAe|B+61v5B3-6MBH5G*~L2tgqzSsyrfeEMl@I1hct@gKzZaauW9n#!y( znh_uAz=y_e^aos=JQ%!W718+z!%d_^fE7EIz`%UAvrc;-iS!NrLmicAeD-UMcZ*!q zt9Zw%R-gYD=9f9-jMaB4Y6IV(nzmFlsa)_6@y$}=FPDg3KH26JDN0bwJ+^@`1ycbA z!r>Ptk79y@KpzM~^O3<*s?3OA2mI{?T{Rd_a*C>6I{k~IAan=vczJ?kn=l6i9HS|Y zRLfl*Qepy@Byg&(&9kN{V2@F>Ub%zHnAZ{CW9NP(Md)&Zs>A>jfj+cwZb&!E_NBnz z6UuJ6zjZEOJSY#o^%v>3vDX%{WW!yw!8iYXAp05ys8+UQ^1w@0iU8P>EI#TJvJAhv zZ|!7OIREO%aa1Hn{i5yOg?EmWLlDpx5CBKG|? z>a+D}1HS)sQN`q zQMkB}DOx}*?-heh&%V|8`grb&+`Yxi!|?OaAe!E(p}oi%z-$>KRG_S~sLg9jw`}+A zAIbuBE5w$y5 zwG3tVaDJ)rS`c7O&Tg<|*gK6y{>{XIAE0=RZO>{KjWysAo#&g-FUeM`my z#g|a_ZP(wQi@Y*LhH2EG#)VI*8y?j;7;vSl`G)q6zj=gH#g^W8Oa|Ues*5RwB}oOC z!wXOf?Szf{SP*C}Zo(nV0&z@cE-dMbU&86RmP+0O=(X|Ay2exx^@`aJKHSg9KiY8x z(SlXBXoFo4fbTcR`SgV})OuRB*82#G2tUz%NbfN|G0`!f%g&HB?Rlc_^?du=1hD|^ z2|ZHU%vZ+LaE7+n-oIu${-9QOfBqCEdOU|J0kfpxa|!xn?m$4W_j&z4Yq$i4@k9iB`AzC|C~NdBG;$Y-h( zD57Q~I?-0H1KfIx33WfgdEQ|?S9*-TBlP_MGP%`qnJ8`haMv$nIN5!9Lely@qtY*f z4asN<+4cn3i&)e&SO+tbW!A}C$Um=n1K(3R`XidkoP~xK(Wm9A1ZcpY@)tNotqo5s ztWT!bZ{@M0u1DKAi*m%>a$@7*Ht27vo`64sn>&U$Gl#yic%Ju~E2kSiN5kK)XrQ8L z&&WfjVe$HpaVSFT^b%L?)(Pl#06hR6yJbziP!7=d8lt*DMaqn~d6V%+EDRX_!nF4&0U5(u5X)okJt1D?D;#3!6Wn4O>%IW`s>dRjeTJ0vq3EmB?D)%{n!3$3BtJC`7g*nZ_(aHODCUOQ@99)OL*9Z-% zZk*=WS5|?WEd%=REz3Ttld>o;4TK!PFcM%ol-H(b;tpQ6;~eH3Ik@h4{})yD z$UYCvsbBm7F?hluDAF>(vS9Z1Ivp!#)pUz+ES+-C{XTR{K##nrj$S58&&sOLbH1i0 zaF4*?^m@+S7e2XbQV3|nhsL$Ivjj4YDZs?T9LS%$`RS`J>ACzqmbXy% zhv)8vtqxsn{BBbsTV)1|7xXpHJa%_#I)~2JH@wu5zjjlzE_m^qy8@{!?>N)LHBk9a zMJQrkPo^e>Qk+V{c3lx=`kk{e0J z63_`WSvD>+)-PX^%H8HLRCK^CkWib3&?F5-OMWRiSs3TcQ!g?FB^gGqR&ZA7k*ULf z3N(CEE8wizxc?6@Itq4m$JJan7|TO?fB3t@H9V+IH>~Kc|J6F2gR4EW?M$Hvmb>6q zt}+d1ayRIAA(Tl2{i>{<HEmbUr3tf-orJCfbk3 z41Rg`TED#Ww+hG#rHz@*NG(A|rI~^Qz2E?_5v}Rel;=1BOnT4uJ6SO4A2K#vy6eA# z)^u7;gIo})JOaAqgZdyQJ%U02A*uB&hb4=w5dV2xa@%Cn83`1>)~$SzrF9c=TVK+6 z&^_S1C5<|oepbT=v_FX-OA&09m#`3xWN`zHochjk3PQCZ#enV-URdPGoTEHTw%3K! zb)K~I1qkP@FR0UL%D+{o9){JNyzW#rt~S6sW7ltAe5t>rm_KdF+cn4#$cgk>Y>de& zwpE6QoFM0`3k5C#mqjRe9Oq(>CQkDey{G$9BF|}=Sh*fa;bDZVR)KY!f7Az!oCn9= zu9q|ZB#T};@62YURH?_@N+&3p^*=NRh4bTq{EHs)HBaXEjZ0wxDN!1=nIP#Rb9nX= z%*L5f3FywJ=`7!%v*t{3(+p4O`7Qr^8wXBC@~A z>>SJ|Qx_y%BKkDdRP@rE7rtEl8pPyPM*@)Rd;+L_bCWXnm?|Y7m}e0nX_0|PvqZ$_ zMt8A!jjWGn0WzuaZRxk7Lk#s7<(6OvRYy6@GhO-EBrL^~uYw*%J({UH3EfL0k-~2| zAH>%8w5$`}b^#9{0|s=@%1WLX`>eB#N;U@cQ4G4QJ8qnn3z&m|*%! zQ}ggO`pbX#_yy(s9JxPU_C*%p zIxb$B7jt=acLU8O+simqE$$L}Wk}^}4-`TmyFzWLy=t{ODP(U#S6bd!i`y-Vwo%b@ zCB;H+b2r=aT8Mtt6K67W$@L10j@b~n*P?Kzd~tb@xsvHNFBv%|36yjsn;K)>Ml## zA-X<*YjS$YyW=00w5o1Sid=C6E#P8P=0cpZ-6qyIJwhdjZqJGX^q46BPVUlB*NC+d z&Y6ceR)Vi^Z#=GN%e3RguG)9KArjF$|F*gLFPz6X_QI^pB=VLpw;}gDi)+@DVy>_- zM28DZ(I7NTvp(F~q882+c#&YchQ1f>h&vaB-na(su zC$!H~FEIXaah8HH2gPI?A8fC@7Qb(vKZq}cQ?x&Qy4)_6{OvVbnISKS?!EP=;;7?= z14dn#h~rD)UT5nMlk2TTZ?vS)i>(75(#P?RfS4oKg~0*?;tzT0-O}087b9PS3#ypvs2u;w61shP?X)a)NzZ(+ z(Oqq@qys;KeM>3(685i>q3>HXogf^Pr*1#3f~>6zB^UcqdsTb=CWDmL_?43|EiJRM zf<=%@Df92)a2gC>#UfTA{}{5^3FqtD%-Paw^?vEf`E$(CTwolFCn4fm$*pUSDDLLIGt^W>l5Giog}gCToq+7JsnEWm6UV8Yo^{=1)ZWPUF_yPA|Jmo zu@S^fP6NUAdM~F50;a;-Ilo%2#9#y}Ye*lh4pgj7pl0-Js7#2DZUH z-`u-eI{_vb<6{y|nJX%Z>ANSAAT*P0&sel5azRi~`Iy76J<*aSXsC(KXAb8Oa|d!d zCvd;mW>t!__ZEPCGT_!PhG_Pw@hz${GP#t;Wb=Zf$xoG+QLb9s z05#@4I=jAcG+i&W5`Jq|b853prU;i7 z{J7`R;|Vx;18Y1+E}>jp%(!Db{>{OTYyP=22PSc`CmEzR!d z%Z`yE*rEQ?^V+lXzUPuz>RpKyT044DOLyI1g`UnG#q{9f7|qJhs>${pf$S%qy*=z* z%3^>X%dLy9am;C~stPE3;?kMT>d!-BN36Cb_L=JP(~5WIOdSYm#c3p0N&!MESF=l!MFJP(4dxT{!-dvn`L7Qm}5+fly>97WL|V3 zJ$vR}zKO$n65=<1;{Tz~asr}d3y0jxu-A8D!r7*ckr1{MTta6gr>`3Aqa z2h2d=)pp-9hwqa=fnA4tVbT6Yoiv*qpkc%Srh*@zK#cDku~vr(OtL!$7G3EaCbYbC za%?r4W5DjF=qO$oGy1q+PLWuCWk~jiV@zZ5L~&i>tKu1#PJv+$tO28CN6~Xu@7u_T^MZJRoyo-ZI|ACx>e<(|dp2lno%&bzPkgc4G^d zhcL9k?@TMZ_HueS8eAt9;9eqo3(V-5>Y_E_C1=a$>>euMsm|q=90n1NBSbq;(Qe!@ zVW=1t5CPTF%gtt#6n4ygM0#?P>*|`oI1RBi)^GUkPy&S+jK1CrwN)U_Cw%RIn48z`N(=My?^Z6!ITTns`%!a0uoUEv^Y5rR+S9T zk`yJ55q7;jJH3*pNOav>-HuWSlP$R2#uh+ z_Rpn|5<~lsik&Z{im#H&0@X>hhcQaU=1qIu&+k(SjSc!^D2n!m$t!?P@)~$n8Bhh| zY>YWY+6oP4^CnTw?Y_%HTQvA+9<;&eK1Oay^BnJvP9aD$$xY#(%W0Bp$K6B4i28G9 zlbBt?9)e*TacVg(9^&}P%9!Gxil$huvsmN>?7Y>-b(B!El+G7?5Rwer*C#kdp*;hVC!#*>Qw})fg^o6uJp3XGF1)8S?b^CdWQ7Pc z%2N=3J722=VHXudCuQk(2Qr@|rlg)tNUi}r(BjPbENXE-ED%gk!nQ4@&JidFBs3bLq?#mwi3TWL+3X2km&F*BD~BJTB=Hx~JzrQRVOsG~rhB zshgGWXMBbFQOAcWvNR7`g`ul?%lCmAII*`<;tCT|Z`d?WCO zbtQ2WPIkd?D19?APx~Txa+ATYwjj6^OGWjUgkPD@Y!j8iECP;!+ah zhO$Np~h1HoX-Y>K{fJo^jz{OXBFNX+&epwgQsx4y=Y_|z^z&AJen@3DZc6sZd z)Zt~&&Mquv&_pC-u(fv;W1gbwgB0}w-5VU>F1NJG(+Zimn$cVohvYZt_)Ph8tYf3> z`iPbEk)HE=ZL|vE69l7+mlhCW`vcc9s8qE0H#SG<8jtE^z2<_c*4vI`Pn@)U_SJ%% z7M98O516Mq>fWPtaI3V)7}f$!#GipUz$4nUw49e)M0gWd7iAzq1zew5SR^3dms%Y(J1&Sq1*(HFq*&>Zyjxe=Fl%A_18U8K_9`l6nC!FjTy4*}ASEnwxfaCdSD%2(-~;Mr2%8@yrIW^9BIX z3QuZa49&Bt%SfcS3VlB2?j=C=|M(b=*Z$*UxNYY!Z9fk2+Wngb$e&-?Jdbb08#db7 zU8*!Ual2y2eh@x&9=t)W`(swc$Kb0&7jrA&t|8@KeB38v6IuI2$l?hScNj8txj&eV z%S!0-tjrKZ0pA3*T`Y54TQJEYHq}tVQ-Kip&QC$=Y=90DGUH|wG2e2 zoO|kECREjcwiXXloWic7lx*i``qab~SlGeNN2kF^AVNYU>g%>cAp5(f&`ylIIeCawZ|7E~nP_ zhX-Rw9^8Tl)4H+^1Nq5hrV7OTdnD>v4x)To$JIhv{-#W(iSIQ5enN$smvsIC;4C$y zG5gEKaSo6i(sY8sKfy7GS}|vg^%X!A`jnjKnw;s02x|0jczMN2OIvnz?-^NTwSjX? zwA+pwT%R(`cSbhj54z8rKOf=8&oFYwKQf(pZRc`vFmtSScAj|AGjnN3i=tKaeEdB_ zvvUmn_cNw-#_}`W(+FCMkP?3x8Lbwb#`?`%ARls`MVWi6nU2GuOEn^-kElE zRo!jBy!nA{aP@g-o!a4JGPxR%VLxZ_;^~xi22fsb7Zx>a-1PVUje&U9z(;{$p;Av= zSe^#>!+{!*^d8W}RwZgW+pOx-h6=iC>?poYFrJ@amMSH#*2x0b7D~k=S=ekSkyVx5 zz`_UK@BBd`?zK_&<@J~XshowAKeGUT3)P6jHtPkQ3&Q(!a1xOX3t~oPIDIfG?3>S5 zM9Ol$Kch1j7_01FW_7iyZfcF>H}sZjr}Tc;p89_6r!Kd9^`>@%*t0yWgtMuiV?1He zKyVq?p(A}E!j8WTP17G7(*#Dz{&1*uvn^az)p8LFzW+r+PgqQa-`b8ucQ2mXoLQG~PMg~W! zRPA;7LjN0BI2;rGutMro}KCFV2bmeRGdQLw) zPfO7t4%5HHvZcjn30|iR(;!$p!u*`fJ#l?MC;{;p3Wte$)aQpID}hFPIng#3=o39c zg`Uq7*FLqL=B$Kjp6}3Wy}1HVLRP(Z^kU=L*)BHk==+|CH@MGr#p{=kwF2-RLKYzH z2$i>4xjXi6Ff!&uCfu1BaUrt-ume$^gHsynAmC24lJPXbECcG#1EGA>pQZ8*z&LF5 zMPc`pI*Q<&XvT4xB00~6W_HdBCG1WX%epiQI>j2Zz~z>9v*Hw*pw^NFseyet_fG#T zEjuGnVAk-y^`5exPW@a=wq7zwWct(4w*Qg)#7xQ!OFNa2%6SDNIxk>V}&jhXy;7Cw!;y8L_==zbwhO(C^5z}=y$MQQUn+VC89 z+2C{l4#4Wvq8W*w9$}cN%||@bUO_1V+Z-rw8WWbxQ*Sq4mlieeWB2YX{gWJttHwC< zI>Z1`APiTJMvWfa#~X;BRfR8V6px(EDw_cTB{XFy;2KpH)VbdPWLzSkV?fj7N7=s9 zjO@vV0m8AX*wffLh-cA=lyAQvQ&CTUL-H4kTD$8aV7m@ z&dSQ*eW4FuWr^3DMLMu9b{A1S?#zDD8W=i|@f|Z-ea1}spYRS=atlRp*LM!iUte?s z{e)lv7q^A`Y8ekCcl}3N1(~({KYBpKZ@T4r01#I=YMKwkxp9s!`aI#^{Hy_U{Kf_G zC8cg&;xJLaTld+p?fNsosF=lADT)g{dif5Q`v{gdQfJ-KQO7 z@GJtZ=l0k~W6l@TNsl1#T9M^C?A6!4C3naq3w}h<1pTC8xdFW<{e?k>)gw9cca1kE zg)VsHo`^7X-RzgcZ+u2|bNk2L=oZ@Sr+|mGyTtDNbmcZ+mv#kGqY|jy*E0#3CZI3) zPS3MNbZApzOeklB1cSkUD*w^?7@12~*(2sdAqS6R!;AC!^P}~P(HWAVyD*@r5vjKo zuL8WfY7rr}$u}`@9`k^5i8bvfj*|j-Qfss`S-jTqtwFhC(2keSc_02hGM$VNV*sAi z=nRSiq{}-H2#|*YLPy`LvErv&KvtpORU;W@3wBckE2hi?+`p4EfpY2&ahx{cZMuR1U}Aut7UHYug{8dFMHd`So9WK7Z^;%KHr<9}#?& z;2(zGo7eto%f2Cs4K}_&-s095rg6i4V7UhxBc2Oo4ULY7zj%20-}pk&OQbO<;~C^p zgDvCU|ITLsSuB%c+i1vspD@LL4Q?ADvOk>r$7rb}sLS34yGFKV>Sr4j_2;3_(og(U z)tXP@`z=yMZ>OrBH}K%kP6KFEp}Aod@o&OqGZLH*FzB? zrnD>Fcj~EXk7Sj%>b!3#@M?vvA28o=@>P+J?HbT}fbP8d>)4K0Jle12P;&2I=NJW+ zccChj=X2Vh%>9A2Q?`?Z!OAyD6k6}bO)4j*XD|*?q=SXwq8HyOL1Xz@BxQ~zbLKqMI6Q+A?l?mZ~;BO*Dn2Xym)^p;lIsv~`|W`x*%=J(Sx zSF8X6TzI5O*q37*;h_G!%tBkjcc+n?R9;c)CiN#JQhkT?A4Z^bnUGP8ussE{a$qGX z7}u3IwMR<{DES`E4UVXe<9PwG=($p-RnDL}Rvg1pUQ?;g|JEAtly(aNm26(S6i~MQ zwECoSx-5vA4GP|VGlQ!Ubkz5d3sdQi+5aE=z`k{~S@1G?IQ z&V)Xv-yaIi^Z=zIIZbOFGq0INzDGQqQYdCu`_dE`hmq$?5bgTo8_fZa2)Aa>b>jjo zmd;%-ac3``6+!k4#hmF{w{TlcfPG{bisLF+geSB;1#AH7xQ}xhPV&3O&g$2^AWT5m zb0B-MxLlyv6tOb?hN0ejCBzL{8t@%s#ynMnua!p=DB(So-z9Vv$-iO>7F=XO8^(82 zlFR=Q-s`D+M#ila&HaGjwxxiEOKBJfPdgP$H!E$Q+np0XE(i3uJY{qL4t zA+-Gi;bffCf25!(AhTEB0_-y&KiN{Q>Z3~li`S3w^P7$Y(|mr+q~!|&H`Fl##NPmb zxWWq%GWv+ZxjTszT>JgkGFm)zfH$kRQL=4rSK*Ikn!QVH|INAmfiyBr=X%)k<+C|k z6bjb<*E$!q19Uq2b}NmPbsVwE98KW=jwEGN)T%L|Z?@}>Ze_VNF9If$-P=#1nigv8 zE<_Li*ygfT34kdGDDTS?^%dCw{k|Vsr+DwLH&rCf$XEr3*(wAEao~Vk5&m46ro+bM zHkKSyI3rw`g{o{HRg?qD4#3&(fu~Y3yu%*wKeE~m0sgWC4+Xn;B9H>Hl%V?eqd2Sb z)y5J^sA{Li=a0N#@^=&7b2P?j9&|7xdD)7V;-YnV!c_hZXzkT7jt!H_CHDE)XFGkh zPSc2is3i!TumjOIVux{Zsv$YdHx-W?GI0;y1v z;xdy2lzv`lqpgvunx8CN=J!l#JEizWTIw%Zi*P=a;bUNtZm>WFfwc#Q;eS@gRBc4T zXI#(dD6L`rWfHvKfYfNqyWigKm7PeJ+)0})6HraWNGpwR4xl6LJ~48h-qurm;W*;! z_jQ&8NQ-xZ99HuJN>TqPRwW!*Oc7rXm3mnTWM;ZRPFL$jzCNM%nheij%p=tngmtl% z-&LD)Evb$EBOz&qFYNFCSD;-x+Spdy3^2>a!a{a~F8}d*0a})=K9j46IS|4M;pNO9 z-Y{Y}CT#HQy)|DQ>*p@D3%f|3Q-1pG<=@RmpE`opYph)Wg_VIoyec^&=m=VdY#axl zIW`*nM|Rir?)f$o;uu_24$=Jr{P_ovyxcnv#O#q8ZSB;mi#9j5`y^+n>*Em76eo_MG%lKAfTWkUFl7#(jn5N1yKYA0Tn_CQl+=h zBQ**FQbJP*J<>u8y@rJ3TZ#MK`~A+{xjW~|Ulilh)_mp~^FM})v>WoO%f!_6%B0|w z&((P2iufLem1e_C(^!rZnqZQ$p>*m+tK`!G(r1Td{SL#ZxQD>QbL^^jHJtb;(Z{+& zIJccP%gHX4RT&+}7d-Rjr=$wpNR!W23((4Gkquk>s$yKgMp)FE*n2LLXf^eU9iloL z;p-dpwUP=6xbvc!Use^Uv#-R-su&&K%&VW3v}NSQm=A!vB6-EEuieOZ(cYO{Yi1uX zAXawq&+<7@sm4Cbz)$Xf#4p|&9DI(E%9{94@NhOFV89clW|I32PaB&&zl|{mqH@*_TmJSMvkZ$LHEAgmqUF*FOvEUnK3xS`&tHW1-8k+LuDRTDB>20@8^=o87zd~)d zEyJI-v^y9j18~k!f#8%+7`!ZX>4g68F>Zh>4=S@_MCx5NnQD7D^}Azh z?_n(;;0mZy+$RLxTK*eO4V20S{d`K$C>2dV^Cn=T8R7@9KuH4Vqp6pH=6%OE(E6-% z)tRw~72xUpyGoBU?r38+iU#&Mw3c>SIcM-Bzh%?4!#7tQ*>)`oVj|4qBcQ_YYhfcls#bpd+dpvxTZ%P=???A}UA%#Tp@ zj&WWU-5WY!PcfMd-1R%kEid(?JLQ5D_fb&dDqyUr0zDlw8YkX?j?Vk^=~EF9!#R62 zICTVYZsF^P+r_SOeokA7wOw%l_@+^485lMX2AYHZ)5*^>6fYIM=&0dHnX&uIoUN2%)hg~jo`p?X`@a|RKx~wi28tg9J3`j9o4R6N2%h&F@%;y!J(<(Y| zyf5VsXx;Adpa&kbiLZXbz9^UBO<%nq8c=|7T1ntF0qYKxy=uP zRF7l%;@Hf=pVL2TlRAwOs8e>moyF(UHxj{WyA)^H(r)Cr2+&rl+aXzB);`~ietN}9 ziiUB!qhVt@Bd7D_EBd}jg1xCpewAK6sD&MX{^6u5E?I$6ZQU#<41GcUflv{)fj4;b zg-i7rpB$gC{s?(VX7_rQOS=!Hrk(|2KGYa&WgMJ*nqGCMa1IikJF&$FoS3WL3 z;?Xp*HLZOjttAY@XnQmtPDsd80}Yif81DmO*p+je3e!|Sf~G#yjcs;Icn?<>OzoU+ zx`(LxSKDQ4T&8KeUDM(i@W92Hi3QhpL?er18V{(Jj&o%s?|58Hi&l@w$gka(U%wX~ zN$JcZ7(*5N>py5+i1JdsF$XaHaZX3!gd&^_EfT7U3j-9~CO?7?o6rt89?s6zvu5aZ zv!JaIfo19f_XZ36_TvAsz|=&Qy zi)Irat(~vSrS54%?+=N61HWH3#5zwRD2EgqO)?In?$Xx&nKxsjtF>m}PagsYWy_$U zZxf)j|KRSy9?PU9lif0?7mOMEco|X7(m38RjZ?ZL{`V%((4))J;%=Ld;V_s3A`Iq% z=NTB+U%KjE^{xE2_ISZhFT>tC;mU7Dal$)VQ!_u;)!|7#LX{z|@4jldoH`nUm`)%Zt^}pbGF)EzskzIKG#t5CKORs%jo};}aq2VKKqgXvZun3L5JlW3A)^ zYr6_Gz6_Lt$?|40b-xEH1740`u4^<}+R?xFyta-(5?4Fe`;aB{9A>g9pa}G65gL(3 zlGj&!9PiVTmD<+?&-rlvjcucf1*$DJUC)EgLy{Rko_(p;5MNCwsj<9Yw^mtyZs+7; zB7C*a`n8g6WI=P9 zOxTw6;Q@DnI$xU@f(V%tWJ+p25ZA+73@#)BG`o#Ky@P6~kroHQ0eHZx;d)S}tmV}@ zezp$n$oqnBFLj4sFth*m4y>gz7V=yh2m#d&B1;-DjR?v0;H{e?W$N1#1VwD&7FMia zm~kcwrU1Q~Yf)X@bglrRFHv}uSI4l^$F&GoK0Hfp$x8oe$$UIeea11!QswjweRKC7 z?ic)!yLC2+>|2J|LXXoQW`)l@yf9)oeN++>9XARVpwCfA$vd#2PFs#3=zTrLE5GF? zRvg`%{y56;v7b1;73k!k(hYhyS>cT}WVx zAWV7=9jU|*4E%2ZxwK?+Ay79YJq`p-B^@y1eIRs5i-TF-x=?j&Mjl2N%-ZWlqYDW>6R2~k)} zG}{rJ0w*YlxKl?>sqI7g^krCf$3xi=Lkq|9kgLx=riao|A76|~x%D?MAPx8*lrLQv zhV*)Zw{s`uUh_w6<;c*;bMLTj0-L@NcLbYJzd{(6irz^p{n^BplV`lVYFr^cw|Dt4 zZ~)=ZtQ!S#0riPz@sLh;i0GLp8kyV*G8T;gH)iY>Ogt`mg~kH%bdg_407LnnD4JqQ zsadeB<9cBByTgKQ_^EjJjd{}lr+}&BPA4f*U5197zCBE@57Qc#f%O7eoG2o5x;h7j z$4*VtsxNR9PUeD#BMR3Y;mDWs3?o}^hTx_WB>BPs?EPQ;7C~0|)oGq1fy1GIQaD2Yxw$G1fjiZS2fs6gB`q`*%%wwSFRALR`$N;BS$@j{?@gp--#X|lM@M_4(1|+?CCoG*y*)*h z*aQjENF%EDk$>$ICJckp4`LWKhCKcr32n$&9AME{>7p5x&K(G)Ka_X$xxn>PU@_4d z)Yxvccciig8_4|tN@AT>+xWkiZl$PbKD=byq(*Ok)U_0Bycz##{MwDYBEZIbH5t`F zQ%?0&0cbg4ysn(AJ{#lEznlyphaK6VPjE4?ca219tbEGUf(M)wpd>cghJ8<~8LV~TP!(R&^>AOWwvzm!E12y&-4-3ij~ zrR2whSa)^>gAvqWRxs|l+p(Ag1-ti*F7{_5YN$Sfpn8I`&(cADY@^X5D)~NgJ09`d zGKCNsk7|6FviN~fmkPBL4F?c?Nm)~o7oK>yfjd9sO^S#<&{G%vVyeQ6C-@T#u%AWOLd9hsYC;T7fk0gFbtRH4`I^VTr{IF!o!v8IsfGvtOxz8nE1itGEW|p-5+ya?=uz zjALewf~S9Q=r@UkW8kMa%K^#5o?MKZF-otX|FxL83TDMeoBFk94H9hBFUtM$aiJPe z)XJ*4iWN5B^8_6PPuqh>SBfP;w&G8i3N`L5wk446~|Q@1ZZ*Nh%Tw5%+SsQ!~> zA&~iZmW5HnAh02w>1qDAOAws&bUG1d=HIQ#@8J? z*^EC{7Y{paUU?pL%HIodL$WI1qA%TcsOnZhQmJH<{hN4>Rv zX56_;*%FiANAtmIhbJ~MhyYq0lAz1<>l*OvKEJ*1-AFV}BMih~0dh8zsvs#+3p8TMIa zAb*z(o4gE;=I2K+44?U~B}`5>b7OY0u5pEz>hpt<^W#w7qFGdQow^`x;MwdVw@*$je<0>L#Ns9l-^|bK-H$URyZBp$C@CJkFh@MA=^^>fi)z@in@KkO>ekfarUVt z3gTB`4H&SO%o=|Gg?u`jZCX7Z_=n}pD%2UeFC@Xv+V5G@gSXnuqfwBk5#W{$A~W=- z3~TWUnzN!|Ayr@{yqhgFiZd_|?<~~twZ=b2*6Kvpqyhy!tkACN+>73K{*OL)aLD`J zPBPbgGfm1n1Ozt1WJkox5#T*nan|@7GiJrMyiF+@Cko)XLbExafPU7yK*P7#@>BR! z{}e0J+qy>?!1`H}4A!BM$*^r^JJ&+==%5PL>^wpf=vjmS6Aj)~$1q8xKnomA1HO9(nb>$XEYg{sXO zY-S%{^%-c|`w)-LsmZRdo-vGjGYnf-XA7jRQ5ldSoAPl+i<3_JWof0J-#~Wa+3?e! zIi-3rS0HjTx}|Q95$kszfJ2gR8~U)jg#B^?Wr#9`XN@&U@;rV3)Y0hK0*$gn>Bbu= z!SAJ4m8*~Pol8*@Fcjx*KbD;}Wrsa}8$7M}a|BC41`+T6;Pp7<$33+39bWwy@G7Gg zFl0yzN$sN;5|bP|b8zV?Qsyy876RtOVS}{|bZBNvrQD0n_hTKt5xkPdH$<_Y^FV@e zo{=s4JlDgVt0vD@#fNyGbbBK_-<(VTNo9-HPIA-xwv%tcFV^I@^W(<2Tn4c>t93eE zf9xN;NdO=D!Hlu+{^7rqsOWCdoFR0|G?9ny(h*wgL#GT@nUsB79c5CM;4BPrHBl+_zKS{h)KWDKg3$7fPa@u8}ljnx<{(QTuGzkn=a&kYdNADP}+fpk7Kb`zrCdCP7*60WVVy| zo9njVDMh{CHC=f6m&K;TU+zjr^CgeT64tO7n=9}A21HrIGtamDtjCTYd43GI8=rf; z!hV}eK8Ol5Z!iA>8WMI6aMuTc{eSbqtU3+?^tF2+)=BHFuy8W!LPhj3>Bhf^f<4nx zG50<^>Mm9a{29b7iCjBLPgloa%~-WQQtoltcCf*HEz)!9#KocYjydNwxGFs(Gv&a^ z@q@?7A8sveMI=pw^ZE5H+U4-+eH+?2RDrV>io`_$o_tEssyTL|MXmyG*ZN!PduH_FB_I9stZy^-ULE$(A?Ec7%?d zw!&C_Iff)xucU-Ta*ag#?`(|T!(XQ%QwBbF;b6T+8#Z#zNX69JBP!1MMDenaRcq-n zj1{PJrEEFE9~1Sc&TF`Ow6FEZEpJEIDifW<5t?2?cl_&hzGo%NpFm%XTMj z<${Sfvp$gSRFBm6_(DMvyBjsi<4n`p=V1dIp6*h@fF1N6mCr1BraAm7q29L2r=U(N z0QRG4kHtUhlL}`JHDp8;ly+^91m9b#jmPGW^?wwv_6$}g!rd04hC#NnE3X%}!7jEg zzjIEc5U%>C+#*8(@Lz#{C{G?-S*8L@S79XVAii*gq?BjMg^T%1Kd`-#JzGN7smYu;nITpQ{?@n~dN=K%g0n%-CfAi#R_4Ow6(_lw z6Z*4!xqBABCy6?E?E6nb?Q;NsyS!5Q;(W>tVrHY5-c1M;$H9KE&E-2L2%R|KzVMSR zCn9ZkCU^WQYxMj{OqZ;TNdDso*)sTkyeNm0-^?ba>);V4GHt_OJ;?hWhTc+U)UMG_ ztw(VLmjdDK4r(5yM0qkI`G1jfz1pD-B|*2z|zZP49wVyc7(4;Bl`N~vLu>g^(kXg+<(mRQdx;pU#@spCIyCxir zPMmwT-`?LgMkGtK$mxcx!5%Dn=3w=tRTmG4Tfh4B{EHT4=Ec0BizXE4ihJF}QnjjP`>Y;32Of(mV zAiT-42A_+DUAiw~bE{+O9^IR=GS}K^g>J6mm&;7!_O4d!hMOGp&AFmXgoVYHg_E_< z6Rnb?Z~9qS-oWiju*htM4X-Ti&)Qt_IGeWkFxk%y(nXH$_h~!8dGAi?$*oHe)yWDr z!i?L&KDzmCNP4=`X&}i;z5_ELV)H0hk~qXWp~UG+vXW$aA#mwV{jqB7-HeT%=O#CV zzF|RnJMZu^1$9Bkc-Z&wPlk6F0?cClI|}87+Acn9#p{WD`oovPIZluJK3>xh*Qb%j zwT4qv@Yp!|q|w=@^>iLT_o-T)JZF@j5jn+3(yKp6n>)Z@$T zJ;`%LcG$=3yL>7VbLT}@qze1q{k`=EN?ljwT^spU%3{)j)MW6Ufx*hE-Fvz7v2$BO z)#b3x#f>>GjQi?(jPrcUTetCv!o9EMXFOsEf#l3Rzft0&C9DJ9fa8gc)57=gl2C0g zyhKdGkL7@oxbI5L2bs|Qmv$9#FeS6%J@%{8#QO7HMg?ljLEnn4Zfw@)SW1oN(96vn zjuXwu3i`+`;;_FtL8n7Qw!ab4DkvY5p5VpL!D-wa{TdZWuKVo3XOUL=3)@1AL1TehV;E2CDMy8U)?F#TF9_k36~8Y>%FO&{%@L`4{gvnI z8&0Y#*(%R4u}rxfmt9=mf(1=1?Kd2Kg0{0Hy~eI;FCN;AdEc-v)vzCZE_kgHMVY5} zsxhjC1!X@&?ehPmEIfSV?{^Plk67A|(ok0zv1@F?6_Us#)cl9kMkl3QKHg{r+|GqI z=r9NF8L^dBVL1q`y)?&t{r2jh(0&&+Fj|TtF_4zEz11#;9@eQ^e)nbq&?X?VIQ>u! zL0ty4g$+u@@loAIBiuhMC6dQ1ukD2h%|~K)u+LORshd z_K*oGX>GwH2Jzc%_&NyBQRjxX0v# z!vu*p4>HnmLlX^7JKaa=@RHQ>-6X8|;8`qtB4VqZq00B=CTwx^L#sAapB_B!h(Mu2 znThw%8Av6t@rY%&A|0bOBa@3Z>4RAs-s0k2tVoXDoUVQEtAqNdK8n?EOM1dPsuP~irJ0)ZHB9oI3xjLs^STR82=y|jz1WoIiAMo8- z3|WceD!sh2eN@I$ZDdXuZ16E{+yg9W0cr`kB_*;)#1vA+>@{4KeAR{1NPY@WAy(E5 zJ;Jk^#=?yg$|HO@#38zBHfzRP%?kt|No9w#Li|;R5k^uhIS#l8i-YK4=-Rumwlt6C zQBZI9D&VA9hS`Q$i@X)Mx)gxbAm(*hbI|Qj|BdFA6_gH=++;a+d9_;Rn@A2lW!e#v zs)hb$x;4bZC}UZu)y}WFUBsv%ePfK2qcpZmSTNFhH=L`2lFGMNa?e}a6MhuFH56;v zo9!&>RD8FiaKkV7#^cW0n-G8sbW)seu7*u<4ytJ3unRi$6m5&yLKD{*ezXK~7HG z=dPe}?X~K_2_5K~6FoHG$?J6kbwxcSw|lalg$wrD0^6+ep{q}#$oqe^EMG5asZ3SW z6H9jNBvs`|bMAlBlUr2~{n4mc@Kbdsi9dcoNOV7BHhZah!=@bFb2Fz8QMWnf9WR}I zHRDGb=RoH~>Akue%F0@N3OKvAt*ub`IcjF|M18^MXwsr5urd;+Jmn7No1L7?WBsH% z(~y-ib}OCW+ylt>3~OcVGHtXqWFjcqYdmJ~LL`X&2)-&wa`fWVCr;EP7w%bNEl! zg&=p8>WjywgxKYYpTjo3_8y6UpI_ub_<@&&G|b8+KNT|DmuesHZ~FOTf4;r!RyI1# zX#3lqP)EE{Pc}#Ges)I45pe3aj!hul?iC6{Ob+Msf@G>I>$t zT(e*g6P?}ShrBm^@5ivKHUoD;Jr!ar% XZ#+CXUIK_OIy$wx+ILEntzP^OenJ@1 diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/cu-vmem-instr-mix_panel.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/cu-vmem-instr-mix_panel.png deleted file mode 100644 index 1d6ce1bc4636f4c8ea5e4cfe346adc710a497fd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15328 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 diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/instr-cache-sol_panel.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/instr-cache-sol_panel.png deleted file mode 100644 index 64be7178c6fe2a745fc738b6b5475de64ce21fb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15365 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 diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/l2-fabric-interface-stalls_panel.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/l2-fabric-interface-stalls_panel.png deleted file mode 100644 index b1bd415ca3b49f7ce8d5ef3f51837f73ff9b33bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20315 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 qlasLO6Z{%>0NqHRHXMB zT8K)op(c=!pxo=brPQG5#~gz5g16O;$)YbFMY_oX>pbT;ck`ZOKz&cLm*FyPk-Zv(aaptAmJE5PKGqq2@N2vh-QIC@G8%+I_~ zH}?jCF8Lh)oS1dsdI`K~>ttl+W9aVmLdV|csohhbr@(t4P!Nx;tJ4d84<~mYZytGz zAfA^z^0!2I0)Q(-tstjEVZeQ*j?N)_Ua=|RVU1{m zjt}PT)>Y@V?oG2wD`l?|<I1;j^yd35;A;dDHWp5xrw8nkPUe0gFme5pLHq663OE_92^`OXZ~n@e9`Bo(i4uw z{d;8IIvsQ3Uy~RAvlI8#<>iB3a%zE*P(#K){|PAMu)Mr{fE*`g7`2X~psA}+8W8AS zGv#Y*78z9WGx`mi+HbbTP`6su9dx zxTAjDmkB=LE6eQ9bcZM*M_Z8ZmY>N_#fB)LOtaOqF|-1o%7Yh#7k^~I+yiYO*19c9 zVsl)U2^mnFtp5$*iw>3Cq_@x60GZw_QBABAB8xXXGW_dA&IM;g%~M!(yGV^KHk87n zZ+~zNa>*pdBW<;Oqau3CJWaswa zKP$I<$)F&c9*st{tc&rt>uHoCm>3mFjj8f5^I2-jk(j!Pd$U>srUZHrZ(+B9=B$%D z2?9NNY)*P>c2x)xjLz`*`NWC2T8Ve%0N>+v-$oqzb83|y*Ry~kM;{HfAJ}z1w6xG2 zK=I>i3F1A4!@E1BO*5E95H|nWP5PG|16{=~m`_^i2t#Fy=A%aETx9&tr=WyzPO)eU zlWyY1V*AVxjI>S#0aZ!O2?7cJ~2O*vyQ9lBk+HokRzJV-rNPk6A{)uQNWyCjBdSbUmz z@r}S_t(}p&@?#zK#JaGYa&n6w@TS*3T@x<3vcU*id^IOvw}&9U(_3h*qncPt$+a*1 zt(4#J=>q|{_>943K$mFGW_)=u6-K5W*-M;I_I{)|a0JJ7H7ZQylJQq|K4CnX*ny`j zDlZv%ojHVlya(ayNWqGCP2;9h}p@N8MxHf719 zhoRgihEYkvKUofZ*ren)fD780Ly>aN-=AsL<|L9alGDE&0o{hK*S-Aq-rlCRW6OhV z(osDposVkL-5hlDZIheV>u+TDRv`&T9^N)lC((oi{3N>U^cfeG4?*9R1c->LB%q2y z?TBF#7>yg5j!%q&Z+aB>BZHwyu4X}S*LuS=d|5`q2x<^UdOfq4i>2k0a1E@P@@WWf zh4I=jYSzb%;M*6nrZH}HN=6N+DczQz?gWDxy>mXDI1aF>V2$Tt>d|sVH=kO)-A9ZV zV)znKe%=CxZ%ieU2*LzYIDz;T?MUVU-24-B}=I~4U*6y z4Jo#hNvXzVJWTWE9c#gIZ*lCLJ1L?02*I-8HK+%7jYmSRZ7_BrMQjdy33DCU2J*yo z@*!qqhlRSqUYSP-!V`+hMC18v5K8jFnqq4*C803%CMDsWKa7V4f{n^J$|jMOFgM@` zt)wEC!4`q}&!(TZ$tWd0B_W&8*&E_i+@^;|OA(Yo*ak9>!p+`DHfNjl202e0Xz9(3{}hs7^O{iNIO3}sOnCktit;Qjy)EuSvxE{sTe$>$tB{~#;U01%>3KjY;c+MV@@orv?1y~AS-VH7o_r@Ak1^av^ zPYl}cX3f9Dh3kT&-J)Kt%|Z-~i1=zHJ7cH(c9eDONQc%=C>N67!^XePY0T1M_0_oT z>Xc+@DRhg;iR#7@+>_%~%GR`bRAneh(XrYSt2aUFSe2*0w<>>}(OrW^iLOzmr@f}D z1mrN$>?&KPUrMahnkWA7B(*%Kw4Jn zM99I+DNpOE z`6J`lKx6M_aS`0JN?r`<|2)lgqLf;y;8%nvbieiJ%m`Wn0nuBi+@pzwCmt!ig{qx)Y z(m;BYOP<3~U*&pw=Gj)gd3ui~B!z>}%{7@37c}35vKJ2qlSxdHne;_S%o?);MMbRT zNXI;zILD48NgWQxJsy5lH;-(AgZ-|@j4Q-m)Ft)Uq z-5q6S;U-D@v=F6~mJ<*z)MsU{RINB*$}oFbTtdelHx3qj6GqO*2YuF3LwbF)6zr)i zr<4gA<9|sBxY9)hTO*Hb_C@=d*mFic@&m4utLRi`%oarG12#_l)D3ManQK1T*~Nx3 zg;+>{q4=|-zalyT_j_eip@QUwmUYB;DN!aOQAhp=&yo%s2eTg;c+<;cAFmMSe81Hy zBMC~{OAp*l$R9I*?ylgV78j`5;4Q2O2Wq!y9r`;U;QJ{wIJ(XzkmoYD)_uUaKO`DK z@9eyGeQtAu#&JW!GQmf^oUAe5wAS5m=!Lpl)LyU8EJNG1ryY@0`!adQWrvYkqHEl^ zwXcK{c-OOE>=8X6YC>fgm(_PCB{zmhw8eL7nP8l5k= zknD2Le1Qnz(zd};ga8w(+@K90*^I&EiebAXKOTxWwS%ii&gK(6_H)dXg-9kfUHDrtVoVn=E>w$laI@G5@* zWaBAjHh%e$5^Y>pYh zFC~0Lr!V#(fAW8T@=)`T);0$<>!#gGclK%%J#r{u_i?48^b(RD9*dIO`CdJchBJI* z%&%a{UK-ZftMcZF8%hYWvu%H81KJP3H_MU8E8U7f)HyQpQyRRUf#Pee*a84g2Q`Hy z!59*rK`9?`9CSVoswJ?)EtzSxwEUtAF)MqvRz05lN|cKJLgMS-P3m(P8tmibT}(0c z*Kq4DP=WAxP@VWx`?1bC2$%Qb6o=K<9l#Q*KC%KL*aoAWaT9qZp*$GXe0%5MM%nP| zVCw`(O|ud5sBNgO?FVXeISy;(rFVyEskIKqz3{7uudcI?8cW_D$&{Xj1q)>azjzGY zqK9{7*xmf3LVCcA|Fse;+N{kY1AnBVdAc0~S!S+y>*rcSl7osKW*uYsv=; z_%CdEmj!fzsfEt(yRTQ1xm@=h((6=;8aY&~;UKD$X)R|CJz7qMYUtjTA`hOz=AR7s z$zYAw$xThOZq;xk@x#ZYnK#PSi>?X>|MXv|18kGBdF2pKU5^Y>Gu&Z95u2NjLcni} zkYSPJ*_rE*T(u3}G^arzZ=#cf=?a;`x|g71e991^jMb7^eghzw=?L;7s(Pd!jDs809EF0tG@x5B%oBQ~JL-YS5x#Cg z@6tG5_-FF<$z8ACIK8el7(Qr6#=9kN#us%oJ0h0y=&%kJFhI7`fw>(@9lnG4`PXB} zkS_EB{H^AWui<@Zt~$uVqX3GyjhND+IJL~K2oYB$NEE(vKjaYwnoK@ppvuZ-K?L(R1Mn9vP^wf zv0#co1HOzC7G$mq>C@pq-C&bWZM8PfqkPM!zBH3ZQT4@;g|O$T&2#rj1;g6xSjvyn1%Zdk9*AsHORRrC@av%3IRA<0x<7i@m6` zGE`=d|GbnzeT;OfG!>d=az6n%{A53Dae?hf1-ezsF@u{pkYP$a*u&{{hGcNyyYg$P zupZ5TBdX{3{gw?p1)C9rfH^KQa87Z>%p9%t%%^)mO|50nE=4-z1^9fEjrYb15T;t8 zUrdr#rgjFX8DdhB2P7(`@@Nx=R0WIX-y0XJ-@I!|MBep5wB#KfL)|9j@GltgPCf7! zQp180Oe>wyI(AwN@!hnW3+#PgY{hp13_}G&-cZJ&K$K5zm`Q9W6g~kTBD_{+>QfdH z#EYoM8S#aw=@6?qjT)5($FG=#TPB9WQ#Rl1ScUKIC0Kf|Y0l!m_IUMwL_w?)+TLQ_ zW7V|8dmhxSot~6oC5|XXGcrQ-E~E?($N?w=25favizD0dp6*t0kxMPBSUiWfHX8Sak5SIB9VV;Gh()nzRlZF6%Lc>-g z>KUT%7(pO|ma8pEXjc|C4;bN0z_0T16_>S1Z?eqcqFj0u*T*mdY2_F{zq3v-oxvTu zxR^qZ_x$*RBfobX(I3iKKa^56c%?;7ZYYEtOUo&>gJ?*&UjI-|X0rrKXB= zH4Be?ONpz~J6UeaJk;&*-~)f9C>&+1mldA0VvxC)mCIJd*A<%_f^Q4U^!T?2)zw(xsc`R+?31h-W7$JF_a3b1HO4*pcl_(T4+sYaax zKJ_*AAVTTOnh06aK-;>UK*F!l4A-p;@O51Io4q@IUHzDkec}#e9Yn~Y$1^dH+>fcM zzsLW$mL+FtJU(_WFH5k#Kn-}1yiJ&F&Eig;W&e3PNbNs8DQ%IY5YeN{c6^|!##XqVw+Xg1sUQ1^O_w` za=JlpKeb}W$Q2izN_^o2X^J| z^O!e0K~3E=ghY)+Jfa160+h({=>y9=>&PHmibh^2JG<&zd4=2&*Pw;(cEvu5##n}1 z9-HmCl74qzT9PK12;SGNByL(XZ3K;wCo-GdWIqOE_~)OqVli)wz90b@qvh$7`u-?| zoIs}$&roalht$T~EABnt=4mI__Rsf?w;1mmWq*gLH@U@NHp@XFB^@i7MZK7v{_Pd` z(b!q|w+XkAs!e!$S45C4AqC@kW?mc+ca~6~JN{2`f4Q`@6mezG(I#E`;-Fz0YB%6+ zAU=bt=ZGsUw~EqmiZ7#g4r1Ets`U?7yz^G?t^Ca&Z}x(#NXpZK&TbaY9>5lSU4OZl zxNZq;J9nAy0#E$Pt8(kV6c0vQWY8x>LH9T-x$@~}Cj|Yi$CQQI)uJ+bH-x;gG$4JW zP`Gc(4>t2ku{!N9fqj%@J2i038G`LT(Y|lTL`vB1=17<9^)V%x`{w4Y!V|+)89W4? z;9h4=alLKyH7%PxgE9Xy16=-v$6%RORN+`_on{J2LMYvR#qnfdxo!6OFG;7X{HX_| zq+d0_^MCnG`j-T!#p=>~U!O38dQB(cBTZbqE)0h~Gi8zlMZnF=%4Svlw#ao$BDaW` zJVO_&Pkc>mU#IWNJCoeI{7c3wAHbgA?ib(3PQ*4XaEQm38|H_JuY97f>1A&=Y~)Ri zffQ{-zm)c_)EO@%)u#Cog0^347j>MYciltYfah-t6#MnxXZz(od3jw*l$O$Ivf@V= zTKTl9+VzG7gYvWhhw_rWwuZ#UEXU?htm!T}G{&V4e)`jH5 zb3yhi`&r$PQB?NmF){yV>>>owBqM}+f$OfIQ_yIs@FXC834IqG=b$oEbcMf*`jO4J z17%}gC4uLbeCH(%8kk?K&Vq$cF~pXGl-h20Q*zp#5Q?eXe^25YoDyP!7IxfNn*Tu5 zevBv=RC1seuh}{6ZI8ZtsSbOowdtpv>D+cBJ8&ddV2Ooe`E0t)#hV{d@IYpR`k|tM zo>Q$;^W$v8B7KepYr0Cykl&lTc%@^v*!y{0Y;tAaYDD1UAw<2V;wu=`tMF@8Y{jLo zZuQLfS&6i>;++rvX`aGb)7oL`vw|J;bUCJu@2t2!*oom1bgH7V?iMRoK2fY#U%14c zQ=?<`mY#0jeLt07{K6X==fWdK@o?cY0pzrax$_iDmSjsIfApyGN41Ch4zHoRnqMwr zts9vZy77HQ=y zjYEh_@`+o3!EZab(@zijDn!d!HnbI=o~u2qzpa$4{ZA*Lp#1UqdOhOjUN5FnI*SeC zn$*IbWZgV6`r)IatG%Dw{T5^S%@~RG&v^4B`)74#i^hrzTuh=@m`=+G{Mtf>*3^7> zs$YxDlfSV_HbaUtrHF9A7`x z<@2Tc)IFbsM>(gS$wUV8%CiVR7Ly1sd|HUV!&>z84ttWR?X&T;U3B{g*TWLR*eN5& z`8YBEs~gp)*50k`yr%@sjdKD`c2D)uJ4OX>?O%t|r|5yERmd z1dK7&ywVuw1Rmi;(fA_JSc#0S<7wUQcqys9lcAJnqH9-aKt+;UZ&NT<#u_T7ssc|7 z!@ocqe4~lj`73ui=8bu8#m@MWik%gQOE$_s04wpN|6F>*GokRA0PM`iO*vWhJQ_Pa z-$Fz_joqQ$?mF~^y7uS2_GQ`t)U|8j<5%%$>M%_2W?ezg$#fHV0b23B&uRME0ymB@ z?pveNrx+sX&wqKE>-w78?*7@M;U=NFQ%SJ!bVvtuk&xe#v668e*e%MLdh^TY#I@I%XWRC(ej7ajh1{`4AIM7T;m4Tx0>=WLXusu56;sLTczo~Y?6OT}Z~XBj-lcL9EfoH$eZpG^QL7zusYHZcO4#|(H3rMorYK-_ zp<>z|-v(B)O5f?T=-W+HpYcE1-R2t5bV3j-9G7pO0EM^$_#t&r?#Gd|Rfg3zQGFX( zBVNd895yQhFi+gAMs+G8Hg7cHr7U%Y=ZBKS}tnWk~^(c$!DvVIAu;Hli68jb4IkncDur zT&h1pP9B4nP8O`-aXIz)HHaAuDH*uL>vEKA_s4x6U%uY`zYL`PH^upX$8yuPZr=aE za@TI(`#*x^3=N}P(Lc@a1j!=LgEuyh*E{pjbyh&Ydvh95&Y`;*3-(VD-=2E*0znc6 zWy&_$4RRRjA>(}ZO0BV40vOLgeZ|0&xN8QJy4}dWP2A16q<*S#N+BFzeQ$+!2Z%H; z_@=Au7Tt(-wS0>%i?4BK=VWoh-pf8F`jX-7+T_U2&Rju%3&`t;!7I4)#lr7=f{4QC z%ML;IMtM^~r{hlC(;?bnH58ZY?u%t4ZZ2EA$*1qz4vzTPx$KkwK3l;K$goVOw_Zm0 zfORuJt5>E|t9mBXvdAYo?KB_S6kZd+7td+-bZ=M&UAA;zU?%KM$J+FK_6q_$7bt{3 zlinyuMYn*VZC_!BbuchczZUChj4x&wpe)U}nR8&S-ymvKm#g<1fj~J^GWAvoD3r~3 z*#<&!v$k=0J@x!EevNWiB~j`}`dqdopJ?TgHNO$deZ?iJ%KrW%pwjMO5V-Rt4OIEu z6Kr1oT=TG0qc)&I#7pTdZB?R>g>!9EO4?;ir|z*ZY`MG&<4ZD$3wO~TbXA(0=wxl3 zd1)FB(1!<(OJ%UivTTpUuKq%$pMG;JcfbO@HUX*B2Rkd-0OOV8f~aLC*s7G=wS9az zao3iu%%?<5n0*$eY2xaNJ;N8>2U$nKk$J0H>(lGAd+3BMLYP;5I83j5QR~oRaezNN z^|c+O5~q+h{CVUGoMa_H&T~cRvdUDcYqQM>XY-s9{J8kW?K#3zQQ=3E2e{1|kQXFP z>-!gaL`)LOKcFlNgkNu4Rl{t_)FqX3+)PtkAxRr->wj6XhzD+Dp^ayd2F=4CN%lta z_CdU-#|jePT8|5L_Kv}mjKH!^*w(p?;n=JCBUCUkF;J-{K1ZjN|Ef;TuyPsh{WU+* zsD=LT%4;_j0HB2z5Yed(d zBUPzKZbr2>zWqY|JeE>ppBvbKz%MC;UI8Tk+RT!Cra)}3UJMlCurLlk+y3D(kL~?? z4}h+V-XC-kuU+8je!i(@>|JJ?=Gqmri+>1?NM>uiJ%>JV=l zjkf{&A@+FJ6`)E32QO|;`ws*)x~oN0W87f_4wn4)|N1)LTj@nt-meb7_Ac}iBK}@V zpvS=S((jhKhZ!ZvY}FPP(}m!zJ9cE(A|th^URiFY!VwQ`t&~7EFoCCCykmGr3ss** zSyNn@p4L{`TD3^61#}4cEU4Ikyj%5RW9n%`mayKa1k**(EmOQY?C@ooV}!UQQ^`n= z-x(E(-y5Ql+q$ChRA+Zp3M~z?(9=v97oqKoj0q*bykG-TcOvJ zm6a>Q>Gd8!f@7k!*C|J_=GDyBnlB<`HG*t3z~dhGzr0Ne;GCt*1W9hcqS(_>%F1`)jETMg3qEqDvP@p?E&Sp}gtmTb@n;s-T4~!Sy3g3e zzSt2s`ae{q^naEixF&A1%b#^*%G=vbY?Kz76Ya6DvEJ>yTh6}Yd8bDU!)&D_vVCVW z`j`6tx112O@qxU@hb0<*KJPyM(3Kb4*UjG!sJeah>5>p259ry9_C3(OU8zu~uh#(g zq0Vy3q4B|**W}zoeO2+NYw+>Dl=EWOSK2%Hi@Qx$i|yLlYUvV^Ye?g)FB@YrJICt! zdw#^3{`Pdf-x8EyrBuS#>|mjvbnElpxUtluVH2)uLCIVUw%H0gV@gPi~GB+8`T{<#zY$-7wEZhGXmssnX6huf+8sM=^iK{>5byVd&`t3 ziqYL6tUrYvucpqJ3O2>F0}tCueEPLV9q(Sqn!6SjT&`jpnP@iii8N`j`%TXznTwC9 z$D3s*L4@nd6Ba(B8HBqI31d|awlyW=N!DUf`S5QM`?2Y4@xMg64AcgCj5(@C`Is^` zqx%zH-su9KvKlXj7+Ue~1N;mp9Tlb0mebi~hg$I@A;L&nb$X!J{PFThzh!vlR5K3I zs|m&9~jvG=(R23CK}bCR>6 zBzqYuYkskK;)P_~Q)Vd_iBDFN2QTxh55DDj*`qc-B~{<%Fx<~pm6t16x@=dwBJw3c zcg3h2vii{O@%`n4G69Rc_%M;KNU2q95v3DsRqGk7;`h>?{SzR4{LZoT_pQVbRb8X+ zYOM1IH1b{jrF42MZobH)Y!IKantIs1Kyk7r)HsM9FF)whJUSe`aH|@BUKy+S>*Np7 zl9D#&5LuxlhXvx6wGAq!^e1+}4K9u-ZglNTjgvSL!cW+HvhZ?sJQPjy{F~eMD`~mg z1)pp##7kEm2QR|Q1!YkW(Tg6g0?5Vp?9=8=U~uOfTA{T=r6*O49|hAsJ%R1nZydYw z(Qba?!K9tMNregCCMHYx!W-X?wIT?bAVYphl>x$mimYIKm7*yLamwy>pfbWai` z8@>=-zEn`HDRYrPStisTf&F^I8plW0RQV;*NgKn3TGIU1jt+o-`FEH^qt!76(!F9zTPn0K|~@oi%gQQ zNdcXZ{}>^Q|2eHDg$lJ(^Y0|qxD=xP)$X@g7x;|r$AiUFN&klQZeDx+e|nPo?}*b) zfq!ZTdO}%STk}@R?YYc5U1=XdIuHCs)$d^IDe-Nh)ZY;KxUufIH4tQWuvY=riu&jk z@vpD{&ntF1Xfg3)0tExxhZ z@Tv3LJIwi!FNB)%HusLv;^LuJdVAhIGk5koH+OMX$&+8%&y=gWotgn|mmG#x>MLe6 z-Mo>v=gCBhN-CEEfx33M-W7g)m-8`{H`3FN-R0YNsgXmJv((>E=OP!nZaVm*=@UPh z+p#4!7b2J2{py;%gL^UK&3i0POFP1qbybG)eX_i^l}3SUXW|57SqP0ChSL!&c9k_+ ze&dIU-j3RDyK#E|AlpKLW&V1!NN31(<&LlCFvcX~C(qudzi-AJ%qG1sq{9pLQbYWe zB&a}xrv0g9Tawy*oMqzXWlweA8JHtXFRG`F zGA6}BQ)U`Ly1$#as?$D?*XH7n3C~`sznE$3-1mm%4 zHir9rc(p1RNrX^jGWvb&TXFpY?oZC zm2(R&t@wwQ2S%8M*V;jH#W&^B-OXdWH+y0Ud%5nD9_k7TnOtf=#V_8epUxx^qJ0d# zWw#!dFULhM*K}CIt=1MIj_fmHx;q@;EYFEpH7-M(0N;UZ=xCAWP#7!6e4x>M)O7yr z>r04*dy~=LUaF|4XW~_exF#uPi%#OCQ7E^$)#w=l6vNHG(490T{!0fl!oA8Wy-rWg z91htlGwA#EdvMaQPqK5`!yFLsM2Wj0?))M6wcf14k#ufl9d!vq@+z{1SQAYOgiNI)I@ga zmnErw^*L7US*Yr_8a3P{-_+%gb|wAqD%QFfD$xqiwmHz)4~EpW2U)IIzxxvQqi(4 zB1};N$0>w%f>e~YL3njnX|#6H;VnPKfPKrGUyLGYPQA)y`%P<$duU+q6K=T=He&h7 z9tU?Xpwf2TUJQ6i^2T-jkRkV+I|@s8#6J21PT!$B(@IwZg8oLQGWJouac6vnW_L^+ zFy z=>GSZx(rWdSJ@VsCpL0`QXlN=TqXH5f0NZg_q>Nqt6$^&i1zw+eVxk_9(zfSB{~u$= z&rMbm+!N^l%86DL4@1Cb{{-l2GUZmWxl<}8m9 zF3?CT@hePRjoZ=TG)7F~ohg{Q{;wko7gftr?+7r(T8DRZo!Q?s_alEXX=*k)JZw1Y z^H->2Sz`Tr(WK{EqPo`C3^EKxmcy$+Y4*7?Kq-E_k7~bx@)9{&dB2GIv&$RLJ z+yZYERCWxo{_|GtFS3!A=%H?%teXz$>z@OxpA=rZJ)Puv@w>-Opy0)8?JfZY4HBjW z{b#RMeYz`N=K1b5bl^hL^X=hJH?nR*v|pe|!W?{<063Bvu#R3ymLJ2;rKI%LU!jtp zNi*noJ2oJ8&_xMue|q$Ub$E93M9qxA!grS{Q!;(u584W8(;{I#Kt-u(QQY!bSE%e{ zGkX(fl&zkxMlqLbk-T-(4FC@tH_8_M0}lh#twA}&i$_xQx=%1VR&+%3{)O)Gkw17? z*{XJ%C^)$q?d+%h;Obqn)8jd z^lpcGa@BH~N%HZ-;e~V;F&+ny8FHqMX~~R7es$V-M0^qZgPF%bfqHPZoTS6?sV~-L z20EyR9WTv@9#Y#5p(hNwyrKscS%+E|ea#~o|SHIt-WWu-11UdfS z_S7HfYo6$>G|aZLn25gl0QE!)nT#UxC_@CJbk7~?WN=lZApSHn$lpwr8m7d ztQlS8XFf-J$R3*+<97IXkgxlByfgPE`AnPDco%?}wXE2>Egi+;#jHL{Y|BfnIU1(@ zJ3Lrv-@{B`zs0yb*{0_kUJ&|#aL%6Z1n3^}e_x5se7efo#gAFgv}%rM+e8)PL`M$$#@0%Kzt&_5V4;(~!XwugOPX`de1udW*Wh zzu%BCY=1V!ZMwFP48V^N9)%Y_LI1O-X#OklD`|`M@M(929S73mW5xFyrvD{e=Gax< zX}(a$f$qs~R-1&RdeXp1hz>wzj(IBxl4P6M^Pb{dY$7mpW5vba79m~+WYV{M4DOK> zSy5oD89!5xW`=T&`FUkr>_4u42*-n)Fsry5?Zkd3G@~BlTbvr|B4|}VNt)f&7cOcC z)|GpLeJ-CgKu!8P!^??)uT6hC#Uy<@R^;}b(x@JRc8pt}7A*P?^;m8t?9wMIGB+%y zSVPwxr)uLmiueK$gVRe5l&+X2H)v90HMRxrd`yo%2FNrH-0|rlXFGn0eRa~oiw0ON zHAa1Du7*);gYB;HwCRVB$lt`EM%>IS6T6uVOELSD{gKKG6j@SekKsh7tbF1ZD-KmP zVOth~_FTw=jnELF0(*#K?-KxW)2d#`WgrTR$=2i>5dB`9{G3R2vr5IzuV~CBV9R)l4E6`i7Tt6r&rr1NZ zjI}pRqGnCOWCTtV(o3}4=U8371HB{ps6mf8rPZUUq(D|Z`tUX;1d_dC2c|kE)EqPG z`ojKqH7*JdB+9m5V{fXp&@nG@pRtDby(458ILP+YH#ES>gdwyMWbC2>C7m*LiL%+o z^ICKpr!g7)?=bpL`L{LB<~jZNWCCqL{dF#cHFW6Tn7Bcxt(h`x>>nSR=Z@)3*(RT1&Zo1$DB!wWJ3iZ&uH+uOS z05)!3lmZn6rlYprW@uxJEckVowO=tiHDNI6;p_#;$@-A7vxZQoq4!Bc9KEA6V^8td zR(F#rSO}A338_%jZL#45NOGe2al%?F?$h89Ixf>iA-jXI$Y$sIu4m&3(!;7QC}lw8 zZ)g9oi7u$u)8Xi&jbcAX)BRlASgrE{pR7{s-^^fLa<$rsJ>c{3HD1Kl%a^{kcv%hp zqhq4^6Aod^_9%rVB8~aivMt_U?)!5c z((Bu@>EMrB(6N9VI*Bvh1i4jtCT>6B|5x)9r~A(r>uQnX7- zDgy4^w7tds#i%urd=L~px9v?{gcNL=na9BQQ!d)kHGRbH9Fx?)_$9S_2E?G7m4S=V zr+5&2>yC%^6xX8BIAux5XHiFP+G&w;g|yhh-AR-c6UYg`yT8@Tx+@ zCZ1RY_f=LoT7}$V6l5rLnDv+bbR6r(NY98r4GVf7T`|c&AEioch%ltLzOm480>oOP zd;U^b&yYQWd^?Sb90~@iQc^uLf2vYqosFwAS1*(-+cBrb4KcC7$5TZ6uBz*LIepQ8 ztrOa@Zuk*9_~>>DYe`1OXzq}gb}P6%OtMc3+@V$v|_-X+8+CTBtWv7uJ6yj8G zJ}N4#FsFP{Zlq~SgE0v{a(+TCSqHxhb1?ryt;n1?DTT@MZCGy@NO-D!Ew)VXX`Xd$ z%;Oi=(t13-n>^B9<&#eGm}2F{nGCJ9TbtgFbm_`RUV2=mQ+_=U`}_T{h3S~^Sxx>a zX!~gHFMZmUhY;B~i<0q?&_Bt`>!P(fTyV-tlyF6`qc16**1B7kRLY zuKc1adOf}ICTdExI#vA(NNJ(^MCMs{j8{0~`qbFdNaXg8ie|&(fhWx>kMMIoZlw0_ zG5be2fP3dPe&79PM+L+?%1R2X8CrA#$SgRiBPN|1Qn zPlnEv5l?=GxANVgLJhRD^_bTL6lH{3%_F~UCVFV{Cwr3rLAIZcF`ipdzSHzA-SVBc z8NEni^w_NR;a44cqk+burXT7e58^Id*<&90TbB;EH!gpx2|mf8cN zJ|)CVi{=sv5>cDT5Ie-huYJxt)avmwjK8UF6QuQt{mHlsB`cK4gBSL1>sE0bCgl2r zc#G!Al;axU>URSxZ4Rhptt05GwChTN-^wB7fQ4Y!%_J$3o({QRZ-o+vST7In=o7 zmM~sloR~Y-ZMDB^M)b9#X{g z(yK8!UB1OLukAsr5NSWueHLm&&!hfVwau4v-x{2-yKzg;nU&6~)!Sz1bkB|Nu{M%5 z4qMKjDp%Z*m)cYazBmk*5Q*5I)6fNu(Sky*-G0HHD1+DEP~H& zFy507YK}heynee~rQfZ>JL50KGL=XLqC}*)E-R^@`)R7RmSUs>tDHZf(CM1eBR=S( zfZm+x>iM~y4)(EtXOD(GQC`%QbdTDBcFr{t(V@S#SVEmnnuf5z3$(-DbHA$p^|;p- z5a`W6`);2nj-HA>w|ZFjeyD>eqAc0{cfkWN8&KwddB*pJd*l9PTv1N$_M{{Ve&gSlWZmB<%?=H-bX|1w zi5C)@qh*Z#3nHIyAY|w(J1ge^ZDFM19Mon@XoJ7`uN=Vdb=p+p;!9z7)6B4UHi%hw zS$o`oW?G7s4Cr3fG9vWGtc01Tu_(#GUrjrpAo()T= zD&EgeGk@}}opyqz2Sz#NL_<(`=R_NWWFaSR^Dyuv(7+gkNwKSIax$^x@*?eHcZu}J zi2vu^VEu;=gX{~@xT&B=IctSe^g!ACOIoptSo8A!T*6*Eok?HY>YqN`dY~1M+p01) z{1Hf>hC_RzF!D2tkS$BcnDJiw6#a=RuKZoBT(TbEdmNJfI308CzzzY(-K4m2V+HTi zi`hvs((1BX?Ya%StJY&b9qtqia|4a7T8;!0Rv%PEpmB=!mPcVp@lqJ67qj|T`+Qml z(B-4n=f8tD=$0!Y2?jFv?g?gX@9n&ho}pM#o4k?>lZFf@ z5!A#AqtPS>s!GqT`MV7DR4up7{F}HIFN>Ytr7%K=Yp)4_3smij*|e<{O<9d36ErP~ zi8gC#m3iIgC=}9WoQdL@lDnDCwB-7ooLf@nt_EeP;g(V&E{0U=jljd?6;c`qqzCZG zWs&I)!Qas0bz;NR@+>c%#W^1u{HMIw!=nuI@jp(lbY`1Zc~N3}!mJ+S-2F^uvdT|e zp_v+2z|D(#cwCJ3CE2p{)FTsGCxI8FhzX9!?;7(Veq)RaGbe#3ml!Xi1Z>f z5vguoE)7FK2dZ^)y@{ablRACwVd>PgVc%BaM+d)YleE>{(1ke))4G$W;>fleH(GdB zE8LQu>=Qn9WlF(o&=1G+pN^X_#6KM*WkmS~hR6GSHpVbp6Tp$-xW6|xqvXjj_ftfXzNIs zYxB=%@3?yVfAgk>oht+vR@Wvi(SbUD9(OL^IeHt3Tx6@?sJ3prm$RWYcK*8k-*kcO z*-e-=h7lBW5-4QU|V`tX9R=GYO zq0zAAV1HHxXpmq#)wMb-PLD&M=Xq*kY%*kSK7h>Dojop5)uc7Y4i7E>9n!kmZUlC- z;_BI}JKX{YuNprZWuu+;e@UMEFpHuF7v<6fD;pgYiv6{J@T(FbSgxR6OmN_yrm^Au z1OBfN?=KcAEObWzUCqfYg|n~tAlFBP9}KhZjTyYQA>JRbtS>|+b1W8R>750=@QM1W z`}Ta<(0`KfRDApVq@=;WEAgDKN#vEc>~k0XE$3OWi<~ff$+>sCP7c~aQs&qq*wSe% zM8$3{4IL*x$#!YZ0xFSRDmPCS!0WbqD|hDUI9T3)Y^CQD6Yj9zpG_Yh;7i_T*GAU! zEWIAM4$y&oukCyXUCMk52QfGOYpe67K|aPY?=P;U z+HZwB^)Daang0nrQ}L$4|3=50qg)cuwPU-G8SL|bEZ%v}j}^5*ZXnow*Re}X$go;} z#*$UpET%OvumhCsj0%A&15w4IU*v49{F<(bmj8tyL;=_5NiAcI3!7my3dZmAr1+oD z_a@~!(OT|$*%eu(*pZH(5NzH58K zW=*#&pi)_Y?`KYRVdA%dtrQ*nG}Na7k7$3DlxzA@qtyr`t$s0yGY6e}S$(t#tAF{o z(OJi$Wln&!TdmmZ%2q$npNSdw>*oHCBn7|n6aLhwrvs4MbGEa+Pp1) z;4Q_rS=w`DlI^N+#h;EMac-}L-aAQ&d(T*BWm0whhAScmlidQ(OOTn>fIjKZ){pch zhwxIzt@T3RWmc=QW}elg-&uTZwqNdIuO(`IQ#`?R()B?ha{gJMy#0+4C7Rkur;Qq= zDh>IUI=hVzEc-^6?^l#12m(RwIxPdAnx>~I-M#EOm)ifu-g^c`wQp;`C;}o$0YN~5 zNDw4P0ZAet8Oa$XXC&t!D2U`tlO^Yz5gL@7Q`2OS3{8;GfQ=3BY+SCr_Fns(d(N#> z_taZ;=LgFc8g9`LpR&s3HA z^#S^}xX5fXLUBA9K94s<_e?Dh+HJ@Mk>G4?RhskVQv6|)G4m-5uk}S+w&Riw% zOaK#my{LJmo);7=5x4d>!XYW}dx1w*b`uV2k%s5(3@*MRx#{&~ z%85Ldm7nBK?24Uj)lfCm_zHYmYd+V&t0YGMHx=bt=7@tt4+@tj?N+({sgT?(AwjgAcOQ)$y2Z$gcX+I~V&_5j&LrWXL2#&?RcC4JlhShQn2PIC)CvDPz1 zR4Uq4e%Y1%G=YX}jpTPNiuOOUW4BL^GgF1VG%zz1vh{OaqsTf^s+CWj7M3@X>V`0kmO}- zq1?GCGM3)UtM+p@Hi$eP2}ma4kvi0;9^n~UkCDTTvs^R0?i!vyBWDWNDpBy0^HST} zcR)l}Kx?96-$}ghurq+spY-FlAT2woxOWi`JO`u3s8Qxxpz9#UYjmGs#X- z|D;~IkyGL{MFTnoy5loY!>4eL9>wO{Vhr&M`{JD&2}gNK>z%^~>A2G#y(EQNo0d+W z^lz#GAib~3iLL7?h}{{h{O8j^)<&Xfw|z&;m#5T}q?Q0RDu@A<_Pf)6?)^)HI-eGY zU|2|ba^xOT;TNA4_fS}kwzxjA#lo3KyP*+Y&=F{ml za6%>EW@{c zz)RV8Pt82Apt!ty6lfn=P92hVy0=;rn;@(!Tss*`6Gx-5=DHdu1=3%>ij;O@;NX+L;Q!dfPD2XoN+1WG4#B~?X8sj2Deg#^B4jp6iz{rtKb3-@DA33@WeiYxPh z6lmJwqV-|*$9|*oS-XK7K-a+{6KDw=*7M~Z288vmz3|9xWuHlZ?G+455ovig12J%3 z6kI*wQ;m5VS%inC><$n63iJ(Tu{*hZr*TFseX6GJBW6u8tTRZ}WJJmuukFR$-8Et; z3f6rENMV@w_7E3IRNt+`FVo-6g<942JvIIRSr|Ku-ZjoMQU5(sO# zvt}=a3tytkbYk#}U*3dif*1uN9!t!VfXg8767vo!lrm$J^t3uhEt?nS86NpgRydhJ zL~TJVk!ynfO_t&9`P-U3rf$^LTV%~mH3~VLTZB)5;$*M2aVyqman!m@p?CA(4L`ks zFJq&g#2Ac^o@ss&IME|Cc4#%8KpAKCMUD7o(#2xd9qw$Qq{7Bx2{&*3#TiZ{_?*E+ zOHIH6I%x2Vu{P}k?6%Zu(go!;{g_gk?>bd3j^`YB20!C#X3vu zpKpW6ICc|4i1;L`c3piafZm_2E8YwozkB!{bUGDQX|2yZ$sR2Fl!`qqRoEc&j{+`k zX%<&y<-w>(u!xzT^lAkFs2Q2M>xW6sXuey}9qcmtQu!WO3Gtc7z_A&;{UIDKN`XF@ctSOq9x5JznQ^aqViof1q)D{gw$?t? zyd({y5Pi95wBvvXz4tj-oOQEj#%{a+4m((t396hvpS@R4|IG!sCuWYKv@gUL#s^-R zn22Y2(m{`X=HiwTTSvG_?O<*VXtQ4)iQ}U=F%6@xdrQj93Tssi=n>0TWo4z)7x|X{ zqb%j*o9&a`iTx1G$^Hm}9fjU@cHpzi!>2_Y)_GbJnQ|j$Wa`NKUh|}>S<7MN!4omw zgX_}eyPKlxUI_U;1_~2CHlj~AGes7&E!|DTdoGK2=S zCl6v_foAj%${8Mk%N3SlL=*JD)Uop+};*b0b4zp^djMp~TeU zbNfx*Z3ctu`MxJ@Mxl_ySrw_IQQ`<3c8hszsgujn;s|`Yr(4+qw*emKl_onYVI^n zjIi*dSkc3b_OQRNh(HD@#mw7kBadr^T;Q2qHY%!#V zkeya!SoN#wtpU|byt!q`vOj5vkWWJ%TnMUz-1##rLGlP*(6hXRb0rWY(On2Nv zKFwnb?`zO~IQCDHRwX+VNh}~~UD;kox(4o#YD>WrPiM#Xxmtdf4&g5j=y@9MNW7sI zOQR=6_loF7mjk3N4n6ul;dyKRaK#qr+73_sbk7+JKp9982KcUrn#=^8k^}E;zX$Bl zM3)Kn<~7I*kI3zY>GuFmK!y`Fjd8Zt)xBP63$D-?G)6D)g(U-GbD!mXh9id=1sXf; zX)*$3y3)t*F^0^XKqOj9Qcx@+Bb}u_cmDzW^d=h&U{8~8yanxzH0d2V?KJ7nI9q(t zmsbCiob$OBU2LD07{XNEk?n?O4kfVW+z9A9a=N=o`{nMrji~YV*qZ`^@q*#J192|V zT15P3C^%VC+|zIq-6e%7R?D!rvnr=8W{Wsyf-t;dbi#qm!x2&b)>e7cdF<70$j=-s zq?s>x2f6I>GSG7y*vp=m>SS1`;*EzdX(YcIz6*IMDd*YnwrI)K>p@N#an{=N0E{zZ zQz^lcru$afX4QX5bEY7s}xc2@cEMz8-oaadjl3h>0)mmb;-{(ZvUinwR-Zol_Wp} z`MzEEKxnmSiEfq9X8?7a+735NyQ^OYWl4Zc(SQm`ODNv&B|$(s!rjlf)v{u&%qH9M zncd&!Ixg9GEz>+tT~v17_>;L~>$eY^l}aatHb{trH-Z#u8hpO?D#wXj=}ZwZ+T*l` zI=~T8&bQ*m*Q=0|+d*&UTHd9=eC#7esWpCnkGc#usnB=to7{GQ)f!2;VF4m{@g?;3 zw$b)?Tp}H@;x0KTfH)bLr~|x?EnzDz;10 z;%%RZZ>NA` zv0p;?7R9dk@R=##AV1HeCtE1)44epYDkoM6!(0w?Cxk z02rXiV;qR&I38rf`c=qnG_8Un>R@cHH*p93A#dLSiy+}Ku!jEEb7M&g5|D~AZ{n_*lkBjscNKR-Pb8qQ0=%#g$ez zwOJ6>%DLp5(Z$^@pP5&6<#t(Ie=p0y)SCMg8cfjlp;>A0+N0BZ-RTZs>A~aE)MKz< z%!MFDr`P4P*&cDYCGZ_z*)@pxdK7~rEzXk{jPvwGpO=$ul3o|1Twb~VAK-kHDRWW* z*r;e3p_l&>EyKHb-LwzLh0*m*Z=Xa7MPM($QlP2>L9*+STI#pvmEoM#vGZ=rJwfHo zz&3qtM&|jzfPAFuQEvE|Cbm?+%IP?18-e=8G(a-)Emg+|Wq|QJ%_{Kq+6|OL#qbQN z(~=rEBU^?Zkm-(5{DS-v`=$<-e7BRuQNOyaGso+E!H=HC_q)4Iw*IU78Bjj$FhHjG zdhJe&vFAR!it~1AY3q=umLx70(Lg`Q+LV;~%8vTp2 zapuYZ+}|@O&Za=}&C_Vf`bmljL)V?GzDum$KY=0JFZ0QVylz3#u5b_)4^ zx9HGkgxg`KB*kLeeQbdBav!_euf;J~NZnl1g>(Qn)$&rI#K!D`+bgkdYa@o{sCA`$ z-X;zPd{mOU{O4Mp571S-LB7p3YBJ}Qzr`I-Y9hbD1n_=HLo4n}L(fFmps-W@Oz5s| za1yq$71Tw;7R}$NGS+hqA+%s(T54#gpK}RT+bjF;qJALu{|f5Ib1q&LY=76w%0}_z zo#+GVEiz8&q29Y`@{@HF7nPW6elVYF%yYii^X`8GJ|G@u%;5AhDga$;0 zrY=03;q_H1&%RcXA!3&Kwr&61E(lnY^kPFaOF7mOXB0tX^X>A3Z<`0wC43CVFPr_I z1v!h>)($@9M-#&|Qz;igX=Hgf^k*%FeU*_h|BgE%ch832H}6vP(k_tw>}=y$_${Z> zy1FFl+^f{Na4N08Jg&bRUq6!lwfcNgi$V;xXx@U7?aF!KL6pUgG<7v#E?Ye*tk3K) z6;NI`VyRl)8}TZh)*1j3KB~DeXaUtHT$>;U#A6A+taSV8B($E2E#@)W-Eq^z*{m-! zwYf;7{T;y@GvlmcUd$b=GV*oYYAfgL@)FKEAW|hQEC`>9E?z^~%U9Wr%W5FYNxlWT z)PmnSVu0{I@j2~pmtNUA1wP&dZ(E~0wiO!>jp}V&a=|c4tua!r7B00dSnjbQ{C#@k z8`#1&=G3E3Jha+z@c@H6E~S)us!;A;&HjH+0qS!xNTmHM1t=WD;hKgcJhU4h86Fu7 z@s&Ga@K+_CQCN@iafp|I{VTQl{Gh%8zr5b@APhkw9} z%KeUIur+>7tYuj|z!Q)cHo*2g86_K+16-%5c!fOG!U8icJt79LocIX51SMw1#-y>Y zGR9E&U+6#|7R#+^;QIq?pukm_4GveJewV$6-<~k&4G~%1nmMWHc?1d$%%UM#F};EV zdA!7{%p)4%<+Py|lVTYb{bVoN`EX#0^u9NF{m_0ff-52g|H254j;4*}iVi)^VaZAM zSX40h0$_r#49-;kzyv3At}sEA6eiUdiH^pFlEQ8#X7{t5I|yF-Wd8tE0P}=K6yY1C zALRmpi@EC=GFBH{%Gz5z)v*U0@H7Iwx$V!e`S7T!l{n3^UDjJhhK&!G-~WXYoJUcD ze=Vtwm)}sp$0xQz;pW2AJB2-y-^udXTG&q>G!SIw#e_ygG$cm^uw`f&Vt@S%-tT9Sg?@bY8R zoR`%s2Kicol6*rS{;H%7mz5tSO#G^(((rAsn;;~tUum~V;f$R>qb``0Z)_u%W2>u^ z+1HorXNp4vPHu%*I~SMN9gW<~li>O^xRt;2?L)KZApJaQ&t1p*Fi7!j?N) z�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 F_&+R6;w}IH diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/l2-sol_panel.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/l2-sol_panel.png deleted file mode 100644 index 646e608cbcfd0898eb999f81fc5b4e4bc2e44309..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21252 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⋘)Xtey}Fa+Z52YF5NR#Uyn6&d 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 Uo7L;nzJUsKPgg&ebxsLQ0P`)~R{#J2 diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/lds-sol_panel.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/lds-sol_panel.png deleted file mode 100644 index c261513aa95613c5f6b257891092ec9e12065aa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17621 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 diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/lds-stats_panel.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/lds-stats_panel.png deleted file mode 100644 index 0d9d419eb70e2ccde7f06942456bb2838b4094f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33861 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 Q6#8x@L}Y~vp6h!55A8Q8Jpcdz diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/memory-chart_panel.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/memory-chart_panel.png deleted file mode 100644 index 1091a5032993d80b13dd8f6d44aa2810ba6fc64f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110545 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 )Tw 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

      NX!sFJX=j!DpH`THb#W&SAz$ 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 z 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 NB_=OgE&Ms){{r#UC))r3 diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/system-info_panel.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/system-info_panel.png deleted file mode 100644 index 5a5fa01187d529b15fa8f08d824cfd58afcabcd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39668 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 F{{q*ShMWKZ diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/ta_panel.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/ta_panel.png deleted file mode 100644 index 2f08f9a6b14ed8a0395f1fa33fce420d80663f3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51887 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 B7*_xQ diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/td_panel.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/td_panel.png deleted file mode 100644 index 819407515be0c299cba821b6c1f440b945add351..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24483 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 I^CIBC08@%fyZ`_I diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/top-stat_panel.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/top-stat_panel.png deleted file mode 100644 index 5e3dddca2f587424a6632c7f28bf710cb97c504e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77241 zcmbrm1yEc~*QiTE0>KjqZUGV`xVyW%GZ2DHaMuKP3GQye-5CPGT_<>O8JrnpV3VA6lM5?LCVxg0uBOxJS$;(M;AR!^^A|XBh@e1WB zWwE_D`03v>R}EPSq?$>x!>7m#D{*CUB&7Oyj0e+~PjNISIek|oBwV+@f6vw}DZQQ& zO>MOF+%z3*oRlrxOwCQ*OrO$_kbJ4l>}{OX9BmxjT&V>NeW|^u1=yIVy`Mh)nf{6K zadZD)<2-zv|H<)h{=ad6e*idj6$uH!Cod(g9n(?M3O#8A#!Xa92L>BY|ZC&2+77tf*OZM|2hOG4OP*3ZQS&bh-$!ns`^3dGeWCqb@5!rdSJ62T=mz8YKmA5RQj0<)Jre#WB8K+K=-Izvv6sDV|H<nu%fA|(wP&WMPv`w7;gdJJkWiIq`^Xm~ z__ZUV*+C6TL02CKK357|C zr?!skOal-nFLLg#&d?4QD2A)v%r^qAXU>$e3pMe8G$JWQ0CS^AXAAW0Xp@IRrq_>M zWNmg^m=hBdFXK4zJP(1-k;HuKjqYLZQ#~{63msKOls9gh#}1 zHl_ElcysU@b<2@5w}4VuE1n^o&D|l*Q$)@)-~zp4D;j4uWcpk5UR%zxh0XTp+d+2_ zplm9EiAcA=YjBu&rWe9rSUZDJ=Jo;p2Mgx$GYr&p>=ij_-EVj57$5~KQsp%EZX=;X zLgISk4f7dsgkzIG%xSuXrC_e12At~-9UKadO@7fC9_&2$!$>DZqB^4}2x%wVVM!X* z6E`9D{}u;dKs8>P^mhtVfmf)NEBK&Z)*S-lW?BQ_E*FP*KKt>f#o>?P0w#h1VxEtu zIEQ^@Tidm-EZ~TYjVq0c@u~}W@Cc$x6@|_?Ubse;2aWM@ZVr;OVJx0DQ|7k0i+Tt~ zRRII%qXb5)lR+QaNEVlYt0V;Mtzjy(C*`sw9leQ!Zzq_Dvb*VHAWN_%v)xBh6 ztD5s+GzNDJp`~za#|fqFL6Y(CjR?0Ozr*OT~D!%>_S<%Fe3!5V$UxRr5#H z2+d>m%p|$YFlav8{%V z)T974uvVqy-VoJBiT?0?3dHxRo2(UA&3mjAg@T9!@&fh_U4JUFON zPTj~u8CU}{DPjeTMSa0*xD=h6LpWC}UD1hpXP^3=E4%kB&MR6fQ^(KAuB#93hz3fO zZDecFfu)0&ce8NT<>L`j3h6cQ(cpHn586#*V=TZRSP0d<*R$=lX`njMfUdDh8vMJ6 zdXUDTwvj2328PA<&4D1on7ctW;F3#Nt9G*eTUFbkVPOR_k{CFlvexS5X;0PxI=>j& z?pA2{0T?(VDGa=D_c`c|KkS>*2V46q#0Q49hlc^nQwD(d?Eao!!Pz@2Y!9!6ueLED zH|`AU_>dDslYA)RVJ!=?=EHE9sfbEh*dI7R+#Lh!;YjsXs($J{VO08~TpEHDHp{%V zVc0TF=+$?dx4TrjWmnYSbe%R39w?w39(d#Zqij%{FoQcTsXx^(AGkE7cGJz#o6w+a^a`0JJ77LGA`96NO_Yle?) z==XpVk~?H-(|m7GRFNG0p%n}U3n&mR<6vi}BFrG>YqTMsL8bJ|7p;i8A@}>pN><+-;5NTZe>vy%W=L`U^LzU%+PFtSd&i$dZgV_{DiCCDX09+O{ zqnoFLKg!s~hH%TIKs49RQjW1^{c1)XXkLE^4`r;z#L?L($l|jTy<@2+zDDI`;N$;l zl0QeMJG~6u>Iu9t>$p-BJTyqU#tD=Y2HqvKr3)_9&NLsTQ3a?tinPU@`tcu<fMtWZWI%p+BpOR{oUevpmq<3&*A61Jadxu z1?z=*l!!O}Rz(`O)Lw8+CBzZ5S_e3;Fm~eHZ8muEb(7sTc7r#SImz~p95%BdbU<8} z_qb*Qy8z?4o%@OwHy$O+ej0~f;;~ExCOImZK8ht@fd*I~@0j2t+=hoYP@Ak{GnU%U z$6RBI*D~`36zbuS)^{dvfW8Kgr%BsIO_n>Tur5_Shm)^m zjbqcVB%1R&@ao8ZubwZO;+=>ObYr3f1XLkCZSJD=i~>{cf(L}JBYe9`r&i4EMU@#F zg)WDGfUDo0?BdTDf9_x~32a=>l9r+~|2}%R?>H+7K7GqTu#@7Pa^kYvdKfE;Ab|2m z)BP4jY1@4%&>Wb=W-U!DLOpu^(%)FKhZVYl>RZDjT0S{DT6Xvgp@lM6B8sQ2tC<3L%I zVLc05t_>-5aBpzG!EmyOHa*) z<^^6m*Q=F6_(itfqDF6Ro9I8LQy?5aGtHPjnW`fL*y!om4C&L<$SfQPuod@&r5Co@ zm0ah*kH5Qm2r12`E6%GjHf_PK4#VfYHX2h--wtja0ySryuLQdN#o_SF%AR)!xh5D(xr54?K(eizan^V8U3WjBg- zT^bc9P+w3tK!vb0R;LI-j+XF&W?*2z$QPXuOiD zTb0jRp-S-C>7hvQaGja7PRTj)@%BhWzL9dslA49>7|^`aYs+SdWXxYmK-Phuf` z%J_4%(l47jjh&ShP^k*NB5SxB?uPW=3=Bn|Oev!sc(w5ov zVpHIBh53cHjlT2SVNR;*x{@_1bC)1RY^t(M(=88g<&4yj-x3JJM=@Rwl{1+|ZMo(x zm|c`1Q)+X^eYcX?nR>X;+M`STpuRocNHUeN3Yf{$#Od}_aDd@-=ooJ7Qk zqvzUVPNYZD#JD21Jddnc{rVXF^sX@VLNuo|7;$RsV;rUy9dP~B?skL{?u!%bN=IswY+Zm2CrFIR+I+qOaZD)9*Gf(N1P6HSX>C>G?TP*?@ zuxLoSQ#eKMn`cz0>0u%xTAKGXCSDnK=pT_0d5Ug(tdM;YHQR?u^y{yfj-}k7bERYO z&Y_{M{YRq21Pdi~ziX329AY_A*Cjm9Gc#(q!Co5T$Y2=)^*!*#qdN$04J}9?z`J3k zK7pB$ai=W>BJ4`?A0M7~o2C_2_45yI8TlYx-MBFXpI$8q34ShZ$s*G6aEeq-#3WgdBJze7EAfi`-SuoPGP|wZ7I(S zFAF~XLds7&>oRdCYb4|t`l`~ny+cwq%qdYSHz0HULGaP(B@~{SYccJ2uS0$_vKb4k z?5ApUxXSG-0nNv0Y|`LjU?L$Ac;CZXt=z{)S)ns&pLx%y1nzNs{&f4jtX?S>`Pj1; zO6Ct6*{H<9*6~xJuY$RDGYCFvV@&;8SIk2E4&g)Brsr#Vp?}wIq>vsBgrmZX$3zLS zW>|Ym5G=C@Fj;DI5=G!4IqUI3!;{s(c{B~PxG2o+su3Mj$H?%`eZE(Sy>IAQrl1&O zMe~KJCWYcWINse*ApsiVTpa)CzR3gm0{dZ{_MyK3 z>W~)@;o|(mApa-&b_;^=`eQ)g!5W6_1lF$UQo`yH>v?-u06kNI|cF1 z<(SpphowyHBa}-gxPKHUJ3~)9&u9tI2~kY8_mn$4kB5G|V*wYPEUrUlbHp2^bU@J4oxH5jZQB zF}&h7@@wz$TG7qvhIZxy5|Wt5(?YNo_zuQ$Ctv=KMzoMp7{=WZNjIglE@k2ic`0z6 z_R;<%XD+RYqdtg77{=uvdvD-85t#eChS%;kndJe9PuM*K9l=fda}yCfE=HX-E# zi}7uFKDAaSY+8!?>>3(J=&R=f%g@HBVESEeBmLq7AlLB+Hi>z5h{GYsP+xxARW9YM ze)YWZH6wx-O4X;_XD>TLrEP$V7HVOy> zn}T}O{)8@xXKGq5{Z&@JIghY2x6+#S$XtRia;Ic`{OX^-6rBw`Kqy7>fsZ2}jynBg zjF)F>R~(%`en~6Lr*VH8O(iCK6PYb*dgk?7iJ4GnQKMeC@aNmIj%Z(IqE?p52Uq~#gvAV=JuN;{?P$N~^ zli3u7JgJXe3x`v^VwYz~V(CWy!r@5=txOIXl zA@@Vc)xR@lw@pl0il&U0WKGtE_hMDMbaqHV_q*3kt24?@m)~{5q!5U4G=YopR%>S8 zmlFcjg%3;mU&Krld4<&;2X4u9u2aMUdI~%l%#a25K2(v0SDfkI_0vH>b4y*y&528N zka$XPJPQlZh)82;XzK`yG=bqb_mX(aogW(5{vZ@^HOdq%)ByHbzrN_BheugUx+1P@ zV2iaTDtRPnsj@mbPTwa-%b72D*Y>+EZg~$%85I@VwmiIv{T&u)VS|#W+K7q62juma z32!d%F+Atzlo2-~Gb^vWDpah?diiV@(s~}#6YJ^0+9m~Oa)w(^mfzQ;s2TXLdopye~Gg%Nv=#E2%5=tF$Kp6=>pQ;px#JRK2_dZ=2;I!(6;Gqht7Q8n2R zQK$tXu1G}gy?yqS*S;Baxt`I(M^ss6$}IofL-0D-;B;Hr{kUVpCBY_To3h4bjg)~~ z8&7n{<$GCe;MLCw$bu8_YASD*j{O%OZU*`#1f2IQ;JEm~e~MPTGlzNm9IS}u&r#<{(+fW0Z%un@6D^9qKrMf=3b;Ag zDWu(gbi%iN`hj!Nfs1BQtKO|IhA7K;p)5hWCNT(1VgG}PPXST@bvt^BVnL{#Zr^IN zA&?2W&&fsXEvz84Fk&xVGhJ6@=FAL18ldz&d)ILcYMs?%n3CZfWy%xc0Q;NX}2hzS{Vx}ind~e-=D`%&4S}G1&!r@ ztxDh6Yf$9n<>k)9{djC=(;8xcK90Xq)pp@c7c#Y9 zpWtf~g;3i7^lIGY7_3fV(X=nraP-xGkk59$#aZD2}DJ1Y(zTF|_cwF2ZcGgxTtc?Z04Ix2lecjk*5~@QL+1oo;e#mi-ITAoAD3c z{<_rPso$Ig7z=0rti&yOgo+yQ|2N<;axvl)aspJ1k*eI}i7Nl^Og2 zVV#vPHQL71)N*pxPM3@PyD4IjL>myv#yIV3?N2weRRQO!b2Z9S{g$%urJKvQIM2aX zD{t%-sjlzhn;gH-Up>0ZRe4D5jfCrR=~e%hEhr#=kLsb`T)_qXoJxD|Sj6t%Vle|v zDbIZ1s=Z}KAJNJ2e>AGXI9x?&`3o|@*A`M&0Q?!Y5smxMMr#_l%@ zcs32a?+dlWs;j2+Jfg{0-`ja4oXyOOlW%$TMv_GfAkboXR7W z86@kN!uK03R^ltv>?JWD+Pr@%==sm zbW)bolzVLsr3SV|qbR|rhjs>33=m>`u%DD;UE9OR%fEph2xwumGerL3TPNctZ{NCALdw-hgk}| z3_zjo*$Ni4wv%7>&I-&fsS*CE>x|Q7i^`VX7lT@ifaq?nw>F?y`?S@wNIS3R%SJT0 zYn{wwDf7QQ^jmwh*gPulz8w5{K)2jrEu>;tD>ft=e-vKxK7Rw83DYL7+e2?60C|ip zW!&YpME#t|DN>_YF<{UQZWZ>5ITLy>2%U77%n$@23BAjj?3lLKc9wC}SIvp0vzev9 z9QflNgP)kf`*sY+srQQ{=`M0-$dSgg!gYJ&k*FGBMaCmKoar2}&9LU4jEyy*EW6|y zT&>oUD=Hs7ub5@__JC{9czeTh_9#m;0C7-kOIgYD3-g@8{0n8qm?T5yvkxZp6&iQO z?fk-8kBLw(cJ-Z9-H85H-;PGsb2<9;Fy*(Br;}B76WGXOvb^OoZIQB?-gL}!{gyG z0l7Vg0?&*<{*gBp*lQ*KE$RwAYjhRw=TDeZzv7J+m=P!4#)`X%q#=HUhpUEEDUzz| zZ*}wWGw1>dL`G{NuNqq7$9LcKA9txqXw0A|Z1ZOfGexU+e2e{dMJHjgsJM11(b|xl zVlbw(%UN|GT@gPnWz#UT{qcs0D{}m@UhawzGQ?%O%pz;u|1t3{`YbfY;E9wr$a6ji z&#+__vMvmoHa(gb>FP8%bO_jyH9{)vq>?LON?%J}}P#n0df6V?UwlIK}i zoN8~yaYUq3(luh{BCm|X3W#}UWV{Gi1>ObiiG#8Ryl0O5%uUw(l_st|0L&}k1L$h} z_?)axXYv;#NSdt<=UQ7Fb#g{0nX&4VJ@MqD12iNy`Rq{);t z70lL&2X(%hAA|K*vrIoWu?0s+5GqvVscfS(Tk16x;=8569HtMdkQsjm2n=lq&sO zGvycyN`av2%<&tS*9zm>C{z>@aNud6Dcy$BsY1<@)Vd;vP|pOMe@QVD*-~-hvuLlX zVQTtj?1toRr(C>-HcaBqdGhuET>Q20x@2&ij{spP&0|&2IxiCviT%cTm=9~nY?V4* z%P^O!Pjm;uuWrJ3^D8^_J?jUM(V_l&f}QTfv>vDUa*zkJ9A}u!`Vz)&CKFNEljyp= zO+^w0`8*lAZxib_r13C1Pa4NP>_E1QlPpA2v2AK7`HRxj9BQh&l>tM_3p-9taGhf7X-upqfMW)YWzEs0^%x{!p= zPQlTdz2_=@xaTC)`Pc8G-(&ADCymWr{dJ?|i+nt+2_z}(?+E&T)$^b`y#3kb^kF`b zDeAy)F}h>=$UHUnVv)(NYEslR6(mb9AaomH@&a%p#P%D*{N?9fq4)imwq#{f3SX^} zT@t2|i;1%V=tR~cJH>H|#IHizjmRr8U-TO_^eGTcC6_wv^o{1lMAQ+6b(WXLv)h~TaYq6!WhY#IxLl%x=c+jpV+^VG#iE0^A`OR3igG_X`CU1==0Z7B>=DHs!_ zWbfjjY5N3xo(|I$CebsMu+fS}TY@cc;%(9lbU5;O=}5HqpZJ;UVE(` z+l%OGOYRXF76oIKo&YU*-I@3NJWQ|DeKTzI+ZGiMeSeIskc=s<_IIzpr<{1#=(qFx zQ^n$mhAf|ZjUgp>m66^2d#FQN?1^HEv!2N3Aq;3^TKzFuf&htcLouDE>>|Td>h7mk z)n`+kHNfZF3iK3R>#_#BgU>P1xLJ%;)VR7-(YVOQD)LO&H@SX3UzfVN}L8ZWFsx8yV&u{bHaO4`sImRSv!(&NMO2?x~Fu4;l4rQ4Daz{)x z?jJRJdZ_gkGZ<=9+GNA3+mm2F2FI9Kox^OBms=IPEtlEjGO);~_erN&NEg$522I22 zw8<^D*4z2FOAU^zA=&7QRKlawdCP|ho(*ld+fh4%1XX?xugRkn%Y96|3+z$)Y$?2@ zYgI?iV4Rx~J&HQ|*Oi2pCHai~DKg!O;dVp7zE{t#eBFL;zo|MXe5O_SQ2N?Q-?eBi zwjDPHqZ=C~)l3qdm^C~9yi`MqXExd*W)vMPk3RSsGyG%QxrCjj09pmVGCTZmbj6YlxLcY9&$|=tL^my_taUp zNRFSZvJExBFUPxAjss+dKNtxtu)A>WZ@9IZIW>|B^pQCgR7} zl2=RONonhplDN^rx$sgsdxp}xM{)4EZU*1nDXhDQB6?o%NcLn|*4CSE&iak5=23t? z*oh~@B1M|3`U38x=dds~?mu-aUwW=b8u(>_gY!`7`?uJe2R{B+M^uenA!D)5sm_+f zpdWw^XicxM>u4Ln2}d)9ZNp-y)LrHS?R-0u@!hZerKP>bgI8!BwEL!BUV4G9ntzFm zHTQUaVl$_MOU&l?W;2IZmSWMmEF{YMyQSpf{|6$_R@Qrmln-Td6jjA?wRss*P`)9v zF@9EfxhSOd7$EW&A8;W*(GER_y6|wqZw_GE07SZ=Uy1goGg4OTwIT`Dta;L31!zWl zAC1@y^|1fmV1PrUo6qi4RkdD0d*XCrj;!#GcjXVc)AGBw3G*0%76F;R&31tyxDA*_TzUkLt_<-!HZABd@hWg5Y*R+cg*ZeQ; zIaK&6%jDE(psY#kqe>6sLBwq*Tb+j<@ZYxN6PFLWaw{e!-r$9rq*ioOd%htTY%ZVT zPgtjJIBm^SVey!Sp&r?NitQ1Q>dvlBCQR~SMJ4}@4_>n+A3WdzoI-tC=ZCe|=Gz_O zx#&X~7!OiV_NEmIPbkF5hFqKU>2IRTXeCjo%Sp_#RamOZ3fy!0tVs%? z7)h5#*+Wjpi}LE>qw}c$6pi$wOl2^IEdfQrOVaouVh<{dLvCyxo-ChTU~L9jmo8lY z!Wn7jgIUyCMfl^MiCpm&>P}s=*g@e{&uDp)4Q8mo^5K;viK_}5nbRIx&-OVZYl0?~+$5nvc ze^AE6=J(rr&#W+|wn|cCd_;i5Ny?~&Tq}QtReaGpIl?xyz^kjT05!Xq4;T~sxGznD zIPB`mqht|a?9T40v3)E*@&bL9JQ=6X37X`0h&b_?6o#Nj{ z%V-AI^|E)wc1vp8^PLYfHd*CB^k>XtJ+{GXA)d6{7_(}sOF3`;&1_lX4Kf;GURq*& zgIU3d981izFrdR z6oKeMB1g#Y!^(9Xh}gwCjpz4~$7dg?)%Sm3DWA<;dN7UGA%9*e0PAga{QF8G9mzol zQ!e-b*-R}^0a6{Da})x5y#ZpeAVSsY_JlXT2E&ZDaCU>kaOLZR+Tszw)A*B-T-nVTJ2{N`8PS~3u(Zr!pp@_)1rQi6>9_D4t$ zjYx}orBmnhGBE<6!s$bvqSn!ULwT2FlAiM{G?a=r`~0*LClDDuz%zA8ND}@fB4qPD z$TyTYg|$4zFvv=8j`NyiqbQAM$l;|!_gJK`sb5s97ifR9YbX*#UQxX~0l#zV-dET` zOxQ|n6*kn5^^6O)co|;j$K28*ax4Ghh=Z18`WOEUc#}ZhAsBog`j|cX>(`4f8$EzP zJI7?gsw1eecE1b-spmxQq^){`{Du8rKIa{5XG+ zaaPve+H~PhqO%3HfwSWu-=E-73CR9>_>#Sf?>Jdflu(sC=pXNYB&1AqB3LzGS|V0p4&m^y~O?mPZ2X{xjA$ ze~&yoU0((MU)}HjTifzK{Q9}-ow=1%DTGyq;wj6DR6m^2QU2LP zcU&n?+_Z>)ON!hNE8n5`xli$VyzbT3FIZBmE*GHGE+ziTWA$l+@i-b&t8c%M+33iF z8ftjM!n$^5egLImr)-HHc)H;bugy1e#^1-JK$;gL+&UFJ)xfq_#S@e_LK_ zVHc!5nK8<2WceK(wjI+@H)dG>R?u>2tXd(1f0S9$`*upMy#+mke<=LcWlRZRk(!h& zQj)Q3VF0i;@2qk(u}#!CYs5R(i}y*1fu1a#hhJK+wQJGHzS46?vv1PmSC z@PTU|;Eoy+IeubcRQwS`=w0K!A6AaHB##Q+ zz05dVGW>C3Revt2;#t4~st)O%9pB0J1p`Tdt*;b=6V0eVp&zl9u}3Z7{GN~{zQ($J z#*8KaHtwz{%$450T4+aOb^#mt#_OwCt``c~ zN-zKItM$Gy?W~M>o%<*~6a0Et$IrezZ~XFmwW>{~M}{6D$qEY?lolrc$GaHX z+y|~*YI9H{HyM0)g>;>&2CUcF>6A>gX!LDyE7O4=ulc-DhrJE@DR&wT6z9)%IgZI3 zi3{FXjMzs`c+nawPEC=}y2|=?7X5Y9>Q|zq{q;Jl0cpWc7Ue~GD8d#FtXMTC2}y4r zF-wU)0jEw%!cjOd%YBDp`?Sq1^>*NviPI&-nGJcYD7U@lg=*y9C zKfGn|X9?@xKITs^VyG5E@$yom4?0$^yDA)`QFCDVf)h)ytb%HE=1!n zk*&Jwskhg?zn9Q(nD3Kuan%|^+u`OPT`g6aBoU>9?PDE>+!kz#Z90dMwaXTl;I7`w%4S6(&Yg?S8+M2-Y$-r;t31nMlgstv}7! zaewu{a_nC6_#Tm}W7%AALTryrsc>>0(_*(t>424n#*9r&v1}QL#WRC~p;0X-nlt2b zSf=mBLbvgNEPjV_lyP%6-sT(Pq=Ul*wP0+F0hA6bX+_NwyWi^n=!$S${fX{XI^M(M zVp3_GMMEv=A1g%p-BUtf`~2#MB-*b}jVnE6xEqea}DKtV3~B09$g%yOYC0N)RZkIE9^_kRF^ z)A6PbR4RgamxxjgBb<%2!jK5quf}ax$F^8>Z4nHJGoO;;4J9CNN~1Q_`cV?jj+0?g zpSBnwBsEqQ-mx26c`*3vu`Ph32xnh9Zq+Nw?6X`(J_`pUpSr$m#%_^$p2ogMh7RG= zQ33E$8j4)S%@T1bX)PW@x*%T16dQn{F=6Jw=$5a$Taezu=tOV~e~A04faL9j@;yPV z76D4d7`7p<4nyZ!P*g%)Of`^>Dy6R4yj^iFFey}fLr4V~gEmK?>0|NNi~k9|Cy~oS zg@N2Z(iKCMYs)S#8=W&dfQM?2H7hDZj=48RIimxVK0J&imn8V5Y))>Sna$fA4OT|K zt#4^(OwTet#yYd8dsKv7^@C`Me;OIDe$x7FFeziknE97_*Cme@ThURcd={P?xHDCa zr{^u(Owi_usX1%dUe)8M>3$>RAyd4%#(sK|6q{Ab{NaPIuNq2-fv#l@zPq()Z&Cqe z%}=P#r_iL~{@l>-D79=(1XXrTm^m^@T=No_djhYm)Q0|q+qoQs^8Ms&+`GGEbN35c zhks>ta@%32syTh6HX3T)bO;xW=u#^d1*jbSbh9yDAdRic0?gT3>Zx*+3y^6Un3EF1 zci)ENy1QXSE@11DMirGsYbVoxJhqOs?4iWM!KOZn$|YCT5$HS^jVKh9y)q&L$d{O& zI>z4c4>Ms@{0fbEw)BW<{fL$O;Vl2u4su75AZsa8ACsW(T-7}8hunMJXHla4v~k(d zGB)mB@aCjJ-QQ->C+`_&56cUecS94Wt;r6F=Gi_jOnmIde>wS=Qc|sVmMMVh!rs0b zZ5^`DfJ%Aunso0sv#(Ji{=>cku<59(VlaZ}cV=5o4lRtuNi(_u@z9k?_ zqvqf+5om=uK$ct`??C5{*uFO{0^D&!*uwp7CpodYAHQ!t{LsuNkAJ37S zd0EaVW$QJH^DhUx%!T)pwe@^qcrU3t99cEhFwxORd%L9Wy?=eY`)RAkW+~B^)1QQs zlZbp+5*~_HP#G}Fjgz0{cTSDP$qCZZghxL){xY*PeotmsSyA?h}X%d=mI=amb zcz@KElw3h-O1jRy@jcx5w4Fz{7}(7;0<9Y&`VX?fGQY0;S$o<7+ptpKH8SyG-BcA` zb+HHKW=tJbk0?`Q5c|s}TRZWHc5dn6Jt<7#j0^69$D$X?42@koiS<1#UY+AQgqan9 z#Uj>;;|1mypg`_=+fkva4Ht@7mccBq7w(yU$wsavRu+=z=}qP*#BaWcFGq`Em0s@T zbgR{jl#ewCVc(RxUEJHmxTcZle$k7J>i9rz4YJi?3BZ$$PM`5x}QvMR44mNP^IYgTG+%~ijT1Po#bDzwWk%F8W< zgXytU`2|(%CT*weiPrXg;fp~qz~-yx%9i@S6?{JU%X2JQ3_?{HdkO+-emIH6cX8l( zUKIxYa{l8+h!q7M3&Z8D9KY0MZK?lA)_+N3T+!9ZP2`wxp(W{jj=XVG6L&MdeNZoX)o>^D~w@J*{o2mMj9h z0BHS<>rIA5(RMRwBql@SQ4wZ8^AE15I3EL|m*lBWoBP=>u#%5Y#D|u2L$60aB$Dx{ zi_UL3+c`T}|-K_Y;AuRw#*rL=DZ((vb2kBe$)Peo&6iBAMTe7~TEm_J8 zs%iYU9@&m9J<$y3Cb7~`I2u>=e~kjs-wDZF+FtdIcN_a+odT06kCqwDr&)$CM)iNZ zbz1uAKWW&!(np|03&w6Pyv1UQQzKcB7;Nv&OzchMA)PTluL^l`8oZ0hf{#AKVRKoF zF%#Ak{JW$lX_Be(SGQaC<0nAxZ%WuK&9yRk8UrgZ$#04#tMN#*a3x~DBN_VDd5hw~ zBEmmD!5LAl``?E3*SE?8zS_QQ3Xi9Aryl)^ZMCrOt8L|5E?S7$1|rc4%_R4fl6~>% zrHZnHvoCh5Y4acznNAg5|2QV^RLfCBV#J#oET={XZf70CxPARWE5P;3Cv{jY3#p3z zcsS~7>?9fcwqZo6_*;tNwair;p$3~a?16(f937b#PxEt3Rpq$S(tg>JMQWN)%b4h} z0pYD38MkAa`>A4O`Hg8)z;u0!sI8s_Gw}V&hfwqwM#E>Ei&peTAN~&lzeo)kBo5Lh zjM>t$H?P|Y52?_`TQBvk24nXR&@0Gxk-M3Ty5a{ag>KF zs0LNj)wtQFQ;FO1O%vmM6O+%N05j7f4kJeGg;v|fR1sbOPDtwQq=E{))UcogSZ5o{ zSvc2{gfs|UH^Dr^A~jT>k~kxoO~Gh!B#O*DnK+!Qg0Om$AH;q~`sW1>K8gcvsf@MB z(|o_`ffh=r%-q;D-wt?mSnTLE$(b($EH<+;8=Qq6&y#S1CMOIwUR#hX>L-h&J9s8% zAeH}W(;zjhd+t%B_S~p|#mBizjR*OnyF+rcMUE>1O%}4TLGzIec<{wk1-*mA$Y!3@ zyUpW)F$V2t)NuzLiP+EdDWeyQ6V63*>{e%}1C=<&gH zF~{;1`E-~qLO9r^z`11v^AyB~`GE-QwQk%+`ia#`X`a`%1d!gzHd^qwpps9^GCan* ztU*MNimp)kYLAlKuGP?jYE%GhQ2IQ5>7rOot+w`atvLaz~pZ}=h}C!VS06|$W~i^qsG z{F^?~X?YirapwM1)6jbky>nk?=LCPCJ8m2d+#m9yf9?R#C28;f-M49S#Js)Ud`Vv; zH2HQbmfU-4=N$>QOoE+mtLR6w-K3Cxjv(Kp-1 zsKUNf2a2<*IhOzG_uFnW$P{_2JbZ>Z;Y1?YDo{0>j$YRHk58`!b*s%y?TSixPGh~% z=@B>bqVS1d;~UZg)L+i3qRi(?x;ZG~rz_(ghsGq?Nw0jq%O~(<5x$Cjja;#6DZ=&o zS8|b1HdJC*u1Bq*y$;-(c^3~pP#ItDSMyhMX#`iXfUDruW>pPC zt-a>o)S@)3h96g|*}?jySo|?Br;0Yo8Cdt8_TR=E{`jyiclzyq4R}0l z#^@^_X_J>&;MjJ#DzrEju!=K?b6>KsY~^$vc4lu`9j^kuvy`mq7-6DohrMl5l<&Wv z4I-+|AW}DT!z1Un7*hsAp7~1-^W9==_Na7Y5A2qV_x&$NBE>y7{9FH?>VJnLbY6M$ zt^F;=H4%=6>V%~%6h4rU$<_aO+&ER3hx6@!^H1E|G*9ZFo_hKbfv@J{*I?)?-I&6~ z@yH>Nd8OfB#=!R1J28LH$xBw^!553&l;h)DIvaMOzh8|8)rn0L@eOJNBUrK48Bowo zy|v^FN^w;&N$m`6)#*-rS)^O7u{FSTz4q^z=+H-txxcL%;0#xF+o0aLP|Wr{H~ouY z&cC|g{qK-T&-K3$j{E;ddjCHNi`FNji!t{2u{158p<81(FGj#dw12F7jA&IYTD_-` z*V;_k_g0ZAlmL*@dHdu8SAtW!*U$`IC|6;6S_Flt2#d@9AaIcE0`wpE&BA1^n%{NH z%9SE~Vx+tdT0^9+Qo_OYC}=>xxlSF*#58AHN&7mxFl;^0mv+`iXx2i$@z#?2^61nc zL+19wFCrGKU=umplvtrYR(gLgBNBxbn@r182tVrOZUZQ%^_1>XNto*u@_$I!_)~SX z2an8DMf>${GI6i*p_tQ2t(BU0uTdt2;ZpX0LSjQnI3MP}vN7yg3w-)@QdBY5$8o49 z%}X$<8vF^_o$>!+?JUFU*t#uELLdZpcXxN#xVyUqcXv;MCU|gncXvo|ch}(V7A)z4 zobS7*&%G_TpXL`o*wm_BRjbwVqP7|xi7Z_7+4__8&i2~v{G1`4@gA%Qi!R7 z|6%k(nWxY%#fJPS?|U6Fzx3|@O2T!~_BXbbY|_EXNHKQXSiRx&vTH4dKTQFF&BE2j z<|j#P#2dv_rp_<*9Tr0KFw8RQuAc$#6*;tBr9vc|yq-jkCQGl?AY@T+y!p<>Y9Cw$|klb(%~pe8R?OhisMQia5>x6~UFf*cfebQck+&D2q{0CCB_nZ_PwfG1tLjK$w`^2cN(L!#l#^ zB6O=d)ZoEXY23{h;sL+Mp)D=izsGBXYgvW*1eX9_(6ZH>Wx5mr0>ddc;m906Yc3X~ z>c-+`RC4c8d%Zmc^)h?`7Nuy1yn16ZySF%MJq1? zso}ymDt9=7m2-hzi}NuvCpawqbPL<}%mx~&P0A#8SKskv+kCu_8~*CVWd2ey)VTv_ zERo9CplLckw_X<0EjfR@l??`>El8LXHi1=X7io`#E6)n#{t-^YGrdXe92fDfjNR@8 z4H7a~LJN&5hoqs(MQN*znlj^>I&tik>s2j+ml1#P1WXo&+nPbq@476F${CrjJN5Rd zs(m>e)@m0!dEQfgwhH`oq6cn_B^tO^)?;3w`E#LxUvjB#!l5^SyZwu@*TRTmmw~aP{kH7>Yl0P>Fvih{ib*F! zL{P&YTuLp^b{I_!3n2-I$~Zo$lZGDlnA0Yn|8&o4SP1i&w!8d<&JW*vt%7rQ!P}0W z!|*{P*Ls+(9vHKlsR0Ig_7v;FLr6)?gjNgxcH-f7l5@YIU_A^|yp}ooy#$CQ$S`Kx zX|~0h{-B(@GzuKxI7Uw^Jf(Pe*NgN`ml=;sgwc$t#z}!5?h1C0)l5_OJb&&*t+cVL z>+2^WKRFXa!%rve54KNbNtLbdP4rT=m4};a$&x+tn_LNiTdJ#OjBhFT$$Rr3?(D8J z`-|5Z&~7l+xLxva{o}Pw9LY14$P)7Kc0Uyvoe};VXMDQ0*1<#wPF6!lIVj`YlN>&4 zX;GAA?EUedb`03Dlr)a|#dd9H;g|9yOJaPS2@4TQ!apBAmeCG?_-iH<$oW4i?0-Yi z{9OxYV=NEaAIRymcrvy5Sec*!!XUgK>Qr15>?{gW~Sntz6 z&(-1%9?mU$mDVIZ2RfM1GiI%eHTFl=>ZQ8s87ye{0B_;`;+j z*AQU2=V#alNWX{M(8~0Ou-Hpo_1#vPIYl3k$=Lpy*}qAe^vJWUg+RO~-s7p0%% zM4OqKOXlYK;Y{7-r}{+imIoodD=**Laj$BI56bglif0n+~&HC17yFOe(`| z0=YxLtS`ydJ98{QDS+S=o&Rb5L->z>ONUT#?^v9velYok2FQ>F*c{_Ely7!5C-@QQ zRglX`oTm8rs9=pCmy=~sP34A%23Sq?$B4zLH{3Ela`1;|xyZ^1Q>I2HDolZS>&smt zkKh)`9}g4bkbCM@4u6>rO}<=jWfT_PyFrQ;rQA}#n8!MP>TG6v9#bvB45s>=vvROP z(`d&^r=TiBhxD$d)sZHOqDC+vKkkgFjV@5mw*gZ&77DY=2h)(awaU(tu%PewG_8ub zZ_y!nw~XaOCgVa zn`Uw<20ZdgKi_#-gokyczz0PPvce;`Wu5k{_N9N1`j{6^syMjn)ZJ~;s9yR!s z*-w}76#tFIrpxqJ%c4o)H>iGHiL{or#ro&n(tc%ouTG!ES;de#!$E-cp^3ub9OqVp znHBmb=JP3Lx;)n#2C9JgIjB_vuNDB>RwdBZTq=)RsvyPMy8hn6H8&)N3CoI6X7KCQq__E&9z?FpQ=0Y=AfzF<;FKYri^&WW~{j=oQ5ouIJI}&5y@NXZs$j zxfnMv+Bmp~tDHq*^Yh{Ca_kh;IUI(;-UTQ(%({!rJj{eR7&yIl8BAqA?!pIbpW=PQ z-pvsmt3mnPBOJwT`iB5W>*<%LO#z0Qsob-(*R(+!SATz`7o!p93^uKJWYqR+oh>kQCureojRWhmI%2#*Ql$VS`un{#Vc zm6gpIJAV>>vu-N`LU2M(?MXWb*+ozN85TJe5c z%KI)f?%#VmC1ZQ_xwspOUTb1E9_7WR4?zZSzD!0cGA1}$tY0!YtfQJWvRsd-6T^L2 z(QXnsVW~`Hid{%vF{Hu@*6e55w%0NT?Mt~1kts??s=$+j9T_6tMdTOv2HZGRq=T$-BeFnt^WAs#95Q2!b;4|)nIZs>Z7uJJmF;BeI#!lA>qQPqk?n^mq#;O zdG6+tXCi#Whp|~3qLTxz;5~_47wrcWBbc|sgyr%YO8AJ(l1z+dA!g0pWa~(BIExu+ z17GE`KSGtc4Sj%(2@}kBu!>B^m29q9D5@EUBzeB~!LIX?D+Ss>PBrCd1Hr5FLX;Qs z)wkVs?IL#b<27u$>nxCB?rwZHkRlD)>{fC27L2|2mz~EaRdA5-Ov)`AGrvGa`xaM> zK?iEvc>~GpD4$G&5qsl|hymZ5p0~EwHgAPB_YoX_7>2kX+}E7p9=x`*?(~n29y_c9 zmC`qrWTg{Rj`f#ay)m#PVVRvodEVeSW!*oH<@Q!fUrL6|q{7}t&pY2_^c#u3#qX2& zubYNa^!&49S*&c7+g#D6PB->}$=%6JmzwMptS`$9b+J7qG76bt&=kflkM6mg+_Y)b zZGoun3lv^-PqF-+USB<`t(kJ%HnJ9YUj1VgtpYu_U?LMvwYLf@Fft9pkLFU~?zxae zJ`AL)Kpt#bp48=+t~kHAv>oEfvF2nrQjNjk+B>vOF94rJbXG1LmL>`#Y+@lqiH+nw z@^Qs@7@IRWz86gyC_;$9fGZyv-rNxul^TXwWV zu<{?YNl3F^K0&)Bf>$L*X_;x541HhafM=q8@O-%zAMO>49P(!MD8Wmp&Rnsj`Q!5% z%E-5kVhvGF8uF?!DE*DM;6JzKd1(h|T->wOiGqY)J-a1$e#^C@gH%FkFXpl!7Jv_&w>Gf%8NvH4_uZIqbKo7~#- zd$k=uJ6#Y{=RKdIQ{_B-k>w$=OZtSX#JD+OP#mOb}s?;k%-!MSs3cO3*WTOZx1GBlmyH9Ulp zCI624z1_Tfix%WVqD9~NO)LI1>)AOXFr>&ahDIYL)ilF^r3Wln#MbfNbzC?D4Sc4# z(9LkJ1C5rH2m&9a!ay)%gGAfba^cyUqP{CC!uMU49A)=E1TuYQ`h;15V#x(~t?_D3 z=E&)Gt#%0>WYITIGD)&HtQjomUs;D^>%V**BVtwo5Pa;}rj@{&8j)rGTV~h&vR*j; z0eU?eowp3i!J8=HRi@288UIkKgmi2rHLpI+qQFV3$gn+PB*BIK=WsJv+KvPd)-6R=(|Wk+0z!*j@>Fl+Bag zkx!`NS`Jd6B&eFxJo7o-FNkRN$gl1fLxTHQ*G4aTAbOmn9TFrOBYhrHOL53gw=1lg$cvAQx&k$>xFU)t@e^4?Cw!cxJ~m;x)R+Op9Q z8dRXLfMRox$hQvEr3??=&c4r7ta8)t==a#u`raPhc$ROx_2iD1-1aLBO-=1v+Ip0w z?qbOKBIahn;UMllcE20)ccUJu28Tv z)~Q^3lJIlsObu)TrxDXdit|N(P`Ii*IdU|)g-FvJDjP(nJMNGAO6T-dIt4c$m3e|8 zInPbvprbcFt(gbM@ejGqA$-O;VJ39~1Qfj59_2j1O6MBy`E)a}ioP{M+wf%}GzH~Q zNON9zS3zPdr{dGO#w+}y7 zK4g(kq&G-#8jB#!9%>5p>gDa#&i5jLhONv*s?uCyMRI91o6vu|L%#QJH%UykLBu&# z6z?xA<$^HY%+-YR2kM&jxQ(f0?U`x3eK-^U$@K*oIle?@gPeJe&NOdM1}&@E>X$W! zIjk%;I_5=?&GBT-3WRD0FqK$j9lB_wBVr+AGAdj_Laj40-+4QfjU1~ZKTJ@QbUkr5 z3t5;$Ey9@FcxMhW?KT%g*eWi*PP4<}!=!d%&$o#!sC=~*FYElIk^74k?&zJ$dJItF zO!vMIUkMPCg`6IfcsX(*NY+v(u+5-H=-B!u&E#;?zO4R%{IRH#Es*-DV=F%*K-7I8l1X0`gaGsQ>QQCL`c zS_;B1n1g2)pEVPH!~)lT64*5{XkqsY_l+zmW0T_xpqZ zWHdThtQn((fe@e&bKT;8?`6m<*b0stoE{y=?i3LBvrkOoL;^!Ar*5Z|CLkK)DAekh zH~7-k3>B==#)4_ZcT9>=9`}q z9b?6n+8DRV25a|1^YYenGV*5K7d#qPPh(ZtH@NSrtqz-4bf*p)?!OXZ9Rvz`!Ag_B zk^+mFO=>6YRc`)Ouf`Ki(cQrHt;JF?Pk$3m<2%Gvs738~&?D;0L&)@ZgTM3birb;x z`@8J9!!w@t)E1O#4B?KJV!5F8>JR#<*0aoXDZpB$>(kP`|Kj=oLcccXBW>(qhK6|) zXHc(SF|bJdLkts(V@QK9SxXG^@JxA0Ro4qV=tXTvCcsoDBv{qTp|Z}=#h4~XsxpW> z4!iYj!L~tp5lIx7=qz;Z4jYsrlI>i_Q|GNde?_p;RfJvzo$ga?luaR>s8dYCe|D6< zHBsBSz_avlV|h{f%n4rv>u=yz_}TyT4O;y>-4Fj?!+fK>M*gLR(27sa>TI)@*W0a? zKYP8+Ip7KS!hHGO{6jjg%=(u+KK<%%Am0BDNMO9XcLoZ?0TO0mVPW;L7s(jS`J9UWCQ5&xtjy;n^*?a^>_N{zI2s`f9v9^~P2`yqPtW@%{6m zrh%nD<&po#UFcd&K+?&&POD*ESd)L+!JHS}yoXjmVmQfurP~hprw?LeL(&z1tgEa`-CTklTB_LS2>lCspik^vIyei9M7b@xpn*IClYOJss3S2 zed;~+1L~U8-2R;N<4HvVI~6Ogw^p{ z%DF#f`}DRNbhrbK^7cVKx?g_bRleo~bg!;RA2st25Buesh`lY8d{_z#*KGyk%2=tc zdc9&sTLip&j+#?#P?8#@>o}8Q!16Y)9(GEJ+%VW%MH}f;PG098WSO3lPo^@MQ+Sj?vVs9>}RW{yN1evhuO{$4LQdxJAPCp>$Ws z1=1}ILP8B@pQvSPJ?Yj`3mtbB(Iug=ch>`P5okEYjUJ#{Oj)-=h#ElMz#JsBfY zj$ds@fqwz@hfS65%1>q&k{#MnY3!83CVt$Q{dT5m^c;FOGv0Xbz00()aI3dw>k_im zi-?p^!)RZEIj-TFqF(LD@?z;0u~_YeR^Ii*zKG>go_(Op>zhu~TTCTlb-S7Y)!y^c zh!c@fpb(#?1Y8h?JxN}AYo1PveE&8oCDp|c$>EOzWmHkbUVXoF<(*G5cr2?aydU&p zEDT$%PUrUc)NPrt$%7yn*x;soFXOb$Tw;P(UNk(oTH(t)B(CWJG@m1ImuaOe;v*o! z4w#aSjVhhkYzn(e)T?!8s~F%|?u!|FMek%Rg&QdIQz?$$sbsOp=%H$AaF8mMBlTXU ztM2B$LTCLHsyx`Jbi#5w9Q9H zfd@LNM6u%R$RMl9CJ73CC)n-v2M{47(Nh6o{PHjoNeAuS4HSsK zD$Rtj4K)23gFoBjsS1jOqauFrLxsT1XP)wW+jDs{H&256L2j+zDmWzu55=fVUEs1Bx&_u1@!{0L!X@mCPx(PKq24QYD7KSc6$H3n)L?@T1F# zp|H?Jq9p^|g5hmrYI#;W!fcey?!yi4d0#Oc{h>>0omSGLvMFhe4o@W|M2QiRV}GU4 zmbP03v5%!V%T1P6PTmHfiu$^a>tdfm#(C6E4jig`Hi)8;6fwSoNI7CY;1^qQS>!cxh)Z<#5U;FopFt$L}8EaZEbMKJhoayH0E^7D$kLRRzAbAq7a%!5ymzgWeR&l< zLvNCT`jnRpI*B*YqnW!0G`Nq@&Vlw52QV29tv5@=GIp5nP6Qa1rC?>*( zz7bZxfQM1JgLbuyidV;EHAtQ(^xKNm%%7*JnTMp?jIEt_-#Z6hfK6<0aVuuxiBe6` z(q*c z*%lrYA*Zgf?Sis^0`HbDaPZe+q0M#*X_ofkFrS7Pg09aPea^o;n*k4k(4Ir{UD+qO zPPJ>?71&l+3$Es`e(yxN*_9}7CMAutge|Rdg^tqylJMQ2DF!kN!^PvJS$NW=;k))S zPDw%iw->$@Xv^=@Mk#O>s`lVJEhN6&*9bRHAmq7vmPbKTF=$fQ%z5*1^LXe+k_n^a zE0SK(x_K4SNxehbcfcZIA5*rU{kH%dLt6F*2}hGNS57^1CeZa!TWlQ-);A?TZ}u-Lv9 zr|#crCOUw-RU`w9M{@qDnaEEO=}8qy)hb!TTgD}-y%X=sum@zQ<9E2*sA7#CsfCmW zX&J7q6S!Grpg1oHCX z0Cl1CGo)_IKHdBODM{!u3v zv@B5$L};%;Et>A{zf2FjL~b^t+_0OLgyEQ^BC~)$t3T*Hv0~b&EgH8)y$sUBbd1Y#<(gaLtro->8 zd02}ky7!aGTr!D;2CC2T`7CtpB|Xew zp+X~unEn#d;>4MI!^y&QykyC!x7sT`j1HyYpKwGO8J6d-2||gvKU|mY)pNf1`lkB5 zJ7Cvs;>KFH9M@?qC-9*ST6wd@2U$smz@yWN;2D}t{K?1Pg<2sDAO;uDLA_Bt9;aXqK>$2^dGqzo<`IRZl3wne=|Cxp@C3$L)ZKNe%ewe57{iTZB2WQ7`{L=d@DahXuV5>LX5-PDX-9tMYFeSDL3fot6m)^^q)VE*fa9yyE3;?$OMt?q0S z!_0)uU}#?q)P0mub7Kp9&9ExHmfwL+1D~Zv)9h78C=j2TX z2JMvmCZ>V;ePtS!yQFRLB;lqnw@mGOF&yV0yVk$f5`E8G@@|Cyc-8FZ0p z-s@^P`3$LW=z=dpxcnJM7sB8pes8$$+h>;^1Ol=no}A*BesV+>f?|sNUmE3}Nn#Ez z_E9+Mr$s-0T6%q8=?ws3#tw2c;IYN1QLeTMc%5~6imraK9VA+>j?$j5F+hXkk`(F< z9;(OFA*EmYP5d0PFX?uQRUep8*IZA@TV2XF^Wd2~h6;o#I+OB>`hxwqY#P(aSoW%| zA5v)K6aGBbt`=XLLaSTK%2-Hs^l=X~7m`hK7q7nw-Qvep!I8C}1>D0&?z1j+cZ?Sq zaI}!>CXg>bqiK+l6Jrjmz$- zaQSU~%qSjSZ1>g#R@tW8aB9G`P78P?J9M$_l=@+c`Vv+0I`odKKR+n>U-&Yg44hVJ z*TI`6)KGRTmK|T*$>{5^0d!v#a&mI>hZ_LghnQ2?uTUv5oY$)Yji8v-1+DlJuTMA3 zi?Y3fIav0dhf53`e?pC5wQS{mTUjv&C#}-`L0k1DUT^&xX~1vX1@}Swi3de06V>W+ zNr78v?jG-h;P!fsb~orJ-MLu0gx)}90l>gd`QsO{j(r^T6QPb69r zVVT7w)&TpkcNhb zRJ;kZ1*EYzo*D91Lenss9{1P#4w=SDtji+>pDio$3PY?nZlA9D=YIhuH15)vx~wCf zQ{EIqhRntI8(}&h;xV^c@Lo;w=wE~qgg*IvJCmNzc;iiakuT|i5^ z@;Wy3Hw#~_nTM!D&3!kP97F&T{xBU3K?$tx*l4PFe&cYeh0H(##csgi0dY;Las1mD z$=*7Pgi&X)-pJmDq2{YRhdp+b6ut_*rXdj|d}ZCa=04p>1wGEcqLhQrRKWfSEY`2w zJ?Nd3a-aR3bC|#-E^-C_Hz|9tt?#Yx_))*kB|`}-mS3ZaNl#&`@zxaTi|K6IKf8q9 zbAbb!1S#;(cXh!iG`OI2JkatPXQ4eO?ekZ1I{8pq1;Ycn*cyjb8{d2XeDPfk0-s=o zjEI}znaRZ~PqP*X&2A_;b!(-qy2b>Ma-Qlr0UL+@uO*KEo4};SnU_a?Mh?;w+K1+@rP&<#KYdORWBFI0v!TsEm(DMkq~}ts zAEh;Q%e;RpEK4AxUNipz5i(TM$rAnWmZm!}NX%?$jHKd3;GoZ1}w(kqn zH2I^W*R^jU(Vs^tpsc*u_=WOp6)C4yiy<;xm9j2+gWyH(uyYZnobIg54vk^0WQnnu zasJ7Gup&=^aV@FvfvI_<)$I_#WvWL^s2_8;0RXR``s^Fo$6|xg88on^cvxYU&;K55 z9FzJ&XJj&0k*{r&J?rb@-oo#ekcc#?@vFRskkW@LgK^12g2IZAZ1)F<*N*MBa67L* zT!f9!=;{|S zZRy;yik<3`9;~nnvs9RB7&r}iW_6BER@K^nv;RpPjMUtZxKr3kle3F52LW-SJzJwb zod+gR}kkuzN_jIA}qI|+2@CXc2 z`*MZ*u7U=J2=+BRLn;Uv_8PlI6$_y)|F8jA$3MjRw&z`+&WBB(wW~SosEx>3&=6RX<&A+T3$-AS8Nngih_o zl)cmiQ>U}ae2OQ&52>fWGjHpwwrURuBmxn(wL~e+Gd|wf`xCb!qeGZDig#hZWBnD3 z*yAM#)mFJn>ux>QbZ}Z`*uQZXJ!t((a3hmpn!j$l82Z!wo=(ONfPjXGZW9(Vplv(* z6|HVQ#=T#YEjc8uOeWeY-e!$tO!(CN2<=U+tG+uF$xaTupU**&_X;NZ!qq`urj6yE zMqQY^3yK%;9uC{zTfll19YMq|7tS0z*=+>PPJoaj7PY zm^S4jEYQRtekMv$Ua~i|7=th(Fa+ByLN2}-@(Wh!Mi9rD`Aw2tAaOProH&C2O~Tn8fC z$g`WR`x;WB@al59$)*OS*Dx^$qEHq;>CpN+STlchY9lfm6%0n8c!R*)xe@SW}umLPE zh1=sw@zp0AgfhKEw4!?VShr6o2RHRU?rSF0>voUW))2A%4pV=YwGlz!FiNf)vu|k8 z*9aX>0&tKNOXU!drdxka=hdL~;CG_j7{|+y5#PK1dy-+QRmWu#^6*}$4)@^-3a&#@ z%$i=in~~QBg-jRa$R?!u6}Nvd3IKoE$H%8*JVQAtF){Oaso~HrjG6kA9%O@Jx0KZ* zHvVr8i!W!TZ8h5SUO-$WU~q#?i|(0Q`r5#fsaI!)}K?*Kek_=)#F*)z{7 zf9>SwI?S|F26h0j1)G5FtblBN0+qDVP6=>Ad`gagnjC;F_}ET^(BVvv*sg7}v%ah? z%-|aI&>roDVukq3B46Nb#UkTI$LQYK`u}*Xm%Dd^$Ur zd2460VCNf~cF1EW{(cw&9fIH*U-x{Ta zF*U%2iUK>pSihX7fm8A5yu6H`@eKcJRs4Oo!M|HPo7Vnq-5-h`)F<|SY4HHZUko?P z@Iim_hKiN6dfilqAEoIv1%I*4`-80WWpqFz{_THM zxrh&b1@w12u>3Uq#=Zl#&>p+U$(V*il#zbGEjiI@qU2V46v0QuH}kr~)?IugUDe3h z2juIWdUK%sGL}p>i;Y{Is@H8P_dFr-as-)lw}lK%I|8v1?x%&7kPfgbmk%+Emv0IxAn{NGx?L#p@3zaQ|RGpAzpM&J=^kPs*$_( z8KQu^+x^3`f!ZfqQ9NX*V+{fGOYQOUo~vmAt2+O5C+il7RLw)3XiWl?l9C-x@`on; zwPj3-9;M@?U^W_dY$)|+*ris@CZ=l9OlHA^Jcl;>PV>w0>BhEN*>HAs2u)2P?eaxg z-f;H{0CUJ}^%!s{C}$p$Oy|o(I%a+xPGq)lZW&HJ4RayVYoDk}m$bQ2;}RphW)rX;Ty)QiVv5d%Dh-4rx3wKL~?_*C+P4hpMUsTt-e3xt7< zZ~OGvVItotHJ#s?Otd7_*v_h%E>}=@72`fPKQ6AQ;4BlAJ{J6Visu$d>K2t_%h#Q) zU@-AcTjLSI39q=tisBY29BHdURKBgQyDfb`f@V%vz8}vb1jBEI=C92$U#~WJI}x%M zV4VYmF1idW2`8A~clLDX+@qM&>a5~RgN~kA2GT67CO8fZYw}a2q1UBU@dQ6UECs0% z_khLcAD9YFr@YGI9BnfgllgK#@Wol2AI=l}Ko47IiO5X!$&&{1_H=9<`FdO+=)3pn zPg||)R|t#yC?wuxS6g;6$xL{t&`4v&i?>r2(77OayfVQh){yE|`XPI%)e6o96N3w% zZwDwczMi)5RL$_z2}vx+lyZhLnI%%$=gT{<;+aqq}km5xXyoX5*d}WV4fTHmFT4XvfMO7Dp z(_Cc1X$4`f&H5O`lNUx)Z@D>3+4MW#47HTRGFt2f5FB6R0&>Ge%bcu;JUa>y(>lDV zA(<;`?dJ`e#7d!1qb@r{p8EiCg4HUQpMmCiik&Vv{)NvEf#xB4m)kg}BH99Bn__7A zlYYL3DT`zFe+>wx!KQT^7XKvd;klw%cqmj2qi>fd-E`^!Iozy<``Mv1iZg1!2Ew7hj7EdXlIVvt)U}`=tj`Lr(M2 z#Rbnn-O*3nH3-MBdR~wZy>GW8wNmNP)9NyM)E;2Tqz(sc!tU?=?u;Db3lA^JMHdbW zQyguSiSBdks6{W%eDZ3qaH|!z8?U~%WH}yX*?MHzWHuIQnL0njk>;T%9Zi`myX2`y zdNy-L>pGiAVXvqVv7DrE@>)jZ56WrGD4O2&PZh9gwoKpBh`YQrN2p;4CEMn26?COR2`2;nJuiVaMYLPc`>?=AnhEfB$e3{#lxc3N9)x5 z6FY9y)5H3y^OW7dxU%w;WTQZCfE>K`LJnrb=4{p-S#-dpGF6-!Qb*k0S?wpbh)x}8E#BaaWH+|Jb2##N=RTo?zJB?{W_Jrt?XC={j}deips zD#5_KSGE=@y(g!M%%aP$1rC-<^l;xM+YSyiHkN3x~y3#VT-VSE%{> znTSxm^);#N{X+m6XAT1d2*q+XBYt$MC5wqz!XxQCvD@fu8HcM+|Lt=YpH;hMI>-~N z*eYRUBEj?SovhsM_k_r??y+3Wqaju^uQ8#f%5R(rX|@VZX0ji044<5_ISSdjvT>xxbq`tu=R{C_)GD8x^Q)zdiuTQ!`nsulDOdhB88VSdUn9E9+Ver$Y;*^8-$yAfwI%NWo=FNwS8eq-b{ zgoEJCaC-af<|lFC&agJ_%NAyE#QDlpsc1Pjz@oG)i1DDh+Z($UGGN=C6~Vm5vdGfI_adn#^mgxoQBpe zM<&P~W(+Eijy_BlDr4{?r2YOpm4=i?RSxz!P&;JYG%+|6udXoYqR5GBtcQ;_s(Xj0 z-_@{9g-!8c8{|kn61PTiGzzE@LN;}kR;mCy34MwKn}FORG~ixi^wqb%T@Hb3dCewTbo%{twYZz(>d+ncR62c9<%Tq za(5{pZQR-FKjtAy<%H##3eLZ-iNqd;pFvKKQ#euQA<&$CokwV9-RM|--2sdK^YBd6 zZnhYn$a(~V2Epn?#CXVW)DyyW66}i+9t;!nan3r+zG)#}YXJcoU^jAyc{6R5Z;#xUPPpR&e8B&M# z^Cm0+Qjl++(8{juN#=h|%rMh1M1CM0a}+EjGNszyCJwkMk%710L;r%YV$;@Qu>z)! zPGf53OShwu@#>O>JXMSgYHqQ3;{_Akrl95wRkx57ZstAzZ9}fr0W$u;`%APsyJLPg z%#*oZ&g7+<8nP+HV!94LVX@NuW^7P;>seP&4v!7i#sdt9hBktj-kYE;RMp_>8;U=M zeESjXX|Y6njh2_?99g(pz_7XNrj@uTqB8l z>z-jEp;&UG&@f|Koh@(pVsg)QK#v~f1Z#c=1P=5*MkW);vDX)s6Rm7wBN(BNU^S}S zTK*yuTzKS2NU+i;qFFatg#b)~a>ZkKx(guns84Ngt-X6 zKo89}n2#X*?_cP#1xDr)pl7!CWx{OD#-|2skR^R>oUMQ7U4b{T^m9lfY|I z2qUN<;UgXQtU5BC6X=S4RDUiIr%{uyszb_XE)h+b<}ZZjy+>Q{DnvmCEXaYk2v+i zy1KBhPNO07A@Y54qy9!SvhQhhpbBoIZeW*c_1uJ3?Z|TOze&OBO-@_ImamgO>v+Y8l!wP8E1G&(7`JSB_1nv{msSUOX-${tvJ2}| zUld>2-IC+=($GMIrnVYV84>p*Wi(K2PtX6egHUiwi2a0gUMfPPA6uD<7Z;7jF3Mw!OY-vw^Q0&l@v|Cx8I|D8&9xJaB*9|J=gRt~~tjz=6e_{{aWS=N$@L+c}MT z!2>^|2&(h$p%{OAF`!98w(K&}m^HzhWFp89;J+W;FJT55T6?CZC zuzdJcRx%cA9HXhGDe@5b)0dODVbCO=WaYJ)55igvJu?eHH|AkD^|(-mN!sq#?8TqB zun=i+)-zgP>o`AVPMuA@$_q0B?6IHAD3DJ%m`spurKy?)J#`iA@qyS#c++#gLZHNe z`{W4RQQ3%l@{LL6dEzTNlW}uGleiSuH~-*8TJ);28GHo$Fe}`LKX=fEc`b_h#j!1q zQ7d`2a$^Cc7y6wgaKz$8%E-k18yxtU*!Q=FV~ANz*D8nJc(Zn(9(xf-h%ot|js?_< z7_No$PdIR9L)cp4&Bb86KwGWiPQho8+OG)RvzPyV3~awNj;XiPkZzU7x&4in|BomF z@&70~fQ6N?{!9}P&&b_!WAbnQw$vc}(p><{l>F!r2W%G%Xa)QJZd501B|F=h#|9sO z2pwd*wp9E!KqH_VJWEhh6c^_|4*K{TF^Dj?4OrEWG4hv!8VT-UP5QCM>Fo@9pGI09;TI_+2gOdv@mv zb8z#!OXio{GQ_Dx&do_E{O?Zfr$`AkwnTANF8*rt9(Lb*7BwTgvncPX;WYf@zyiOTxI5 z#M0=U=JzjWZSdA)pYS%`RM1qH1B#E%a#4_o5PKvyoKc*doHQjWD`M|n#nQ&LWf-lS zlN|1L7f&2-k(sQ`(4VXH0e8B)@nGK&CJWQ+Vcvw5K_N#`s*>7i* z)U#~s$ruXHOYv*8ft~i}eCPg^k5kf}KhEGV8EWk}UnLu~I8$N5H#uxd*nrFd9YFi4 zhSO%?YCMzi^^=0a-+{qU!JiiKsf;unq4r|k*}Y)Qngha=!YX~t@?1o%sy#_w6hHvF zFoUDcog497Uoey?vkNka%?oG4r36NP=Cz9e1nI5yDx^gq%0eeO7PZ9F1?|;P2{+OU zJ;O)=OS2}B?Eb(@r}!M9-N$7M$eVgg3tp6pVX%M8%W^O)4~Ad*OwX5- zVUW>O_s^XU2A65LDOHwW*fF!Lopr4g@79g0?1VS%7uh8|!6E?!X@O;IgbETq#ng9v z;_IV+?ouEjTYpMT)&n!EMGF+oC}HWXQ2ui_#xBl93PLxq~pRp5zR z={ppvOb@wE7Y_C|@u8(E#xD2}o8VFes(&Gt3rPTbjM~{2DHq5>ug3^^}8_KP0 zC<}-clM%DKuC?qID8>=n0L}pdmY|*%ZolsS7D$8}Wi2DG&5RzrVn=4Yg}^=^h*PpX zD%$<}j_O;W5$=|=h?G}WhoyX1vc(=usuD&SX>|TONilu zEDCk|9BR!ns_pRybFlc~yqAHI9Y^;CY9QB&liA*BR^csJwv5c{|Elp6YAq)i(y-xm z!|FCEoXE#Gpu^*^;UaEX;_Bqbr-S1W^4Os&E0IcmR!d8Vb*}ge zr2di{TC~VPd>PXC!GC^dABSIjf@n~%bP|PJ2ZIcoIP92 ztyDXLRJ)D`mPhHEE`2Rgyw)j_)xf_dYeYm;LYyXeZTdi_UADx$SwF8IDC#PyGs|-oMXcAl=@Qz=COGlkIhRh zR3X$e>vTWCslGmIQSsN>%h}X&%RV9-sAWF$*RugvxyAe4M!t;KIO?7D>sFJ zP_71jTS~%x*9~^;shDBSuCea(9`u(`?)>!z;V9cu+2WvwR`zC1%;^58x}f)(*lI~( z&V{^|zeCqcCpGt%_94-LqNj;zi03s&??S^~b#07!$k5zg2@7kjk{{C6K}~YlGl-b_ zlGw)$QyBrYagd15z>B`(qvn|O^O{=q~Du{h1Fb*1gD~+qz?fpYL9~Xhxct zn5M|mxuJCjDno;%as0G8Woa!}MYw#6I2tp}{SoVPWMFGw8Tmpn(se(QV8RM#F)0CZUyP?2I&TADLoVT@4fGR@BN(fd0re}FIltJobxxXF~%3= zz}r}5SN1o=V{T(W1+t0GQGWK1y3m>kG95iN%-Yi-Q89MP%Oe8-uF}AoO;+t&nA!Ok zW#aDrQ%Nx;qpJ-%T+)S)-;mIQ#~DsKokZH^;y`Hn=VS4V#}EURy@i2kSwoirK%V4p zMG*<+rr#}~Kd$lgAm2QESS46Ap2SFp#&*v+ae#ps>D+CrJsIHo>I$Heo+AbS!QM+Q zy3KT50mbHWo~B?UjPTJq)LNtQoWDYkd#rm_1j zLGdex3Tz6t-(UG3UT;&wl4*V-TxO~JPB~Z^@;V%~c?5tfa(@|^fCdJH#+7S6l9uYY+)B>P)TYglD;l^3`*4&x@YpqP zmewbu?orFRT^|bqK3)tII7e5?nz*-4_tw&JZL_J76ED5!>FG-PmnCrT4uXqdQk523 z>?8PAkVWQ!IKkH2;&Q^c?3c1)SLlDrim4}`;{=lo^%b(|+XI15(7o9U3`y2M9P#MM zeR3T77kNfqk7me*32$y-wMnPOpxd3`#y%MfXLbg~Kla<<)=bRx*9D!&f(^gZPHixf z7w<8NOy*9RCALaM#(|1PdoTrD3<%fnYf{~!WjYdA;#9>1+UbN2EKRjd`;NHA{xbVM znRmUYx(HdtdPrTY-<^GZt%k9r3}-mpKT?|Cb)mhNL8$65oY8@*lgf?_mSz{JV-IeAbHBnL9cM}Li=H=X@33u`vB3U>MX5!g|(d8VmOsLjt>{O(4vSp{}voGyeV%BTuE!Mb8!uNt{3KhXU+s5 zHT&HRZTpo@8+4mf&0@oJX=w4toE-^=%Jg0>sR1}QDL*g{5!O%fD)VD&ddI6!TbNzW zL~{(SHE7D?zjuepRPs&BqL^Xl%fkFbO6y}Kk^+$ zyY`l&jkXvD(|ZysW-{ajRVRE!#%?Xup=%1T=t~v=8{NVvMlkrur;$qimaO8ZL2??> zvD~P)hJHoR?UF%$V43VBP>Vzb1BxKf=aX@^D7YmYgqiXv=g~>{$S{Q0LK9Zi8mCH% zC8A}POw7%hUJwV;##*5qy=qHt%>Oh7AUCq1@ zc4e>j7=-y}gy31_KAX=rawbrW2q8zm6Fw&_IZ&2i>}D)u!(&}4)BEsWMZmCp&q8-b zmfe380Ym6p3f2&T4&L=ey}!^qu#EN@O@WOTY2({jijkcxOG|!TH%BrJgWH14dXK^M zvpcYmWf+a;^B0$;UW2eg>}mXko2dF%oQ7GuER@{>LQC@8QVtN6Df_5{@3(Kog!UN-bn_AM&7KEQn{@oCz`#6By4Q=}*cW*EtZ>M9>kf3Ov zYU9j&+S zbHP?hsSSrs2J=J~z{J~AXZ-9+(#P814mkW(ixuGrTbH;w;cs>VZuzh_m-8<-M01Km z40V_D1F0(XxkF=S1R`4&wEQR4e$Rhn=o~hu$Vb!PPxbN}Kc8`nj{^NvZ_+@S0WwP7?J$GPGE)O@o7KlD8M0>Q^(21*y#|DwZ z1(DHrD9Mh*5R?lzmesv2xpzpGCUL9dUw}}Wys$ZK7-6qUpEe0_RLq3PqMs>vB>Z^G zx*>WSYS`~sLv*#B4JH3pljT6DjcEs?k=B}rk>>5oi|F#LF7_AWr$NqW`@-lQ`hcgw zX{gw(@q(nn@$goj>*t1p5v@Nzf02W-{f|E02xUlLJ(}%cSEyb~<&4#SgES(r!76LxF*|!96OZ3c6gPK5Fcq%DK9c?uEw~9K@MnUK$aGh~wAX-qIFdKvkLbV+oA zXj7PtP0YfvAc6w-q7Y?gH=@!V+I71nFi*|ZP@z$&VRv;f9ek|Em-j~Ka5A)})|e@l z!M8c!uK%*@&jj5}-hE~Gscj|~`1|)CP|Se!GyyXwO@+0P+YjW$EMd_wp;^9zC=A9_ z4M!CXd3QTN+8;kIc>>|Fn(0E9N88E?8H$*Ub`1D@uF96x0;9P)!ar+^O07z_*I*O) zYv5I|MEt(wGCv1!N8e2n-De}t+?>%+&{g=m^c->+7-uCrKsnIZtlRqLtb0ggtp{em zudcuUSILwjrdOydAgKdKWAsXoqn&l}o|HgdRA z74L9;v2uU-^wJeC%oDKbgailt#{#%Rg?`oWJpmdFa1z?-ZAF=KJ1 zsRS_Y;Xh`;+9`x@7Wa?xPq~yjGo8uSVv*EIG4@BFKw#(~$)<|OP$gn*(A~E4D~hWa z1xp=ceU2NkHm_FCjM15RBHd{yjRaO|C&l|#z^Y{)Hywn9-jU#$R=iW%72V zib5z$-4s#fSIY{r(VzSN&DLCuU^AfEk6Z$2L5wzmo`SNB6cuT{N^ttjHQ=3V4Pu}& z2|^{FkWdH!y^A5=q~5$n43Adzh>Eh}yG5KE3>d7aLNaseO6i;{m7aj$+=N|1I*y2s zTeWcH)i?MOpdQTPA?BLoq-KlgAat6wWA&i;y5;YOg5V|J62)~y1}jIdxt~@f@V*Xp zD9g0|LnGpYwNnNOAT-y_big0nJxSPx+mlf#2O1=2Tr-R3)(n$JmPRe$t{tAtD37-V z?DjqkQB1kR=e~~Q7u`%2ItTk}L21W>&aXkd{S3F%q_9GF7qS&Qg;<*sO3bVCId&_q z2jR)VbhWn(ni3jAJHR4PIEXUh#);T<&BK(kSY7XCdDpGzUfQN|ZoX6rb~F2DPnahb zj>#6hzIS)$v_@~c*|xl9bOOw+5azp;9@cTU*Q#bS*4k2g87@19Dd;XLjO3^USXp7| zs3Xk{y@8{Vd&4dSq`RWMFp02klqA^Ki#E<+Pu)@w*r_1MTmFo<34G>CEo!gvY1=bPhbS&eJhH-#lot}I?2nKA&e~AjZ*XUCN&r!R5CP^WgpmngB zw{MaGr{dnUL9a$XZZ}z~A;GLDMtZE<4m}R9pa%YNFtceuZj%|=*G44d z?P4oioVnJ`CX|vLE_U7<4N(e2lk?<`jt-r@v0^DHsque6_eI=XY9$M$u9agY?-J0< zetBzX{O?iwz@VTjR#sG(rxska-;9Crfu_tKXzTI}X(OJZ|9pf`6-34YVX4|d1Y1zF z#sX4BA<#i4vrZjP3*;=S4=``TeKyS)Epy~7hmLl-{G0M?$^IM;EAbp7(Y#N2=f5rV z?;t&OwNFoxfLC~OmjCx{0{_iwudMNHN#*?-7d+okx0NdGFGKq$Wx`wJ^=8SoUbpF2 zSM;%oVDzhEtnAep#cHHJjhdkw%w)o$N721zlY7>UBu|+%3tm(Cot<>a+riN`r$G)0 zOdg5AC((cdqrD^1cpLErbyo)q+%Ay7Q#j-5bPK89%dWowgt^9^HDtk?KCG~n z@!BiqdI{`#nDmD;wtN^U3%CyyPU-yi_uNVc=`R9w~ojmdEniLj%H!;t zm0IB_)&B&8hx-P+_HV*G9pS76G84`4$?=v^fSu8Cfl+NT>E>ZpESOt)l0CC~1G7yx zqK28fBC_&M~&C-1twSjc1E`zo84G zt#ae<&NGJQe)SzdXYdZM6i-3lopXW~G+S~_NfcRlb!;10AF{^frNGsm$kNUBG$Y}Q zRUB<<*);u9Us|g%CO}GeN8#q*RXet*I8Ag2W`i}+HJbR@^1N)j9M4u*XC~y3qBjkN5Iu9W2fX~ zKJELfueoV9`SEz_&FooBkvPj`U0+vqSiYOSfp?k2hxt6$#bpzN#yK~Yfs(K0f(&@d zA)U)#mQxGeg>8tnX{%AM2Lfl{Ir1vk{pN10#nfIyggS*Y_I9y=`)@33;l9=(PM_D9 zFo6cs;7YMqS+~n8k*RHpynVpfy>7GBm2v?Wx8MvCQPt$sswIL09%k}`?$7C5wlOXF zRIw+8BzQ$YeBb!1&9mDzDm+Hdhs2;yAtm55ReW`5Z1$B@IB8Lo>XGn722smzZ3!_w zXj{McxhQ?uaP2D_dZ8B#4>cWMcQe+kTz>cNwTEtG#8?C7cqE$Ee#`Fm{Dql*PGopyT`6h@B|G57Stjgcxyj-*P5cA8?yL)kjjd%ylc8d5hY$PrvYT-$IMl_ zc7)Aj-ORQs+;cc^iCSN%Qe&d9MM56oBv0I-kY#GBwo}|H^z2Dy%CPN?S8;~UT?1_e zqB1kzYp33TuRhXhP;|ft!F|dXtFcKIjmBwqad2-ICthHc+Bo6lT>Am@a77bycA8Vd z%nl|TN;_1ybJIYcu&9=A6-_Wf0Ew-^KLZW3&Hyd_lH=>B1Lqrw{k>B40S>P&#mnB+ zUCc}EmhTu6W#c3P!6xt0_g9qa-wzL0!9Wy@FVd+HExb|)F?hH>o(O+GEt#lqJJPyg zlPq>Bc#ajPqV^Mio?~fC+N&HF1lC`d{s3}ZbXEYx~f zc|}PVdFqg#j$yeJ`{v-%f{c}6Hn%iM8g-Tdw`=OM!|+n|sn3l42~@p_AF|DDvjAq#N*ldymkf0Ap z+A;h2AWyq<+u|LlVaK3=D#{ zInI($)$)B|oV_1E{kJNxQN!0v{;p8TZo^HGj3>-l^l>=H}r@L6@!#>k<) zBe2|m@Y???`WO9<_s~lG(i)I6NQNaDn|VWb7j49LIkSV_%u#Z$9ENV zg&oWg0F!mJ2;S5#Ls#$2N&VBTF8f|*mNXTPr2;6w98`SbAx0SPeM`76UQ|kPr59Di z7B$Y~S*qE)ODT>>EL!T(+q8^w-6=5M6!VbOs281h?c8KgF;&>P@FSs^Ml>>CeR_)Q znRECldju4OeI6saQdwPBTC^73f~@MrI2*9VaCWF`$~mfjQ+6&#G=u6@CRIK(d!e2CmE0&dVZw42-G~3*GPX=x+9s%S&)GIlF7x$ICY%E6v@C)~)>< zy>G&J)$-$;rB*84o^rrZUF#2B{d_Cah>NMMjPsOkh|H*g{{S8StWk+IC@2$N*~biX zZfuUIX80D8*mCk}M2`13qF7(v-h-nfaI}rSaI7b~{lw-j66T%dcS&^oGw4a6S&I-l z7+Zc8X?rMZveE6>SFU%MQP{;^cqkkXyLvLeQX|AF6$HpLDwZJmFWX|g|L_f6FU<%U zi`DSZL)LvWX?VV%y4rYH=MYDP7+jw}*7ZoB1EfaWoaK-k-m4c=KH$egJ`~V@I&=!X zbGPk+brV3;KvKw*yt{-l3%}_+>p;pnEFQTJ+ZQ{Us34>_kHK@NOhDCSq4o;)D<;4DSDht(;v#CK4YrEqO6=2M- zm8zMcuaGU}`N_}eVaR5-qE8I23NlJnG+c!H+_?niDe(WCKh{&_lxAer)2=1b)9ojK zWMJi+j;@90V{1oH;U-x>!WGMY}ShTX&DjZ;zl!(t z@HhIvG^yU0iQ6o*Exbb?H#*N{BWj_Q*aS)SuiZqxDwnrzY73EEa|GBP;Zkm7ydXog z|Gk=MSxOjhLF{)&&c)8?nOFjUBUdyBrsC|xA&u0T|wm21+Un3=jFrIc2+hz`7V95`bXk!|&}E zc-lm!4~aScIu@}QgTR=>H{k~1CH?9*PnPgFfrRo##K&9K_zlPiOAAS((a3U|7QSG#rVek&`H2y^t2(1Jsk;j=;DFUD)&|b#pvy~(!SJ(+aDqVnB9PyQL;$=}LARv~D8@E!E8LVJQ5qJH~#sG%YgY1!op z0XQZT*FLegl^={(ZjXnkVmCHh^o0g>)ot39f|eJ%u=qX|UiiA@*#2S1Wh|gr^C8=) zR)DHfo43c0NnbnUmW=ZA9l_+d;|il^2e|stKirzxQ3XL z>^8)hzQyV;gt(F$wXpGy4Ufl=HClJr4FpbHX*s6(far(5#Rn#`5l`uE7e=k;oM1!Y zN9n!(-qP!`AQM#X{>$MzB9e;0^jg!&hq5Sm7q%`E(}K zERR7> zHJ1(QgnZvpG)umPvis z;9q7Iq^mr%obg%mCGYT_%8CS|kFzd(dVEVh3TIl34gL>oVWQSUG=MGS1F(hjLJgp9 zL`SM>mW;=FZHKtz#~nA9POn=n4*cS&TLVH)G;TT(IC19Mg2@q)a5mzhsX9_a_pIV9!< z>!v6H=o*51ypPA@!?1m@msAMNy|Q)OGu?S(j)uf`E3vWf%Z^MC3LJz;B7b1ybwx}b z%A&~zW5(VI#tJi-OW1oL<@uUVlAertsHKpS5CZOflO`k7^xbfzI$up8DBI}vPC2}! z`~Y^)+{57yq+suUQ@R;3!v}X-5BKmUujuMt{(r_A3kL#>^-qp{N6w9KCSO-a8UGV9 zIDSW_{_FnO@#O~J-pYy0_YfAdni^p-W#1wjoNuEjB**lg^p@z5GD-;mlKD4i}2 zL~;Nn^kugNX!_ZlDClpyo+xxLCr9}n^Nr;g)Q{&{I-+MYq1lul{8xdIeJ)d(+I}U= zLm>ylboOw~dT$ZO+x_g)BE=zJQ@iYBi~$~w?#DpE2pTNr@%(i-l4uay&{R3XHYQrS zolrAUx>3JiDOU$ES0*SL`R$+|*B%_!J5p>ulFx&Duni1yoF>4v>~0B{UR}X>wQy4q z`V1x%xB2g2!UL!*x@@?Q1!&W!gAKXEHC6GKIU%YP3->S?%OJbi&QT%0dHD~@0T8ZR z@t~qgF6$P_YhiGAc&a4ev6X5a)@( zWp?E3&SEi3xqB?MwoBiNkQ&? zxaeCI0Sm3m_&p>uS^VY#iS<4nLM3q9oO|q!3W8YSd0-+xCSIPD6}bRDAZjBdaAGmM z?u}s`TkP*-MYko9nwAD7eol9EB=IC6EY#PZt98AGULO%!S})8YOa!kYLkqv^nK<@- zW*BO}FKfRkK{(C+^UnZf*n!sZtZpDN<&(S_&h(M10mJaH^@UVr1V*sANcXy!yE@hl zdF>*{4_*&p$^Xb7v=+~AaUW3Hpfjm)Lw@)m3f&u;R=!~21zx4-43 z9qGxkt~@K{yTM!ojit#+>g}Y%p@|h;x`-mdOl3`W!(hOzZxJBg3m=tzUVXMP zH&i}EaTw1Ml8o(z%eOEdIs1vdlfqGZI?4J&i;BooTmaX0Zm_(T2Zh*dB~**6{IC{J z6+(}3HTxfy;W04-a%tpv%ZxKZFrF-9I2?ZfrC7}{;D)IT3J>JPCLTpa(~25?3{Vlk zjb&_D{nY1Qh4X`e`)Ijy;8fr>0DFvyU(4%gdwQrq)(@?X0Jz7}*t@zR!+l9)xU?Vi z>O+NehUFgB;jRF0W4afu%zc%NBLArwNmUzYM*6K?&V?#}DaDr4DW{{M1*blS#{S>z7D=$h_*1u}cGQLB%-J$yfmO zJeb*@hDmyAJ~DAWYbrv(X_%>YY*m)6m-3&CX-ObQNIuNKBK0%b;E=QID-#gQ7j|n> zBxQN<>}?Jtk~RctxmZ{C_X_`^8RBg1(Qe)62$*b~GoG@Sq)yuogk5axk#g55jH*3G zi!uTgWyXmE$2FLD3bKD4tq?b4xmrj%!{=o7bg$p~Sf-X~{NQj<`%BhL(EmSq3Pg&( zBMRv-g?eE7eu`97LurknjwnEb=SPALa5{xKJsn8{U+RyRLn1x6vB?Gaay~;Ym)x

      myAl1((VHIxFI!!mO6^56kPTZ2?tjoa%vW6fD(~{!IkoA1XZ2z~Bl*hfCizf! zZ=F%2xp%ZyXW$eGqGK9?+jV#RW(EaXU$DVfan4v0Y|=Z=hn+uSgwoCl1m{wz*6auO z3(5?dH%Y&^!KsgG7(NHeP&5l7u+vSB+5ur&w;yy@mXvuaxXc)K1;6AIu4g3oFE{$1 zXNa-{y9|s1$^iCL_fgH+9tD1<1?kmmJ@$(f4AlkU417W(qhz9n5#zg>*>>aPtv#cd zyN`Y{PIMjBA7^Nic+xWd+Yz(FN*Y+Kv5OSMRo|pKdvt^FKQlNUeyg~rPYYUK z-va7YpGF+NIE$$uWH0nNcDDFSzGDQ?3xftF{@+@UJ^<+UaYnszE4AwEB5f8mnA8tnfPmPP{;mD_(!cUZ;Q*b`L^mh639u2Qi8s7*s0V%Z_KtsTUB^EQMb0qxVK| znw9zj5X_r^$o%S&8s0ml{^6M0okh84oXU|R8YBEY&%_+I$k~S)$zri``!H*;p z_Awu+<85kA`b5MZxnH~Wy)O>Bi2v<73UHBH;B)dZQ@UD{(vFUiAxp^m_6s~P%^)lG z3nDW3_44kJApwa-GPfl+^a9-wKfH}z6reaPb@#rsniy*wprG|1%0ULtx7KcZW}A}! zniuP*OU=6P6qNk3c%zb1dOyfxKSApyD#M$tIESjA^b55C|iH< zN?r^AlVO8&gE4hVx#s$G1GUjlr$ zw*lA|zt`pXdO&m)l@Z1=4+kO2N=7;Px=u>_(p>=g+y^Td>}(Pg1$_E_@R<0|7CwxE z>yPK(d%gK~R$6!zEUEdGxAp&~bH}~ePp+w`)U{ads5Mu(9#0VoFnGSMyjv!*u+^76 ziK`*_CH>KX87ud7qu{|ZGMO_!@ z)a+Dr2obb5rv&{nUROto46m_``Tk6)3J*T)AJoI<`^% z3AIype_p-qxrSW~cm3p*4jEF^x=> zoCqrY+T1oun*wLG2fA75dUMvgSgtew9XL*?8sIqeaM`3MU?=zG138nw39O>yW=@dQ zr|+>L`DwGXHwmT2DX}{Q)6W%3YQ|HYtvim+tKkyEnCjel(h7;m^?5bpGrwb7|CmEI zjM!oStEH;4_$*+kgrOJoy+KNBbr}BvWIJW6lTQ8V;V@-GE=Fl_qB7 z)Ur}_`5fqbXAoBDbV{?4X38}c4E zIAt=5>@3^o;T+-awY4?Van6FFyru(##l&u-MkR{%Za++=H|`f^_#D6u2F>+zD7g~8 zBt*tP0vJ=AQ{2VH{H|jG&K>c0syex|@=zYLZZ|QfBDcWd$z-kStLlgln&J$f}uwknqTi21HuF(NqWJiE)WP@Wh ze{}Vahtr(BR0rnj3Z0saJKLJw)qLFIN@ax5VF0z$;ffM7C4T+I+O%d-hjP_s{&~*m zL^1`-mls36^w|G+CzxF&qg9(ZY)`>wah&f5ad>0}o_4828Y9pQBGqC2pW_Kz`!_o) z<2m0kPG@v`PLE72u3(QN{-iOyoSYC9t zb&0?1L|Cc4zfV2b0G|u-6ZX+r*vbz6^H;fD&QsvMw10Ma9pDQ7k!MqdWg$eOR-m1_N>HK1J09xRM9ll>%E~LPX?cop@sB-6`I2R)F z^UDNbcjUL=)X&WV=^Kk0&;%z{gZGxTw^;# z!Km6SG{lx>iJ!gFbqN^M-_311K@QsZn|Lkw5i7IumgW#Jt;5b7St>3P+@ zM*r1D)S%+@G&64ja6lC32@KE0N5YbC0h!$57l+s5 z!=;Wi@o#GG+Gf0Pl8HBLYb)J=1cCESHG;e&RY#AVeNNV!L~*n-p_=oa!3a-Bh1)oS z(&4Z#oK`~{!LdTo3@UH$jU9x-tDwOoB7;k9_iqsx3))n_RhfzajyAnx1raqk`9>}D zh+)o?xp~LrdfIZ4-odKRrAODH^x2Bj_Z!jb?y}ss#is+?bFI`EkIasxe}}()2U90` z@OCx?GplCRH#KOCjt>8=Q--xX!3j9u!!R(5#8B$_MB75D?j=c>fx!21ndMTKqe`;K z8TAw7?Fc2Px!OodnDZxpjU6|f3&bNCT=`*KNJZu46ZoLH{c>`LqPs#mWffK?Fs!{` zapxd)q*f}$7g=!!SjEa$0I=11QDsDx;=ExGUc}R4{ zpx{EyJf{W6~p!qgQ2z7U&L8N&u^%HbZoDd44QH zv+(@$1%`x?d4^EH4zu!~`jhkcxBt@EBR%=QH}=eo!Mgpg`GSdBlJrpf^ZJKwRpPea zNFx`WTB@9f)>JKRX}00F8m?}?pz3IO${23`7IZ^67Yui>*y@yOrxJb^^a$s|k8u*< z*!*=-(hZjvG~QCE+9$oJ>A>^Q*!C#Qv<6z#yU0Qb`W9v>E@G)oJ)N^B_0X@pa;_tb zzR{-i20}9_5!&FU z{>}}y_JZp;J+LUK%%5$L8#x(F4}=)#t^Wv#$sZAqk~mZpzy&|rz}E~)Mt zgHnntpu{(S0J^$#xpq7ZXeH@h%pbhpa2M*5aKt=N;9dmpbkr3v;1x!qUG^=9Juwbm z1B?S{yge4mNhiS^i)`2_2bK_+k9j+}yDRva}-1y21 z&(Eix6ANTsFNuY*8FrWI*jZjgR~E|rbFAq1^3g1^r*bFTzhE)2;hd0g&oh#bBEX5J zY`pFkF-XJPJ@n_!9cC$$x zs@djjuDcAJWi5%Fy{nRL9>b9Wuoc3fx7^|2aD5K^h}E^hUh7`-Ds-6~gv)%b+~iMG z$WdR1@PzCs> zg|s&Wq7&Y`(!r4z)L1&=E7rEV#_-RqyWI7gCf0<9{;^evbBZ6VnM)90%tzY3e)2Sx zN*If%k935fseWP--WUwcuoqXP%FoFZ8IU^$<_XXqWTyNLe*pr5kPG%CY~-*(eDX{O z#Hvg*O~zFug(GHh{jgBQXAX7v6a_#pvu?G=G~48j|5#9}7#6+QICSJ;VgWXX&3=>g z@IFk9+0wDI*giC`VQbRvT#kn7*M#_X4Gg7jOVy)9A+>Q3b{uMu)X4~)fD0JxaV;hz z%#BI_r|129pUF~g=x!F*=&ASTNA4^gWsE0B-x>!grRF%9a>cF~=Gg_r`sjRuycxBAAAKrV!#jc>GF{Q% z5hTRPbVb-}yus3H6n~(oj1UXtPedaLHUbNmAk27h!MUT+gM$>}=_q_arrs z3E2iv(yJIZyX3z8G>j~~h9=d61%3ip5}4E#{{Dc(sqzy~O?uaP;^CbG#SBbzGSC{d zRLF}-j>6X5>}{Os*qIj{ORAEIpMg;pG~DLdl=C%YCkimo&(QSkabwQ1qQr40N+}qaTEXwQoDh1?H5yR?LF|A%<(y%08@^D!uE%rJVEfcq}h*~T$zzR0J zEuq|28Vy!Z?8o{6eDfxdsW3Do|LB*R|HYWqZFZCO&U9knW z5N@&xn!HY0IFKU_#KQHe=6%p+?M>fNk-i-G3-(v{e$4E_alba>&<^=@++8B?T&kMJ z_nQT@EE-tEG&uZOM#O~at_FMx*(Mbu{3YG61q~DWu#Tc@i0p-egl!EN=qH~l;utf@ z*Wri!pF4;EhP6*RtrE6%xRz(@^NP`Krv=bhdRi|>DP|hp2&AqXQ z6{)xvx}x%TH>VWE-{uq1=^D6Qi!iJxzFarcPG-w6oO1dyYkvxkEW4BIAO zTiKO^cdoc+F1w|PfzqoYEnE9QQa3{V2)xPIzB8r*EyH6;%6R%UNvza`s}1LzK;@6h z7zMx>Law&vdyf}VfM{O>N%UOJ$j)5_TCB*G`3%P6Xk;WTqa=M2+pNfUTmw2S#`SwDpr8qj5>)84|x9Ub%c>8b`?4-(67-^DW& z2~Vo*$&C)61hXm@4bf-0?-LFU?=tYo95luG$R!QUREOx%Z530MrTKTux8{FAg-um{ ztZL^>S|z4&@F1l$rx0SUk>kwy1=SOzv}9uiyX7XX<|CybQj&%{_LS5>ZK42@8WfDh zZ$lbLrz(b=ZG8lDrsnu+`c|9S`QgAS`Ew-;2Eg>OLDG#>*X1h%QL)*ND{g?m1iGIz z1)F0=`+QCMZ2pzGO!IKHgh2{mwR2&2*VbgbA&C!+lFNT-AFA=m|0t2GE`_1V_>pb0 z?4HDr6N6EIb62pEnA|U|eG^2G(F_GAcKkK%U9BMzK8H_3vvzK`_Yh`v+Xu{AA11;Jn`4&C&Mn<_QMTLsg0ZwU}_|Nb^3M+nuWzSsv1! zt@L`elw(QqkT4|Mt(>2{4bf4Ori`oBNg(e#%-@fGckmMkcG%ZT)NY*i_*jh{wXcA; zH?a#2^S&TdHs)$HsUV1Q|2VjXmq|oLD24UeExDLVvW?3MaU37sVOd?Rk-)K71EKQm zs01L&AM?4EGu&`nKHphe9FwPSrdzcPPbEtetIrv#kuamAwd*{`n=L)2t705OmQLgX ziwS+HNl`IW8{Uvmcx!5)el-23tH^YDy-EA=Aq1+h8ZDdk#6j)q8<}NKL#kAty};4J zbH;=8IpYzA(t49`l-(09fvH`1ZaI7FzhruS{S!Kp(vN}Rvl$O2JAp!nUs;6B;#I*u z>57Ocm#Y&wEfybwJNuCQ$YeZ*LgWP|xj#L}J8F3tzF=VF*QI^ejpdHX zD`Q;^>ohT`6frD87@NHzxd~EDn>0f4*)hl{DFGq5{72L0=IVEpy4XU*wouBn5$J=4-=r(h-=W!bCR+>redHdj z(P^in#P;~F$wLyl!-v_HUlndSuTkbHI9Pog?3VZJ^()@$=_W5^sbgakAiVDOdpjnF zTJY8UP4zPBED$JPq)FU`q!(aYGL5*_?b-|!*zVOspMYP*(6_-}#qcApTf%p0!ogEr zSgar#Zc&`u!6c~5ZutWkattzt>HMVWus&7bY*ssJQPlXz)n>hS>}3Y^9Y=6Owl5ud ziqt8B@XLC3bEGeJ@cGAl$;^%e$ZACB;hAp{Wnw)Oes7VJyF#)Z9bQk zWHhnJ|3chMhMfb;O73w~W*S5qr!=xhevBch1@cAMFkc%QfKZ6YGlyZEGh>Vc6fI+z z9DJT|(U#4GSt(ZYWxyh}Zy~Num6$OadAoja^2Ye|?Pkgk69HgFlDwGDWN^h%QN=$| z^}HI9>Mh_V>!uj_Y7l1>W+Uqvxl-alr@=dJF;$PL?bywfK6ZI^^(f#a1OD>G_Zb5C zE;!x7P}l@Z4ygTw(umjg+KCorB+oXsElAul?0ZiGBqTDn{_ zQ;e~|Ic0=YqFCY{dl)SXJZ<8Inaa-|t;w6g381``00*X#t;!-S?V$0bdYc}oX53mE(>+F^34SU4{vsD zS;-I>BD@k4f$OmBUc`ROV1Lp>=O@+nrF&Yr*#zm|#1NpXSs57(=%@JP@HId6=abE2r?c}HrJaKZSP)^EX>H7TaTe!^QXmVS8s10%DR zX@9#1Cn7PJ=RAb2;ClQnVBlLl(!%qezIv4gNQ^+;IA8ys%Oy+7a~VJ~AQz<%2GQZ+ zsmcC;9Q{Uf=6^?TYt48Ct-q!A?JIV!xL%vwuIZv28Lu*i| z#XAyy{;t?Nq#)&U zn<2?YGm&8-NwCV`Q||#O>t+{b2bzq$0TkMJXvVY%j1dZVMguYKyNswWv~UD;kj|^zVM+v2ON*q}@CaZG zCq8fdCEuehu&t+0Yk1n=TAui#$7R_7BJVTxf&5Q6y@=YxHLKJIH~zZlPbePHR=skO z%(B{Ixgf?~vq7MG9&LZ?;tEcF7@+jkWgIVro(j(?n4HSHvtNH)>I%K6jfN8{neW#> zQt^^jyC~E6=PO((SSqGn$!9N&)?hISpHKv5xo>$$XdNf--s5P)=`9~+3C`BXGA%V{ zTux~+E@XE za;a77qJyN~uT{!0Jdc!KWg#gUYXY=dxeM9jvAUt<`SSY}YrtFuh858K;h(ceJ4MvBjiS6YI8g^muD8+_zxtcHvynVi0 z`LGqDZSorocE_1iCPS@~D_9NpS~w1iPA43h51-R`^)yOl60dsY)ux`J7(5hSZ2V21_9(y8##r6+3;!luU+;O`IQ^`? zzsmZf^hGngqXf3JsE-`3ezi}VlE?|`=qN!%(A%svAf;1mcQs^nO@mTtuvN)W@k79J z7$M|oKu3HT=in*vCD1QBc#1eT5*8(H#7g{<0-EM>o2TUj6Cy(t3mr&H#3iy z%k)6pWHTgwmq4W=Krj9jSG@OvK{9sswATp_*~ry|OqVR!%tdRWM?Yemb%>1O!IHYy z+z8M08g~qM6jP70Flck}@6JPN)_-RdYqS0OeTlys5Vqpaz2kp(BZy2ZAQvvyR%h#EI~l2)wS)h%UF&zhjMb25!~ua?fm%3OCM3#@+$$is9`-9 z6RxpvCs=t_H^wqVu6I`J+~T!9_xon)y-RGzuC*!QOCzI>K5fqH=8hb<+XIGn9~@Q? zp*9sNjBE+vFdmyx42}4FmVL(Zrf@R!io#OAtu;7I4UpdDZuh5#f31u4;Eg`Lt&;yS zhnrlV!6`&k5e-HYDTo!M8uF)l8P|?;{Lf%Qa#foyl72ae4zEyH?^3cG;}vH0O>BUUPF8kj4? znV4)2`eU7dSl8OtjoL;Bpa;4a31809Vr&9S#Y5s2OLgDD#F9N067)X>XPi@LKwI9+ zzj5P#xikNtX378AHk1X~i`q%$6sYYYaWnSVrD~rGJ577@DM8*f zU`^BzzcQlt4_xfa#ra7pzjvnpJ8oB%dS0xo|0<^g0R5##ncVjyyz>w69H@|2842}C z@4K|?a-Z6BBhj9+C9Bl2+s#IuOhRYL2rP0sBRWnzC7S9hFF=c&u-I9S26|B4dm!pc9;ji3nbd9=Dg^wd8M_t7;BkKP?mhOm}n}`L0t7~tsR|S zF@{eOv1Ak16L^o;uS~dXA+AEa4A;VDE4N{R{ZUD;g_W7;5E6&`{_XjkS}P>mFuM-9 z9-x%WRi}q5$@c9vkjhNvhz;CnWc_*Vcm3e3=gBYf^wZG+$fF0Ga{a*(-~0oObtdiR zBvZAt_o&2VnZp>LwzQ6P21C_}OB4XmqMI;az|Vise)zg`yH-(p5g?aLCz$vK@1jwx zUrAtocCU2S!Cmd<{IvUU<_FZiM{Q*!MJ}kTev1*DQfCuwZGq)7S#*AIjTiWLr;xs` z0%)WQxIjWS#qvHKGSSY9t(+-zG>nErZl_T*6h06h0d73QbrDmCrDZTOT^|VbM1&c(UUB%>3tzV+jZfZc6R}67=R}(zdt)w({sRJQXp6p zEFDYzC62ooZ}%vZ!4%Oxwi*sp)!6-p%C+~S>)PL_*4-zwkq}Gs>Z^e zb9jB;y-R*tU_raI5YXlF2w+E$;4G2yQ`w+ndt!oclTQ{!TtZva>t8GdpwH-^KAy^w9NWdhCuddsqag_Z26teLt-hJBxrYL9Mq*R23IczfA2EbcSJzb$Z5=`mk z*-|rX!Uzw@7!%KHsQ^yUqLmhmbjLUs_AM~tR)0Ko0_7F2{$Xtn=2Hl$E5JP4w9 z9(D0e4di4H#VW7|%4~K#%yX#Uq2kI=($?3VdxpXMn$|jH`6%fPVzgT$wc?YU4@wOE zw#}LkE3sfN1u_X;GyK{fudbAmpqnk2bj<5?ut(-nW!SX1eS#~TwItf z7TU{cxf?a`>uSU(dy38u*!fwe*WJOH%dt?uai}w0ZkKN&V_#Bto{Eeq5<4Ad%+Cfe zhr!uJlJ+549mBt_i{fw19~mK7{N4fY4;A*nN)9?4%eV|!UDqh0g#uoRH6XXLufJ8{ zbMfI;@;?QR9&iL{FGJ5rO@_Z*%$N(a&n#jK+at7VM2j*A-+kDmM`g@C9$(yWW89## zdJYB%#Q;lOGwU}PDPwgmYoq}o(;%-O#L{XtqbjDbbLU<9{J_`RyK`EQ=zegw;hd+(juN!L!ow76{*{C zGWwlp;O=of{|zc92XRJThs`ZVk1e+TN~w!V^3w51$NIC*o)~1Zu*?pUJnt9yWnI4y zWp`FepWY{#NrgR)u*@%l7OJTX7vVgAXpZ$*~~(|=OIo0YIlvV4&`tgM3LG9 zffJQ4XY69xJ0R9w0q~+Vu6`+hxjnpL&GqnoA0alX1=yze-fLli+s?$M{u1Da-81;j zORZHiGF{9cpp4sViplS)dsjB}ViQ9t{Pc4vc7CfQ)wZLQ+dUnqXK=KI9uii))>^41 zW4n=AvB)NOn@6&fFQ1ekgd^x^_KAXu$Yt(&>wq%B0$Vf+;L5_qmvrbUG&9%A-#BVg7!>C&stw<(!j?}JcK zTi(S7es9jU488pS-J-Z``!)U2GJNo8us$31tb%F_E#&iM!UV$(E90I?=VH{j(d0-udghh#f~ETw3-`4gUBoNl(eSE zFrPLYWkN1iuq*?(THgO<19`6XkH-)PNA0O0SY4iH|Hjq-&lSnlW5XpN%jLuT>LV^8 zq5Jy@NzJa9?}jWQ@L)uBW*iC@yy|Lnv7rFspr0>Uq{CiU)u3x6zHMb%34=v8bTBgE zV7{fm4M4x32@7I4M!yVWbT6^1Ut zd#wG#w!Lt!_3jdmx_Tmkp^Zrv&2B$oe6Q1^=%m1IEcN>Rc=1z0bguv0bZ z-7KXsUYKv|omN0WE7}H4cj9E&fXei~1n)olDE$o_^$kf(^0Fn}oZIZ)qvZlC)wO%D ziH~9j;qqfBUq-|tn#JAs(Av6d^pfvzU6mq?vJoY|^$+RSubB+hb#lqj%JX_=^+`pf zpwKSPG!1kTK3)aH8PhDcQ0pJXFkc(&|= zoUT^93=aarV6F!GxARs5P1#FZRCgZG3HDhPo^i762ge~$7MXz9uROE#%UB!L204N( z2Z_x)EpCufo?|+>CdX{_P7cmH>Q0I26cnDzwk2Ih-SnueSYKx84W4@MH?yAyncvga zM`VAq&b1zWoJ`F@wV3U!jl`kGy6yhLS=!-^BELWTaZ|0}{yWgfDwAPsgJa*D;WBCQ z(n1k8K~!v>#^?M~X$cwBa53=d!as%9>T6q=(B%C*tvU|7c9NpI_l$mQ7Z>o=P&sLp z-lxeMQyXF!KU3@xUp>K1&Wq49WWORQYk9*%3(P1KJ-5hNpCFR89|k!k4f+j9+0lsU z$jxLm?T?BWV7=l^L@k=l16k()X0DRlo8?ySRXo8EL*x(n+e#+PRw;x&=!F~&qeFud zw-ozkzKd4<`XHHP%^BjEfhH)uNu=@29#^1LdR5}JESHKgS&tpDE&I=iRvZ7#?zyq55>XO^TrHnY|pa*iXq&~|ZzSNBk;o1?C8+K60 zpL-3blluy0m-p`YV2L8G)q0z>aBc%hk+Z~QpfL%?sv#@*pmM*wJuhvaLqGF*2UqKT z*<6#@cfim^o5pCW7Mc?XK`#%P{d;h$$pi^&NTtT;I<8ll;lMhcIJCSp&A@0o<7<3h zZ64L^otz=u)~r@uQ4@R>kPzr4X0lpDl0vM*j?6G_7OmSaz<1}x<0CFA+?|OmaxpQ2 zut;Huc^P(0{J5|-u1Q9Z^XFvszc{nekA()NrLnCXB^R&4<`it*k0N<5^N}%Yo_)&@ z%Rj1^?fKYx!zS^ejGeTcgMT;9fGUwHv*zThZEwhadJkn&9j=mH9RE&T6V4<9w<70D znn8*dU%E*@Zhw*IE;k!19J4n@m0Pw#Icd-QS)-q(gc~_=AgutND&zFX=BWTtb+#E9 z2{&HU#gxFuy8Kl+GNTekjLY^(*aAHlXi%~fJ#}eYtkg~Z2jcIKk%t)ZxI+bN1WZK}Ddlz<2X$cElW97l%n+6tJU)G|q z{WQM@HQ7Jc{-vJl3SU!Q`Aq`g&A~!3L{TzBLIcTqE;8$Ud9c<1yER>rX1|nuAHxcaJqzX0{vR| zEr^1_!@&u7ZsRe>o^X@b`KL{|<&A#ka%ssFs(!}mKq5^>mutHlA8w?qGkA`vofEnEc|;*q=#?m{J8h^0j~(_ zqPr4fQ@i;iI!LqFM*YZ=*2xb1E!9<7T%o=4u-iuSvU_6SnE7(Ts&%QE2jUhIhmujC z>w1{#=5UI1uj3?{9OP@jjNaK(`8C%S9#hEXXkc-Q(gSUFQG7=nkSdfiU1(k@`NKNB zBjuOK;QFN8)6*5$SrJaiccXXaL~Uhd<$Scnb%yWm$h_~eL7?|*8Ie51U`2{cFum z+xC@&I#FU|eBAZ~s1Sf9o!H-H7d-2t*Mjml|9Kgq2dhx5dd8e!(H!k1NJ7L`b5oGQ zqg^MXKKKdsFi(nNEBD-QkPL6La~+desuSt{QBz(Ru#s$+K^$E+8Fj=#3`GsLl)9uW z9iHZyDn2rO!f2R8V9~U&ZNl>zUSq+OFp9{67yW4n?#ug~N{717kX4ZQ<vEU?Ru)O%W5-3W>nVt$j%vkca% z#V;6@`?Hh`RQBfiJqr1_y#}**G5|~6s=RA_>MHrN&HaWX2*j@V)U2G>pmf6{BLHi4 z`%L%Ek1}V(^N+4zeO%Q{LQB$*zBqeLhOQUfHir@8Ln&Me09dM-(=fUs{6_PoyU@xe zLa@`3K5~gp0e_A2z1I58RA`SIkw@Z6j#mY`jc~qP>58!4~VdjfIs* z(15>cMz7BgQ}gQ;nuKDV*yrp~M_%}gN^B5O|C~+6fmkY%>>bRsg14LB7O#c^CMmo( zsCOM7thhoJ%8;BFd<9(k8o})lfy@dk8heH6LS=|)*T4`>eT&5W^_6|-&Q)~+39(Pw zHl_pj!r77ar6f#?Wl^T=obGoko-jmHhwRtSu(V$$U0DWXVNew^Ap>img3m&nE|pGGUi`>a{F zhrRiDmVTW&$#i7K+Q~y+Jugehxq^$9&Ci<-%&G2W6*EngU6g}RhSopFgr?;Cg_^H| zny#gZ`b4^!P)U{H`m3Z7D_aKdj*XU{8?x!58?21v@RYVzKI0_XZb^fSK-xnZNUilw zZKOJyJp6fqUpdG{iCR&qU?OC6pjd@rop&~rC^aXk%4eaOY%_Et&0`byVjoAmm9BWI z1$~@lKhC0)U0!{DSy_mur*4wYm#MdIJ|9I*1AHxooLU7w>-XsRWNf;pKB_P;n51G- z2#${P1@w_ik*j(TT{VWKOD#rMxjt`1mG(mM^X{4$WmXd-151`Jw7TG|wc|48IT@Gr z9&mk+uQ+Am*=|{Dh2J?%Av5EPI9+PI97!$M&)(aKV{MRK%F3B-$}Lagmy6TGyxI70 zLV+u)=X)7{gbun;>oaQqjoK)mH^0@krR0<<$-{?X^ldRI{&(#J zgi`6Ch8GcxkDg5iKH|0)eNlSSAdJ>q?C_e`1HGMJ8qX75ha+6n@0OiaHSk_me8@(8 zFtg6~MxC@tJM{AmJ9qG|3mK6$XT>Wt?nP5t#c02Ztu4)Y4RQ)2YQBa3CQ2VLNaZjZ zO|!0mBwNYysyKF=UssGV^P4;tRPcSb2%%6}E7&!jV1zb}4`7WVZpV^(#4y}h^V5Fc zE>Ke3@qpLLV$I zahj=WijkePi!T=Qhv!O5Nx}wqnrbUpbaQ&^h_-w_IH9w#l$SpcyLv5z=8V6}I~-1b zRT$gqk^EL_8F5sikFku3o5Z>*5=lNpgoeEEj)z&g-8Ev%)rO11Jf#e3BBv1RRnVDt zO-)`LF3Uwe#pOa#fiqeqZ2@spIIneQAL5{Y_t!=s;6#!Uk4o0WE<=&`yC_f%-Qsr^zpQNp3tRp+8Xs20_EC7_rZ~;FD9*O$X+> z+~+eA!MAb~`AzvpG3Sd_1MWLKTL$WAtRxVATbpR$*32yQ6ZaP$0Pdj=co+IZGG`01 ztIyW&hqw;fGzTTX<;_$V3A?FkxMb+jgprwcF?0XfCVa$qN0X-KYHezp{qB-Jn*h}Z zN#?WcOUv}c9D>bh!km7y;cYR*m0-m_b=;WRoO}9a4RWk@gJRd(Kcj}aiUq8(zMm00 zHZd;Ckl=og(LGW>Zd+_dv%R>HaO&+EdnX9X%S#&{rx}xg4VfUYVqFG@+$L+71Fk^A zg<8+d+hW1h9_?t+nn3#9SJ76F?wQ=$3slot+tT>`_b&{<%$|{&#sw(L z2Ou3O?Y2q$RM{U1-Z~IM2~NO9S=6yzKL0f#v6Z?+vP#*x6V3S`)nSkO(Wb|KPVl8x zd7SsEbnY&{jtpRrgiI`RKmZjgcO(#uUA*z@{hJ0_k0Smg)L}IPYw6Qo0^EhSzG+i6 z1K_OoogZWgl*VCHMhnbCtO}BcHZh1AH)U2ox5e1BI_r~aOvARh>Jk%g6;sgDDPOT) zzKsy(@pTNNz^xe^-Q`jlWx{YS++(H2K0{vP8O1mAUy|cVS>npfzY~p82*)Gz6XU9M zs=8pQc_*EH(0I?avBYX2?l(MQA-Z#-`U^=U11BX+)Ez+l)*SZ*e55z>wbt)dZqlWj zX@n9k^;LFXfAx(gVO$!)sn9xWRHj-a_>V}o1 zEsnA}IVe4rgesexT!FEFEb(g{UcEIIHsHZV%iXTw6>_i-! zNG$mTMxlphw?Wt2!-UKowL%MvKg!C)>QwnyBE?PL!_99U(5h*fbWNyNgaUDg^~e5ln0gX5dE_>a ziYqy*>VT_D0B?$_AB$SQQ~~3;oT-giSu+J}N_No>WHA^z>ofIoHqh=F$vYgF6Z30I zQp9C;F}E91$*OW7Cs_AtyG@kIQPlO7E2KG%@n>!g++MO0|W!nm9rh=q7%T_(qjDLOcLqboQH&JG?F9cx96sYFuX#Pz?C1~UY1Xexs zXJDLe1m$Mm8BTAd43DAktFW26#~`-kjfjLucWO|rF;C#>%;hux;ID@%~O7WG~f?k2bC=BN$bu9HWy(U=2|*@hC4V1m_HtJo8=O zao;B-BAl2jUP z7O$XwpIyNMh7=X543{<0r^RZh1Ogb4szrv_Ysvf)!7RQEHhMkW1G&Y&BjRXk`L~M4 zzd3X-OV8X=MU?AkZ6ekY^A*~9W)Lp<8YSK~gz1UV2f5Bh2h19vJTFncv~pwPL6k5y za)*!C{h}37T&>}?UpvqCG1W1?AlJ$+CR71>&khtawlwet4Qu8UI#05>^a#JBwjmo1 zC!&zJ`T1iSnU=495^3s;(EHjcju#o~UvbexBP0^gj&n9PDClKzy>q)z<*T?f<9SFe z)h{Q=fu?lZq(hm!3voqv20BEFJLht%KDd7M5fiKrDLZRY^cF&W=GHp+fxte5iacgC z3QGB~EEhL%rXu|^SKV~Hx=;}kC^9%yYs9sHNRTW5{cz~LBA!H^!X$DKqROV{tN@#m zwi=ahtf-_uo@)~wHHM{0Eyh*Rm5l|)O;x}Yo@VXE!c;XmhsS`H0xwKaKl<+yP1mJ6vqv$c|T5Zr#4ST$Q=v@GyA+MU z3+epgo%^m|3?IQ0j3b@qu#Ibr&#s%=z0I3XKFqp2!;5Np*s2=l%710Ta=D)Ij+|Wc z!SpL=R@@(Hb$BVRtpQ}}UrR!Ww!lMJWm_Qqr|0GW^nBQ&yhr{0b%%(kcDG^yPLl#7 zMQ}Q&Y?g0-SVex0Ds#AUuL8KWgf{EXriiIGZ$=N)_A_tnOxeHA-X?r-uBnzC*J-f^ zmC@6TTQV^sJPgrb`;w`5>A!6LAMQNPwD3v_3zeA|?U=vP<|(<+EgiQB#d7s_^9U%E zve5)w)jUYA#OrdU?&!#2Q00&mIlZ~`&N;Rhm;SCY>|?A2kwzGpT9tAdxGld-V<(m>8P3`r%f?pA`_=Dx1 zbXhDuwHnE!8qu(vQme=-%cUXAlO;(pqksR6;vxP{!rF~mQNsh*FG!Abqn}o_3nLL4 zs%%<_iH3C2v!vDD@6WGA8=5Gn#mDckMGI58E-!9!Qfp3P`-njp#zGrcEe>F@Bi>a& zw-252i0-XOe`n-n<;ao%6KX(@&AS~rlXEA;8Fr`PyN6US$(DOsumxGW&j&_vA_#~TEQryOmm!mN+Cb^PS$TfTJaT4aO#Bi}*u^ja_ zLT?Rhamn`6Xjj90H_`XB`uRflmL3vgxak;7fm{hQe?k_5dOeE_iCz-)^5eY0j9N1y zVz~|hGRbe6iu`w=!K6op$KorD@Of2JV|Z>8(DE8TWJ~7i8d8VL-|rbZvx@QrfFQw+ z`tx_>>j=6}e5`_}M>P|eL9%4y92(MA6Z}Zof}J9YZn?uQ&HCDsPn6RhtRxmPLVp}P z&vYz7R+{zCAjA5Sj5I#DqA#`ix`f4hlWRe73n0ZhF48B3V>>KTJFt`91Kgw_Ersg7 z@B}mbr25BQs`uZ~)gFrbg`aeBCI{^aP;n;2Q4Hb%lDbu)AfvKGT~7QW5a_Qx7sUlDi#SUn#}FnH9{q}Jg4L7VJL@>L!jo4+(#1B9bdH;Bv`N- z!cxX94%y6_wXj-0XXHXEC=$yX%?ABXFiX$62<2QTb=OlYkYcBw?8B$bm0kG`x=Ip^K7F`^l50M z6;Lna1M^C@FyIypqflkSU`WI|ll}``ch#F#XcHoLERGJUTD-aNK?!*KLk{v&6VAbb zJ=1tPoQJr4Vu-m#P05nK-;}`+8z?=#bpc~n9yl(0vN>C+X|6HFD9!D05#^i3s|E3h zl=*p-1wMW`RwHZkw4^MZO?OTiY}=$s-f{+;%BIonbb2}Czk)vh0!FLydN=%yOpueb zXc%BHTiL@Z;@f_D`NZWrc^)T5j_j>!N7q1=xgeHAFY+I`=z+(hE!+747SNl*gYED8 z-xOzueH-xZwbhgZGc=or;D1~zg#=+vN#1v?>u_X8V2-!f*)|hRPF30a{p~g3JjR~s zDG_pC-?Km3CZ);u5LMghg7@4Ch z9x_X5xdBX_f1@qBCfXdjB`b5M#vfkXa7V7>W{U@_t*U(l8r0k-780#I(n@K1#HYDg|I8D8YWhROaWFWWTUkt4^S%)H{Z0eB`>SXqYwi=11Hmx=Vw zwi-xN@y4?@bwE;S?&+a$_GpP>=OvLb6?T;uB=(1%kWMM z6g~C*7tdO2?cH<5cMS^<6IzVqA(cSR#7;4Lmhq?}4{mXeG$)N+Wq5_5`g!s~#~_Co z3_j1zx4}MYUF%9TwW6!H_zv!c^tJxmW#h8~RUy29ei}Ev>cvjG$#8AQ>^&^C9UMRM z+T~VB$cL2t7~lj-C{v*IuIlBrNiOZG({Kt7zQ%Rwy;;IzMopE-v!>Iw^F$en^22dm z2&j1jPv3~`y7Z2=b&U+>c@mz7QENI)RGj=XwKOS(fL_JsWc;o6fnB5u0F#^HP}rl9C|K3Lm3R zJl+#?SlPwa+3@Ix1U+t0ljxB9)2s%!oKFsxM5YBHe#KEeZ;(!KrhcF_Ca#S~CCBIZ ztl^@mYAP;-fotxc4dkmO)s23xib(J(I(9&^%x;g?(J3bcMCNzd{8iy2hLJl~zJscW zIK^R0!TR{=ifl!vQv{&?93l+U&%r*Qcxnx`%Sw}%mucGVXK`MRY@u^w(MK{|9()8= zb=>|Y>Yi1@H{8f_4NEDY)@X^bVoQWJf2$MI48F*bwboCUT-7Q__?~U!kYWle=Rg%U z0lF7fdDYh1rs2th1XzeAW9&X8m``82E2W|`!oTkj#%<%Wf)DLWa0@NGsYbcakfdOH zdK_@zfI!-L0vUkY+s@)-GhIw)i3G{^Lbt;*nFr&LEv1&alcwt7>kHFS;^uR9zGKXz zT)Jmd7jt`f+9Ms8W=T65zdWgQ#4de=xg9w`EoIqOh-$`^oT?3@xg4WoJv;n1%dUI( z5eRoWZo+RC`I(QKs%L<}9^k;P2@J3uv?+%m)At@lZs+c@&&LW+@NrCSp^xy4cfs*@ z8cM!0bsV7Lc?~$g=AV$8G9`aV{)OYXu}rb>nNAP#S1SoW`ac#n_+$fR^FK+0M1sOd z$RtbJ11SZ*Gg+wzjGm8Rbnae|sN_$f+Hdhn`lx;>N@(rl)M%zW0&Xebgn<_*nF$j`~lY9r*X;Lg|OVtJN{V!PBBmA?IK!C2($ zk{DXwfxgq*4O$m-{`5;o?_kxytE?VJh-WLmZaPvvmTOkwtHMmVfqu01P8|r zD`d=@iajM(As6%IMHu0b~8z#j3>zu=nxZ#IOc zefwYf*mMz1zu@C0r|ls-*l$tsIP6xscp+Z_xH7~I<1biv=03chmX=oS^-1(K-8VM@rPb>Loindj@%$?r5Zejyie$9r zz7nEw(`f)Mr3 z2u(koW%!yW`CYl4 z(+}dY)-Ho7Ni-eOZ&{~I_1(`!xmjduFNe8x07O7G2*?__D?z-GpM`|s?eY`)U6al-=d?sV2sDvxgPN4Z-sZ#07^v*0Y3L5$y~i(brQyd8Hpk zpsy~I0B=n;*O5dn9}PDfWYID-`lx&*EjYar2`L=g#4dMV>d+}??vt2kCN|2=TKlaV z-H#h+zNR9UoIkzI5a6ddSIFT^O>b$dVc%Z74&@iwaM zMmaah8~fH2!$2vGFaeCGslFVYbwdzf$QxmHvfyDUFBb12p51Wh=VP@1FQV-pYpmMu z&Exm~+GcO!AXU?^y&BF<)^>g1qk(Vm_)KV?r!CN`BWid)no%g>bNBr_)F1FZsr1nQ zHo_lfN4ft>r0;cUv8=**wRZlUigc7$uY#ZWOBl)-lS$r5)^#oVlAW$+;B@z*6I3i) z+Wv6^fgG5T`F%ssFZjJKP63~)v)6q*QRSmk#>Ea3XzHg?(y#bkh(-6+>1wXARR$a! zeVT-bpz?+;*m*-4qMKdGz?+kXCMp|1;{%=8R&BCh{FnjLj1*viy__HGV;Q5}u&;RL zxqHwVk+dLIBdPk^$(`+tL3_%1--Zmgi(y|~U*OGUR2(=n(Znw3xI*_FSJ*-zWmW3+ z3?D%K+h?WF8gwy3b8*vUWN+<-3u@S&Kic8eGl0Np-xk09vf7a*R`(3#;se>mwmKgd z>xrx0a1!$S7pKzk#HkR)Z%LG+IA0G(VeF}<<6o{MojL0$6M!7IW+W&qw_7{LEccRk z&y=r4v*bq5?V=T+o0lILB_W>A<`bQi=Rr4J>X#sZ%_?iE{y-vi1a-yYQ8BNiscyy~ zYd~?I7|HDBk6h^>KPiE>f!lDgjP3prfmP~RQQzMu&Y8So{Y~CoUJ(n1alZ5H0yFx% zQ&9)Pmc(@9lNfiSS0CjDy3OZ}Z@(OE`y7A~;1B8P6jh6}Z)ARAv_tnL&LL~7ctx$Z zyn}8LzIPK!Tw!PVM=#ienzlA72Fn{^VzAH-&HRI&ONAu=bTq2Srep2XX2oQIERF}0 zKYU95s+7c@=%;m)to`cC-?SABKP(i}5&`mf==7|U+oW5?oyCzcP-hEV1QOP^P^zvh z*NCjpzuS9Dfz>ev{U_4%up}&H2VK(^y2B%9D<-SmwrvE>Ue;Uh$r2|6@0|*C&+d3Q zU^Z9nj$`wMs!=!SeqIV#o){>_=y;FR1ee#9n&%v%(C=o*d0Ig4Y0(?+ltx$`=R23t=Gi*uA@5nTxRQ&a|Gt4%?;TT4kvjOM3u&$_*CTo!KbW#8>-`+a;<=Vphv zTI|$_x)i0m;GGuE``bzipYKc&@{pbS7`zj+k>0(gj#zYa9_18@>26W+3inH~Etb-6 zZCHl+Xfd)44jQQz2j+dkZEf%2)@)0(^~=fCxY>`teYEe-Qkw!17qLk#-eA`qOu0#C z)Pj2?5Z`Lp(-tU6T$w9<1$N5nyD-HV4oj5bmO!UpSO_zE{xTA2b)OH$b4Hl7yKr@% zI+u4k-@xX6Ww~y_uFH6@x)num(~X;88FuDfM25&5DD@HIQ!oJbl4Knylki}O7*N~E z`G-Iu17PwOMTe|1sqkpNFJ{oa?W?icCtpxlxpPRq175en2$d2hH4UHLE+R!WW%Nwt zg&AVwp3C7KbF7`*p<U-7!YxLlbjO@V|`sr62rQ4lX=tH)oP_WGefZ#*LD-v|}k z0>2Q2y^DUx^Id_oj$E<;AUgAV0x%~=-6SDn5@sHxQ4C5vLF-lYdZy_o1`Gbodbbvl zeF&*}V6s1*hI4esBV3bpKNwVtu8CXr`#U3v=KJiQAfEu=J0yW0K$3SD79nJc zrYc)BG2ywX>3epi*ft?A7?!vEBa>tkiYqv8{*yR)fxppp=~R*6^L{45VG+#Y%3!0? z^W9TKMZ|X@%J!U3uid4$()d}P%bn#P5{1r1Ku=v`Q#Nr)J(AC;;`zKdDNz11 z@zi}qnlkQLM;>&Sk(c~bUZx{25XPmns#L}30AAvE&>E$E{&FtMX?$cuN=eeWD~cOA zY7cr~3EPoCM)#r81e{h*`74U3lJ5WHp5Erv69nySeKqIc z6ARfjq1cf|5a-%pPRS)uQJ}c;S~oAnuR9Hn|6cNQS{XLN<2CNIU9KbUI23j^?PyGR zQ|HIjlB%MM(!QT(tMaEs!{Bc&h9%O(c=yUpn&S;dUpreyfY zVIzX~EQ0y_q!{hjMmp}T+o!FO4YX2BFndq^HM{d4qlazjWw^ zE72bj1!`~73m9X#BcA0kB?i0ts1bTPSRws7{ug(`n^uC8uausg&6m9kH9G%2k{cCD zMpG6ZN3o@Ro%;SnB+-J4Jw?zNxA0VV zV+GL=@q&2OBV0HjL3w|e6d}dfXw>}HyL5S#4N3$fcNC{DaqDp>YvEI3yt1aBZp5w7 zLw^xtgq_bp_t0zJ7rxxAibDA2?o*AH`^2NPs=oMau>XF6=Ob#Ma$)6*paIsf3BDElA8$w%sgk;F)Z z21l9?`LB57+;QLWS%a+cWW9-|!Q`>odA*4v(o8lvty|gZ$(>Xj3onS|Q8l85N>7Rf zYw5xW9j?BYJ};<|Fr1|peM?*O#%Vfl)WjAOlvR)`^-(V!`(1Y>dQsazSbKs7SjAuV z&nf{wVaw}lDeB@E-b+T4M zpD%eT#{ngMq!b03t&}Oo2UI5x+z*P*Uo6FWGuqGYx#Tmwe?t>6Dh%8A*w z{LY_Tf|Fb)RGiKt-V)C4L`AL?VRrq8D_J>7eEqpRWl2 z)|uCFg^>!SN2jcioMxnX$L_VNBmcDO)%PL!ULf`4N98MZio?#4Y8pm2;T73w%V>UtYsZxjA_DtoKn(-I!#1`o4S?3_!ieA7@V;sLLgd{ z28ea*Ivm7ZAMPwyjXzu}W(S4W!N`a?`<#V|Mci1G>H3kc0!mnm6*Tmh$4%g7O&R7&uyMjwsIRlDg4mnOZy>j`ohSfnZ@IZVaF zzIpALKQ;JH>!*fQJl^WX=RNSu;s;Z26GaOdzNwVM!zR0Zj#UIoot#KE@d%r=p0yE` zo3GKHYdO1N;5?_uK8nUnU$=~c7L6>ujv ziL(8U+xCQ^E$Ly4pFYrAJ~#}11gB%6+2v$dC*|t6w#uN37>u?jRExnufcrPKHRD{0Mv1@)=t!z#x-LGh(Z=_y>G2%# zM=M_j6B`@gNE(ls?+dsvz>LyIv=|bBorO;yST6);em|Smvv#HhU1UowwR&KjwIVDS zv;9|GMVqbty9Kr5D>xjku!2I{xfZR;Eb|qy)lFFGx)t!u>gXR7=?eo4FZe=za z=x=~)X3oz>8X@G8njaRBUuv~>tzFJ;o&3N^;b8j6Q z;Y{!0H_pwM3v)*>S9VouX7<~ab3wS*oia3V3dbFG&t5Ss3u`iZFk75Djx}*O=4j<~ znt0CFUT3b**TME#cz$cy(ex?RLk1@L47|c@*ZW^;SG|&Eh^lKW33-&8?Qqy`GFNwMggrT14WHvzr@ zx}|yY`=8aFi}7do$yJYF@cK57zpo*1@_ZSi_PB!+Uk1t9&`rlD9-F!KPMmqD7q-NQ zCm8-qk`QN@_DsWk082xI=O~eWhmk}F+`L>Pj~TfIgJD$62Xp$4N&}d`lxqi}%VcdA z^Nr9BDL>9%#VvNf^P+0&KAI?m|8}WUC>SswFhOhZ208bKItvvu?uVp0g(}i({i-#A z_@?|SjAST??apOfI8#CwrOZ>BpuwF!x?tsJVJQiVr{p{H_FMexCI9jU*-bcfRk|8I zX6sadJb6=`oS~=?{t#x(@Ui4C?%Na?**WLV+x-snBfWe)+i4NXQP7dg8lEZ0#NW^1xupqSMQ`_{H)RGXt3TEA}d*Y{P1$HujAdEnzT%p9348m0OO$|Ol;u2iEWBkN8{MgKy09-Xp(YqDh{Pn(wSveHrqQAyaEh6gc$?S4Vz3dkyg&f zHvmod9($#^-!5bt;27>W`I}E``FJps1S~@S0 zH!d^r&3op@;T+l{Aw+ub4Gmwlv76Y_P={+C_z9$~BX7|Z=nhoTzdbcZa^?Vr$Jy4s z-%0v@Meyi|4wlI_fOP_+b?dbW6FT~sgLFXEGF0a8&-Yl>!F$W2wFcxpO2;61Q`TU3 z?He1xbfRWqC` zENhxnC}Jyt4wm0}CBE18Uz?8DaWRVZF`HfUzQMZR!4)*LE_CjMvsB}5ddxYG#(qd< z36pcAh9CapS)y_I_Fj_AIh^EXNNU+T>&R=hs_Q1kvj}KjAn>;xCSyE2wWHhcA$Tl9 zoTAn1&-J_wJTKmitj6RtIAvHH>np*rtugXCF}A1#;D(G;-N}owJW#h8xD^ zgQ^}`N*xEW^Cdh|%zkcP;sl;CPzDF|i_3bXwD$Jrf68A)!SWo%ntg;E=61~=j%|)b ziGt?EA3#P?HuIA#(K**%V2qm@1=;a`HTXLqxnIFx_6;BP({g$Vi~YGkbN~>tj>Kcx za?^1sNbphjJ_s<}%yqf^mzRcfhOy(Kt(VoFNmZq5dx}s=5Sk?D#Q|c7I)#tfF)lVR$lx!YT-9|$I}ns;F#e4ahLwPd*Od?>wgykd_~1q z3xz%`dpSc^_?mA8Pkc|QS2R>sHGF#Sbia0^9i6&CCT=SdVemUGWOBLKhQ&VY;HYg> z;M`w#^>cXJvX#h=cstYVL7mgm+!(m<=JM&}#L`gPMbt5OOp-9g zsF~%P-;U7H>o8}Cl1i?fI%Joj$xVLO+UhJPc>_sd6;W9*{*5y~{$5AG=j#G}-XZp4 zEpv;A+Hip!ug?*7m631;hbq&9Cz#v7%ilBso}?d36T~5>w8cTf*^pT89BSTQGCQ!x zm+Z!%Z85TkBka+iGr8rmWlOY(hH-k6=%M@Z;Kz0;V4({_rd>GnA)eYzNWTpUIyvFH zJ;gCMVsfa!1Yo;8&&Y_X?h6Osc>&_I!iI{6vFEu8ogb`dYR35ZEF+r!fUY_?2_Tl2 z<&?+{+G3-5Q7jDccJ&nizj#xZ@YV-HEw!S~*X<(iK!()xy!rY0C>6y|M1M>VPOGbr zu4FvVzLL~@rp&-tvmO^a7A&J|+RZ30aVQJtSrkz^bGCEoPMu_g=F0FEEqLiYx@Po* zGj5CB8b6mEum~T52{!Az?(|cC|44Hp+$vQUVYu8`u@Xt4ivYY873Fze$_p^px=F-d zjz=h>qT}PzE1*x#+Vm>XE_PKIh?x}!)EAiZ<4j|{DsfBa?|8FRz9=rRM7sWvDiGgT zrt@l;teDSMCv#FFX~};S>*VlX<_CE&Fpg2da|l%72Mgyn1zE?D7WdPcwv9QBy`&8V zId%Bdh$FFp(`#av7=5gdp|tmhw|Idnf2#SOVEBTez>2 z%s5y6h;fZ~_C6lsjP}>@^?8ZSwE6qdLaGWw`O4EdH*gk`^my*O5%8C7#WB>F*fj?e z34z}QTQ{lPg;>aH^DxO?zUOfmL53Xdi}B;GVKl|y_apG2x=b8g{4Ill!vbh){;{xc zI9A*tPkC>w38UEE9P%(F+6`8+0DpdKHi-Y%{aJ-p?dZLG`6g6T1?GkD+1Rsbn#GZM zEWZJ%j=+jBLAvx`St$YYjD9_|R?`p~sJ_jkXJNCBaNCMAo2xMTaB^9H-ge|3bI6&_ zJ#A>|PGnqv^()o#aX1#dNn;bFWMG{v3%}LgHZU|*m7Y@#Q-(=W_T(|A&r^*DmXE&e zHGyg`#D^{Vi7hfWtnp_6N1~cdzc=?x^fkVdVzlEEy|ObD9oPnuSw)$SQrCKuYwxA& z{oXA4#?a2?NT;@`U=K;-lA9Hs9;Y?4O;hh1-`7^0mCh&_V0`1_81Bv$md)6HJK($3 z_Mbq#`+HBDJ&*c@u2^OzLM7dXWfhOup;rC`v)3w7K%sKlwH=tlL+AcPCFPs1K|geP zq8S=-sFTk3qXUm`1qRQrr5RbS%hE~_6RN(On{y?~m(jReW-AfZkh@z~!q{6a$}zR3 zoj;uP_j9ji9Z9L$mKCFUiJl0vIZV%BVedvNn^{NizeOBHTqjsoS6N(fOgwT5lN$6ETK*A9` zvJuNtO><9&ovtIxFG(ywMV48PB^=G|zq`9ugZJ+jn_w%#T`fJy{$a0ggq;elcUJRI4#d6 z(J7pyYG8N4)n%2y0KwcBizeNOE%V@~TV7!+feDyjdfZo#YZ+_4e_>n^G(c3hGSaOV z3h2c=`|%{rM-7R&@!yd@`hVLEo}f< z{sruR6qiM&FD4B9XsB(GdGsCrVQ&F4rlHt$y@fSv^6EGn(dxOY$MgH3fZpMHB;=vb ziG#MMxI6O3QQ9@*L9c=f+5v+hj|FNd@nS{v^h)FP0P%GuCn+5wIz23wu?809L_ry~*`2=O?g_ERHdS~Q?y;j{L_l^A- zeZyQF8!bgW_SqBE*=s z#_qexR#1fKw_F5npZ_C{#C~ye$Rp(1%hm94-a3w`V$quFgBN-xIco_WdPQCO&Q2SZ z>ub6#E`@}G>4D;}(PU9{(AV;jN=z~T@`p3ltQ2m5#Emg^=qux)nbdpM!i^Odf9vT| ze-@#k3R|Op>*=B}C7b)Q^ts6qJxgn+db(z8z=pKm1z8qN_&TTX5ts6mi&hn1lgw&G zl*l!Q_imd|cGKv~MXCK&uWTPqLry%BV%1nBxUvF8J`ELLvW=pCXx+K@@+sBNoEk>p zYt8bytMtj#5%DjmzFd94jTVS_9$;#bhBww=S>JRcipBEpL=3i>KR6txMnvkmF~z^*y-1&3i#uD_6Ej99~ zD-om{6MHI_2LPcL3co<%@7f%jKWtMx=Gb63*HdhuoxRi0nE%AKUmQ)ZEt{Yq$JIs^ zsi_FlWYm?~TfSG({_1X*N4!ea%E9MCUZY}Na60qwaU7Oy%}zASkd+ZwU;3xc;>;wQ z3)cK=C_v!-a+zmn?K)2qhGcp`Ym>>vGxo-E{wW_VFkBsBqMo}KD+p^mk@1rC9Fr%j zn>Uv6oNDIqwcnGk?djyZ<}Wi*rC)T}qS)&K*mCPI!&=T7fsd<*qeG2O@<0eX-%W;pBshjrR zDs5XZ#^2_PMu6tKs%W)Ue#Y!O#2LTQr!I$Ex^wk+fp+G;<86^jK2Q}PGDn9x6i6JFuSw$0(Li)0O{6srO)4{ z+UXHafQ*-odorQ~L6E69Og-SfX-^I9yJ6v}BA(Rf(YNC+!dOd|^2esc1tsWfoxu%Q z$MI`GQsnomm7Zr$DE!CKz0E#6(1hK?^jq!3A^v-}%aP4A25udqlWAD}ep%MCL$vNL zTGLi+gbWsBfyZIRqZ%8qzy8R0BiS%XTQ0X{%={ledJ6Q=hHP&S8_GO_{Dy-XB4{&6Ioh=&dp2>-Geta z;$&)eQe^8(6mO)xEPp4xco8>k+7G@?zh&GSbaHSB>V%r$toA-)4e;TqBBKO)sJfRq zT!j;ja>M#JhnwxP4DH1Qk}C=s*eq8z-na9$4BRRv00S4pgU<*85@^G*Ci=O#+>CYo zluBx6wiG|dD#_AS$+K%BPPaocqwI_n^s;d^y}Xw@zWly0KMOfc!Fwjy&LDid+yZi+ z<(yZ?7h=M4_uA&yaIkU>v2Mitq-Gj6b+$oMQ+~_O!9^Akc{E%a|8~@P*IUU+N>EJG zvT%J4ItH*7Fw?0?0lW9KOn=W8-O@~s1vjF0C^$RM9gH?A0se}e;r^+?cmqO?tiV4)x+nHUh7DFkUg)!g9)hOk$KKF zkHrqYTVBeNvM58bmNG424`qY30#~U1swkpK!zGU@MulS1oh@&PXya$WANGa=atx0N z9v2!GFu(G3@8PLi_xg-dCo9xrU(IgL{Dj32}{g_UTA97vx=eYnY4e5e_Z9n+vb+&G{dG z61s)qe&G-HX*c&n&qM>Jf^SVQj46j#lX~vr8VpSmsUGHFXFvK1JVE+oE~&A5qU=IB zhA1&wLPo;rKi78OlkNY1{(N@)4uecyFnVzp^;Y^y2FvC5-*UHjW@46|*+aLytyi%f z318TSY98|@Zu)4Z3_E+=cHM6}_5UB2mb%t2gjgCOxz{-0KU&X!qZ` zk6}aNXilyFf2yOFUEbU$mugE+<8S>vhRDfC5zicW#iMivdL6DGK3#E|ylmD0VE(sc z1+8@7vAb5+C@6NL>_iPfLoU0z<0`eko~fPIzNg9oMFaysGtjcQ)RfI_0Pm`lcxS!oLQWQrtp<2k%vbq+*_ zr5CyzF~|U-zKt=VMmLas_)PR^nd0uLxC?$<3|RkR-c~5_?KACOp)#?f(1Ij1CRH3cDy1GC{uD3d$a2FoHu32 zMp~D&ItCr%Y8M+9818zGM#l0cwIZ=7XkyNv8vUgbUG1n%F7r#JESq7^?_!7X;=B_r za|*odeEJ76LvY`$A<}3{X}CpV!*=MoQ$ow5exsI+@FkA2MSEfnWZ&rdOR}@>pubdE z;ZMRacDwSaf-{4f0z{;7qD3epxMosJRo4uV9s2o3 zG?#axA@1o&D_+V4!m8`)TMyY5Cdv}>)+-oC2nJvn65XAt}x^xOo z=WbRVpT?6A8Rm;&fBulUjBaf5hl9z3L2BnP&^uEKpBpDFuP}S8QPHa+mSW(`WH^!= zq2>CmJhPwToe~SM?Ckfp&CB(z)7$Rv_@UgLq#i6RKJXgxQ>X}n zexVll6i6FF&z_y}`DEsXY3wA(9z|Ew^X+G`2yc^3gpgSZz`^f{xvH@D2)L7$+>kCdM1xNA% zu35&@$yTV!aQytQ;{70S8sV+XF13V_|Ch9S<@G$T-Jpr1TkV~-!9;G@Ww9lKQ|7{9 z1~4{vf3~j;`+N03Hg{JWKtW95s)_#261Bfl!q*sv>t*SebS2C(%u=qm07cvP7umlh z4UPE4nV?ZLGrPx3c@~7qIaGsfrV_bCGqJ-)uyzo+=j7IU`8GlYh0xK@S1P=eQS=8T zvK5rZuV09+yRY^z3l$D^RVnR9LVf&!q|v6`34WW7po5Qa)~w+PuN@i1=;_&8rkg{A z&U&s{-hGdaVRpz3OLki$WuQB`fM@8sb=F&nMLAmKK&E`tTrK`U$b4u{(PtsD3l}6B z{QAs0^)V?PD5URf;X4sMB&k}cq&$bn0R>g*`(ki6<=dc5EhxMcHQfTKXk++lZP{*f zf0fE>lh0lE3@c4H_7G%L9Q@wKk_fmgnw9$LO$`Q|*p6|{ds=%OCK?6{i1qTHqTrun z03FLWAxmQC3poN&@znkkpwYz%>z_$~w0Z9Goc`A$ zDDgpBbkNI_#TU3Z-3oW3nM$%c8>6hG3RqhpMz=@3z#+8x7UJePZ#AVKUEgGS3$=Xp$Hfkzq zi==thL6rNOpA|bc*E#0ZTXIB>k%&*iBB_kG&u`_u+H+oo{}OOXmcYQcfI&ib&{tQ2 zI1qX$?#p4`J9u0Evs;Qbl3gzCD`a{R>}LEH$$>$TT&C(Ap2wO>3t#j(p$vmIe-}Od zCVA~tr%%Vbu*E%&aD}XeNBVl30O4R-;{Kx;jvtw}f;$V^V?Ld?#`H0qzY6p*p8o4z zbMOy3j@?UDfl27uRW^|YhO-4c9e$7v=z~hJ@0Zt1^w;}KjjOrIu0lpp$HYWSEj`xh zJUMAp4xMSyRh?GndPM|Kh{^!Lu^HcfBYId3dOT)qYVC}2yumk^yPQ9BtvTk50N(rurEz&@IUB>LZBoQJpT z3FmGLdJE2~>MWcf=yBG~to44sq>jUP!@q`SF2rjP9i_#}LdqRQPPR^%k1J1Ho{60E zcw7ph5owF0@=&z=_ct0#t81t5BL&U9NB{ob5yNcvcg!W~{Mk{bgU$V)`9Z|Q=?W01 zTWhLr8Q1RwYx3Tu$XbolPs!WA9RL4h1^(|I#y?-ke>!nD)A7l9wL@46rrYyqO`0rYNjrV*U%yp~qS{euK z>w?dgb15uqA;b!i67nkdVybph7E5liJg0~Y(peJ!HPMUlCe@|K@-S~uDmVRUAI7!s zVCVd&jQr6DS#2e+uoZpOimsW;m_{NAP5(%&gacj>uKhh_kJb2_zI@B} zcY295?vv8|O?Bj6|D8l4n*Yt>jT0<3Xpd#%5k37u^xuZrxVz-!X9|WNsY(Fnd4NN} zwVx9wHPFj%m@@JoEOW%T9LNuWU`)Y=eOuVqIKbZ~MPI`H-fkkEr#aWJlHjlJivDJ^ zpHlJsO^b?_!yMNKQV)BAE_&uOZ~aV=H=dH6p+kMR9ATcJe2H`7%DJORuq%D zsNVHM#{?WxGF%Erro;SV2QqD$11vrb5Ptj5#}i5FE!UT=48%pcHjB>ie>O`(T)GY= z?#Mro~v zISNvE0ni-hXWj?yay0qv-NhB%CstND^jyB1in&RUqh_3M*N@5)p$zmlqG%V{&bl!Y zt5j!`X^UxCtCl4g44%p~oy!wW88@3DRjU_2ToWpX5<6zk&65If)lHb<0EG2M$M9}m z4WU|pF`z@%xnxg@lNNrq9F@ZEso&C zCp_#rb!vw%|5y{M&tC7v?)<0}Ccs=iniP<(yP|4PYb-1=Ystro$gbpmG11)<_3N8* z`E%83M?J)2m7$si+H+30LIJo9p{MSADdTE{g07!3&@5j`7X)g6C_VZSRgD@~Y3^Z4 zftdDo*{0QPsa0Qsv#>W(VpKrba;3#npk)$Im?BIBsaYlLAt+zoFLxy_<;m38A~n03 zzRgXgc{miEIIQwn2D=ksJvzOSrog#YF2jjJ^QX|L_6{0dLe37-Kde&w(izs)CN}1U4rnZNar^wQpzt1$*lM2hWa`dNZyjM z+nVhA@4Y=Z{OLAplch>_E?v_`xWFAAwrIjIqX1L_IS?yQno~L)j$}+~gS{Z2jm@L5 z=)Mry8dv-lpTsG{(fl_uwi#;Qs$b#J0U1=s1R#>v{{np+7q*lUH>;^~IGWC2lNuyh zUWz4dewT_VdB^auZJh*ol*cAa3#YUsaL`W=#~HKu8v0zuqj$Unt1c?|CN0m7&T%*Z zHrg}t+qW6ACo9KnS(|eB&AjM&V$^%rjAsf!!)KhyGVJ|ouJIs`@-sAN_36*xT|t=C z<&nbb;gfi~ZSp7h%Jg{=6$e7QKJyvUC22z>#|ZXro8~SvBwsxVSsCqRclnYwl`aS) zz`3RjR9&$CBSx}zKsY5oV>r@afV+{rU*1qMv~3@^J!-09IjY@VaBG^M4-vXc6p5Q1 z4otEizFHSdYwD|ouvXxD&}f6<20=&GND5i&z-fcnw=~2>`NAUsNte+A)O;M`7q6jZ z^X7z{oM|(ZJFyWgK$Eu8K!DRO2I!Bk|j2 zXYl3z)dD=QmsS01*<|3}3iKV4McUk~>_f;F!vgF$s!#nqDFQD_b>iC;7Lyf!XGMB2Xp~bYPgs= zGekCqJ^bMdSpvioH)YHq}zL$`oTfB;%DAvZvRW#gifqH)ks#RT_)Ep5Ih_`_} z-@98X$;@*NaZ5tkFM z#z8!)V;s!(+gDo-I>gO!LEjwD_leaQ|^I2nP5IA!@n)fzYDkgXl}?&d69=`ALnl} zGU>?fHO2;M*I#I{MmmfUdeUuv&qY>GaaeMs1bBd+ruL23fvB4&C$(;EZ&0RJ zU?YUByXn;WmXq^#;%zf36_YEOrlFOMx}x|@H5e*3nQ&;7y5=e=SPJ{#?|p$Y^SywT zC4vg>OSM|$n^=lfY^?_E1_38BBj&wH9;ryfOr~5Goru521A@$$8%wgz=P$K#Nm9T(x3hx(XQy0uN%42cl7+BLmaDOJ=HYk_;GlHJ&m{F3(^u+f4f ztpC{c>ys7vfQ+R-3k@dqMaZ^!{b|?W3<}he752C8{#N60%G97xMo;%{vUE<3aN&N| zod%2jUGUk@9Sgv%`dIoRWZJy817lXueTvlmgDDnNi0H+WjZcz5{*fJ6d0>#$eWXW_h0$(vWBefqnjj;TP1(zXUj>!X+@h>J82bG(br%b>t6&_5-^;eH)$TPdw;OH394b7)qcM^f~T1 z-7VUkh>QFA0u(ajy1j5drpDr{odq?QD~cg35nO%F0d#jbh-&jb%~f-wj0{K7*MG*d zwA&LZQL`0!fjawfAKVfySKml2h_C@SlRvmRJgR&5slsb($_^**+*ErqpYCCRD-aln zb7Dbm-TFN>1Xe`Y!D7VBrb+6&(e3+YLHc+@)-Oor#LFO5R&{}De0FzUS&-CO>ul+o z*Ja>s9*1vvB$najD)A1mQUZ{Tfv{Xyz1$plHuf#;q&#+IxSy2(c7AcWYjL&}bQw;_ z5ycQUt0rPfG=q*76s!^Vq0NIS>_^FqY}kvn{_2fnxIga$UCEp=2m5l?jNS-==BV?K zqtGU=l}2ck@xJP~GrdT`gj##Mct%!)fbX<$rc});cIx~yQ9(vE$gsztT5J9M+KJ&b z>L72IbG6tl0aC$xs*N4-k`SsMW;ePdY$1f4;4uRY!n&L`XtJuGZWXYbr>?_&v)Q|6 z4TWnpl=bj)!l7y^SJ-Yh#2tl}_oRP1+&`F{9=P`>@sRF(MS_P3-RJqInar|ANmCKp zV!Q9`0W`sa&O&|pVfChcwU{K%lmFiw&kvrWlS}Kj9_;o=lAS_op$Ex zNi%Kc&PK@%bx!RPQ~)``4I6U@bT%l0%Mca`Gu)dwrJnU)6_#0f+b*u0w17*v2#098 zCsLJQ7yT>u;1!%r?eaH+kju`C7Yn07p5uN#c`e00B0JG$NrPa4_&}_cDhyNOJ=X9p z>&`ab7`36$1sQMrJ)uZZyrlD_r=eS#;+f}U(Pg+9z=)@IvK>F)jzxCSOg|p>KQTVJF zMBgP7=X8d%V~$COwdn;~R{Fna7k`7-#}@tQ6U#61uHJyI7OJkSu&k#F{&wC6RpWi9 zmwIar4?k0082H?35Uf?k&{nx_eQZ_gSILT!H_Ag4(9z5{YbI|-u?n|ihzTaUNw7-5 z)AZ1Y1>1o{C&Gn|zyE{`DgwB!p*J|zi!Omx#GU^5Jd8eSq44mSe%{~D0 zJ_Ke(Y^?}IrQ%E&jO0%uw2&Wu22O4a^^KyU71sW|O>`!1xRh?BaJsT&wE5nEE0yO( zP5Un@S`OWg!MW%SvKBAQ&J*o{`nbgi@2mo+YYX$o18x&sbavMt_+{?c`FC}GB}FhZ#fAoEaD%$_>EI1wZH(;p z-d>aK_Ex5KEK1}d_{cJdSNaz2GP-+9ow8q)x}h@yPkXr*y%recbP`WE{UU8{=c(QY zTxjSrbrK)E5fYv5X&D0Z{(TnAy_HF_nvT4TZ9Q=pN&;{6iCLdP--_isrP49Suv|ok z9vVglD#~2SVT7|TBO}((1Pt*qG?}Yp44LzF92W03sjL5yQ)nDx_m7bK6>>}ph{@C$ikg+y7{Ot5TCM;tOxLP8pq6ruBfD)&V(u9BhNh6S zu_7#<@u!ZwvEHP)_)dPqJJ`}4to_t9e|-P?>9gQKf4x8yGtIAdd&+-VuXDiPSLSE7PCUt;ZyhdbR^4Ao9u^xK0hml9D9V%Ob$y-mUnl4HbJ$ity>BoSX z+eAOD{~LS#e__u5Zx%~d!e9hXg7|cA@0Xw(e}RAnyDOa&(8rUYQEph%O}Ig%J)Oj7 zY(G3lgv*h+!WKwy*X>>XqNbFKxXy^L>i<80g#Sg)MOv>#T74TB#oZp)>@G_000g3@a*YLvcu1dwGf4gJ5V*9SU*-qUS$Rg=ebbl_Q;j}5V zm~A7aS{b!MlUezJzQlbN`}-RGL%05d%aySj^MwaHFRv|`9AqA%p0=pq4C6VpOW(>v zjHRCcP{c%Hdw-#=L&eF3ruiO5wCN#i1uM%R^={djaFW?To$oAq;sjG`B-0tof>6PR z4V~v7H6=v-H7Irihr$w3ytn--6R?BeQdMAs8ox|6_k4XbpB&7p898pfEk$PI?Eiyr z;P5x(Dfw~i$A(JP)mt`02cvEakxaz#y_Age94!Nad(eK1=p$bi`JV4CWT~v7slj^D z$X8nnEC{jC*(2!XGohnssUfxWY zY42zjGi8yo3?N9`88UD-q!pch2+apyy$}YlhK|GO_Ufk~i>Rr!Dr4S(z;wou zui-YnDt3NK2Qa0*5`Me1M@dSBA`;6j2&kwiG245pnOBz-1W+d zTCW?_7yyNqJGnbU-HUh;pCp-+OrC+$?K1zipk%B+&Lp6%7_<@y1t_NwT5@r=ma57{ zQ!r6`sc0+LE``W>x_3$3&T)`xjj4Rm5Y=YA;aIC;s&Fr2QXK56`T&A5pwpj& z4_60Q`%XVsb7r8P6>Vbp0`{`4QdX8k{Y~<13s48Ky!QtMF1>mba^)s?F&8euZ4Ws0 zgesCZHk&zl)ywsB%h+qyrDpGt5#|nd+jw?rdYO*#78wz=qb@{^tTp+3l?DftP^>S;hs%<|eWM zQc1gE?5Q2zE)^3#QN9c98}XsA#0QJ*UBgT&PeiNs-G4~H-d0X3C*-EdK((JfN(vk@ z-o5qut{8VL&wbFH$ici+slHiw1T8|3PYFbaImwrEGYAof;dt>6KF=#X0JG|%7J_{HR? zkfcTagy``byCV|NJ?JA+-Fj!9Mu(4E8G7j>no?(HbO+xA(|r~Q=EZF?SLWQjeVIq*q891@CaGY@ zz^BTBJ`Q-Dk{m?n{Banb zcz7e0(t`vL`oM)+Up_r!t(;x?*pmP$gD9fY3`C^$P-~sYTM=>l3UyKVUSuCy{16i%Xn_Sx(ZFv zBu`Cz*oBG`{%+DvLhWzWWDw#oeCBBHwfT|Cc{iPe_l~xyj+v;@%3iRpe0pB&bn9c- zK8C!)rZ-{rhFE=(8|x<@kq&3jL-8c*%9RmFtXQb-dmJqQJi>j*L2FVibZ{arTdW8S zwVt!{kF?c3(`t6B@1~s5IrF3-KSCk`3c8Lu%`i15C`ucXepJOM-dRPKbVwKpv*|BA zniU;SLY?hA6K0Qmi&b^M+LV9YVhenJ7V&$%EGv7S?Y-%)tN4uMK>^Dchb|z~+OcG~m2#9(2XK0^NqSc~9%-%qD3s^$_b;2&?c+SPXb*`*gur zH7;AxT-)W#DD$sCMFmeMJ%iK7Id(bov;ycO1fN*(L3nImTUWp`YR6S2&Ir4|j!>bR z`OY9%8yarw#K*!_5DoN{oo%T~4N6yay!Zy~BYz&@iu|=fA^A!5mWuHsRo;}9H9qoP z&Sqk>ZuZC7Ph)XTXXV_xa=L2LQ-85HgGxHyAEGWat+FEX^%y1>hWBx_U;vJdECK8gD zB{iglYt&;MAEHK@qL5?Q_m@v`fqoka@_4n|L`8hY_11GWp6oEwyK<-%xlrZvLXO;E z$;l``_;lw3rKvHrA+By~I1NZOZH9YtXXxl7!X=l8Q`aY{1?k9PIVxJwRQW9zA%-(N zqK>YgqZFMvstNM_g_7#n(dx0=^VQ3f)1XmGBXdEX26{U}rBHPO8c<}VM9&wgz%iTz z%v6oV3T`#o*26iyg_~p$FUp^hWEB}I?QHr3%xloEbjK&q1a8c1^!cmV4B1?^4O4e} z%nk0Jcn@KP5Q@X2IXO=V+Isn6j$^0t5n*>;3g4@(CBeM$|7(q4ZXPz?DE|;vVtf5# zHHT7Bn!zE-KPvdg|3uZzN##@rodgB%6kZjN=pLh|$rIWGm9~(NUl5XZ3OUGy|6kFI z{|!0$AMRQw;2+L#Px!@)RTdi>rJ}v&9ex5ek&5ZCERGjt$Z#djl~g!$AQ4J+c+`)S zhCS%7B>$&`r>fCwk>gc{!yzejuav9wlREUDMTbwT;bH?|Q6w&svt`5hug$TL`}*}s zw)14C{Z1%;BZUDPBlbvKt$2L2OyJn#u6~Ck=FIDTc@TbzrConqE; zlU0)ZIeMmwiLY*o$=A*4VEX#I)a!zm-v>1!=UZMU@fto=)|=;K#W%s-)|Z4`+M1;y zFNaiEVp=%MUophu^cuY@8^J;_k>Dr`;znH|;l(7BG&?cYI-Z6cgU$+4^0`qd+%HVR zj;;IH>H#hL(w59GrKTc=))y!iVw&iaB{ar2uCg^jps~cl`ZiMDs0%cGjJA{&V(1tk zMA-Yv1fEC^>mQ;PT4)8feRtf1iwHemAdI|n)=HmiA7;$pE){~e-%>92w1ZPfj3(C% zfA#Yc$Cx#zSS_hQ4Z)d>zcPN8N**K-aTq==nD(6QJ|@5WNK_MS`o<LQuJbeIw(e>Ek>1Iqc8Fp1yq zqCtSicGk@UEs_96h}#a&max;j#dUntVVf?8gaj)|7IPE`7{7T@&QN4bqin!pBJ+5B zm@$Sa`kXUiE64}IzH}L;<|6_RHbUQ21~_KXq@Jy1lRS(gLq&Z-rRzzaIH*m2R_uhW z#WnL`eGDF;qmOnE#GXRunA|O9=vwfB)weW;duMv^7AoRDpU*qk-59wQfMWoliBArr zJp>_weCkEa3{k3sXB%-UpXgPPXZHuG4}?f-UX+{gr}zM>jQ1kEzow~_$MRKqZ$AjE zE@MBEQQQ5}w#XZ<)x8TY>Drq}6khu|KI-2Tmp0UbA$lp|t2ovRo7)t;Lksj(kJ?m` zLymO@e`ClOQ=MA2z2T*qos|Nq%8fle9e8C2CmT}lO>BVo z=}LeiZg|174JlTVdOIZF#R5{zCH&I*E7i<9znJB!-*bclh02Ay$r%z)(fRQ!N+Bz< z^!f%&(m#o61;mQ0O3-rE7nc)b&nx)p#_6&-19@142e;lqtc&~@)|#WgR{Oj#I-nPt8N(MecpIuxEJ zG~OYrAqNp=W-#H=joX2$SSCG#?FM#Si`o(iMZqvIzHIe&)QLFok<$u|lw|pI$Cmq? zd3Esy@V#0JR?72b7JPTw<)JyzkRZScvYv%^XSacJGEs_q+# zy)}4n_`zDF zq$?7!Z#*X1CBLKyTg_W8cxvAPXo*1ZJT+uvUK2c1&v&jKLr`7C z##gtayF@P5e0RTl8@fZ^4T;F?8I82qEGl$l#`yGdGmMC#n^i7(;q?=>P<%IiCV&d6 z!tYHV_+mp+3=ry$Wmiz4S~H`&v7p+*VG!!4`rwaP=WUma(T@DU4{{#G5sD_xP`@iI zdEX$=$2&hPAJ7r}QrIP)u~#QCY?3qK{MukbktEsPQfg6(8|t8GM20kRc~32|#HoSY z<+&q`QwFC+{os`U^io`T23hvC#}7Y7kVIP)PYYL3*{TxN%1axUOns3 z8p06;4bxDz?UFE_Mi9s{iKhsrvf%h$s4=4N$fa%@O*Q#FBKexvLn&&Dv@Z=-te$k( zB&aTB36-?cN3wR!f_7%Pbo`xRtCMs6{3F=?*H{MCOxGD9_m$O{y0(pPSIQ6dW{M(^} zsB1)wU^@*kNav~IK@H6o{XH=y*FRe`Z(BZ?vzgk7I9{3-*ZzQPhg4TLI}2@>GEgag zZP|ei-7beW4e?_4JOY!HY4H9Qc#gYF{zu`zOyGeS4yKMWO=#IyPK7`YeXKU-+y?rv z_}8`63g}LLu+M#+ymF<%ZYRY6pPwbZf{+O668i~0v>AHV$OD)a*Sy(~8uXdx!s<&0 zuWlKIjLC+G)uD>pvo6L8FIHW>`$+e+n480eeP(g29cOgY6=}t+;pAp7$g+hy5%E7D zz1-eEgx|Ke3M^)&aJ;h%KU89!&)k`ympF96U}s^&c8luApX3&1WSf4<%+q4;_Hs+% zlCm6b&v~Ql;=rkOVxE2JPYy%Fd9WDFvWlhi!Su~KZFs-6B6BiFvCNuFTw>PE$#zLD zG#L;rU^xtX^@XxRC-P40X(nyxNsAM0s{8f15ER*!h7dQvKGmBvuM|#dbsjRbgGLkP z0Yf4}LQla9-pK?~qJj!LC?x4W`-yFiXrNw{wp9GfH;m)|SIqf8{dw+x@J~5a_^UOJ zKt6r?bdgu~nshQv#OXqv=(#s&w)*3L9`pacZ`;2^(rL9}j_;3LB;1yQ8D}mt?&3DC zdb?sIa`a7|{g-qN(a_i6k{FHhWc`yRU%rizrZtIKP+)_P6q_{2d)Vvs*#fbvizt0g)D)R%OW{2ky_0*8zImpZp>4uh{;0V8-e2!8b8pz0PUrCo$vv>DI{i(YzOG zpN=*RN;X|rWN#tMV&ku9pn!0)pu>i6OB zN9*I$ECLm_9EjXKaTUM;Mh$C1gx$jSN4b!?5 zf4WufEJSFoyJO`q7VVH5-0O_ZFMc_{%fRq>*lckwm4&)f01EoG-w;O}$6yBT>Byf} zdG3K9$>!aK<8k%5;a^$A4g3@qgnyBbaNM#}y>1o1EK%JWn_75%3fQ3GH`Y_DXbqlS zS?Ze)<6p(DoZ>Y@T(f`IO6T+?a9PVAT57M9s%|(97&7^{8CH*%RRyik6%1cfVd59B zlr(-K0C{SKw|F+VC8F7Q-1k;D?j}oTG|TLG`>WQR8mC0NXWy)>ybH9_Y+Nc8(+9Fn zl@hHxIO|ce&n)exA3aoFun*rpLqj?*T}rPIHqs-G<*PyzDUUsT`@LzmZb zPr)Nh0+Q*bSmceGwb3#A)SOFfaooYh`=;LJODAVW=-1!R=2<#ipppcBG&VKksmL=_ zAQadZOK4eNqrTE7bG7be#tl=aKceh=qh&)CJ~T8{ofdj@YQHOzZtZM{GIAo?9b?5o&xXoPWM%wNvT#D!{|1^r-QBO&4<@5(AYXyA|K@CYIZl!K96iY)qE&TfvyMH0_Y=T%o_jpJqdXU~6Xq4BrC{7+gFN!?>uJuf<-Yyhi7grK z7$NU+`+j2W&5qEh7|J=&#p?y41*T`2Su?k4+|Ju=x1GjnaK6G?9^3Kz!VV#6W!tysx(sN# ze&_97WHgAM$x@m+v|CjV-|Yj7bqyOMH*D~bYyXlx!nPPc&9_o`QbR9Fu2&CM?MLpUWN?%`S6k z%7sqa_>^2`md;EiyDNnI#ar8|HuP~84iJ8=+8NLek6Q^#wKSjTpNFsaCT2?wtZ zg;$GZdZJm_-UQy_ZWRSbZLShdQ!)|hFQbo#PACUCf7J9AI|YEcueJa&s%*VTM^r=Oagwaw*LncmAe znpXkOwF{A++Br_kq9$mi&@mhTw@v2+>r~ZB6tPos3;2yC1B>~)Z!e~^Ln+7?-gPFC zriO|7BzKHzOWJEn8QS{Xp&nla*t6!+PZn_KyIT}zDw}xNtzSUMjk?uhPOabBZT>qN zEbL5P*!-rWW9wPS zTL(X6q#sar3H9h~o<30lVK7@5KiPPdL`J5{?p+)LlB(ehk&JNa52IZ*MQiP*y?JS; zzpD}*39^FguFXzJ8Xq~MqQXkZK_|;@CJMq)}U#PD;y_6%% z>4$ITqT-mdi#EDA(O%p^wT$sz@*{)8ogrNO9T#q(qr_Y45^>cE6RpW{#2@EJL_;@G zD$YXrbvx|w#q&FAGJv_PAc#69cZu}ltALFp(YI?hdF=7r0IH1iB{|kgU&ZZx{XS#} z+dF3|AHDC#&Y;J)xsIqA#i;F*<{wX?e^brxCY&Xp0{Z=GpQu(`kP9f8rRzWi^2zL+ z0!WwS8ZKN(p#!PIwePcLUNx4x263$zxqu@v##V=lZc(=`4LXi`7c+kS3*<#r7=sg? z@*N#2!}^eL`=RPNI?bIgI<_1<81_vG~;-_)peS}uVI`>UrNcZknK|JJ#%JP2-?`g!5v z-P$@loRp%F+Fm(Mjp(bX>)6eekoR;g`BS-~(R8hVlIRNO2OWra4nMYyuQm56X(P}w z7!3}lOz;U$T1jShl7Ke{nuZD=$>2?;9ze_8gNBD{k0R%P7Ew+2*wY{XVuni3GMF6q z{<^t-L18!g6rS#|TVa}H@2Zw_#lOeDTt89duz)DXS9}F?4!D~I1ravz?iI1I_YG@o zBMFLUQBNx095BJcZ0^0{j1z#FJjJ<=Rgy{7X?%Q1{BnA>+D5rVMhg7PBi}?bJqd)4 z%N6?Z*q~P3pSm{kW?bF;aH_r~O{@L~>%2_Nn+F*iWDTy3<&IxK@vR^|nDp~)ER_w! zy=i9{>AIJa+6Z(my^Qg{=ng}GL#DeL6c^hwmri-(UTkE=OH@)ug{I+N6trR9it$h* z)ZFe)iTeoksFpAdI*EN{lsa?lM2bZ3JVJ6G&|f+oW45<2u-tvA9$EcGPo5gcF}4zD zjU6-?^0@);%_3-8T9gT=8#y5QDm$ujJUN*>#xQ$p4A! z$YA&{p;WKC1gue0pyOD~|0mHP|EUkJ|8P49xBu$T&BG%jF+mBsTsh4<6)peh&oa2( znp!(h@IS#Es8GnYS}_@g9d@0Bi~qCulu7HeMLpk*NY3vVayr5ME&RfH_CKL63zlP4 zB{`hP81SNRp;Y`G@_Ky?JT-bTeh4oNr|i>P=&7>V!Cq8ys2cLa? z=ARt@VwY1X$oGi@=~wYL51YUr$!hiIrxi{*Est_7%+kAIEo_vI5{yb`42Dtijyu%6HOPX1S>MjZUi*+vwf(YSE zfySG`5h*A=k?g4(4vFs?feS=K$7f)>_>zK3f1YuaPlE(8MX&HxHFF@cZ<`qA7qtL^ z$8KI8i;J~glnh8rU3jx9AlJfCE~RfBCBX;RB!OpP+udX~1*Dhi8P6ln*!4d$t&L0` zS)Yef7g)UN^>S7oY=W#WQFuPeJ4$6ca}^QXi_iB;N%5lWD>)lSWve{keeqsJR?;~n zdf5O+(+X8A(d+s35IL1OL(g(Us3T%XN1Y``*Oayw(CGKF04n&w%lR=MqgzvfQpncz zj`#N-wjz(uO5?8Cj8DsWlgl(sklS~Ycnk`*y`k)%@OjopLBV8wBpKyBAtbwC z+HiwS+ephvN5uGC!)cZ8uWv|g?S6Aa4O6_jlBXIv9C@b@rj2Q_Yf!gsL1?OA zUE|UEc`v@xAUGk;Y>UDerdsQ$phb0&h+630b_xZwT7gf1OEkjG zt$zNa@t>@8FJaGcVg&G8>|p03t}}lXip+hRAfr7_g;g1VkOZWFEI853m`XKb+Lm}; zuK25A7IS=lQ~1m3j92{{-4$@=-sXcicCNEEfsfOsUtPt8$sJj1C%OX)4Vpeg`J9x0 zV|nc7X2SnD1f3HRl{MLD5yHU@$Bui~2I4l`n=agTFNJKVM<)W@Wb`aAZ52)8F@2Eg zUjWxin-aLlZSXK4k;iJx+fMy8UvYS{^p-zo19l|vXW>C(HdCWkvi6~a_?y+? z1*dN3ktgH+gY;83>Xn`hkwn{dQ-NARL3VrfpoD?eAGU?F?#`A@m`+&t94Eq+FR?1q z#itT$NeFlovLtPLHN`hi`|k~9C^04$1hpFbA$<;d2L!~nijG5RbKoZ6WCmaCmy83O zpt)OF;*4@8SFA`jB|jreBP4-q{6+s>s*?~T@Qt98%a+}NcXBMt@9*)SGQ0thmvRJ< zSw`W3b?Xg70mD=m%N-s;i@`u{M7t`ZSX%GFk1W$-W_F z8$e@}pX~b+>DXInbGt&$5fTTl$S@Z(|Wx;_@eM#AJYXS$OIlp%J zyCQFMFidcaFtI#)a+@NnD1JhYt&T4s^_7c8UjCC*tkWfCR8Gq9H)Dco=c5k2(?uTo zl)!Gb*obQPh-Xz#Z{M`S>S%{JAd*rE(+ssvlg))}Urd>XvtG*YF6`4J93ZjqOE?tf6j($!&miikptf* zi`DZ^Yv0YEZc^yq$*kzz4^=$~EZuMCF8V;vvoiX| z?@ATxkt%6aPytfzRJME@;BxV_4tZE}BvPuzY%Q{SL*%W?+F~3^Tic2HzSP$sjx^QC z&2Ob=z~)y)LcceoHRT_>S9Hb~cN?v_k4QW_XiOXj)_a> zK`fQl+*Ny8LWs`fJD;o6$`2>Z-NXx}MX29wWgo|l{ZI2}p2LQN{g1mAYXi zep^s6eM5Xp!1T3KeYB4deE6Zsvq?z_b|Hra>A0vUH;X}Q9zzO)Gza~?EVR50HEXJ% z{-jcY)>^RXa(^9lnw+AULjkI_XPAnE=eea({a*2ANgAnY9u3>UwNIT~;3DrG`A*%a zl%t%XGG9TX<-BB~6pfet3jxk?$x9EuMqK>#yJ!pPs>^rpnqGKdQMOW9S!)vjAD%f( z8K98GS-)#Yl!&GXOQvc9B|BGs?TTc@?ulNiw#IRB`tsDde&x>8Xo~oj7d30fO5;

      09~hzB9nCRt(q1FBJUV#0iHhY_Fou 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 diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/vl1d-cache-accesses_panel.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/vl1d-cache-accesses_panel.png deleted file mode 100644 index 5259b2214faafaa02e566daaa9e40cef4bbed14c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53977 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 N@&k?g<##PY{vTI}rMdtB diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/vl1d-cache-stalls_panel.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/vl1d-cache-stalls_panel.png deleted file mode 100644 index 61e09c915c91cfff8d08040848966e6ed466c043..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18565 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 diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/vl1d-sol_panel.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/vl1d-sol_panel.png deleted file mode 100644 index 5c2485d0d72661ba8c967710af88f190eb48b3c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17948 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 JFRbhPzW|yB>*W9d diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/wavefront-launch-stats_panel.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/wavefront-launch-stats_panel.png deleted file mode 100644 index 38e4517f335c11f1d4afe1d1483e004d6498fb4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34983 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

      ad3U7LfPTlZRosEU6E~C0m zty2hYojxGBu?4>)&&9rGyHBgKzE)YiWt|us`ErEZI##%bZ4%@Ur1>0kFbaz+PMhnW zDM?MS?n$iln9;Q;jd#8)nO4qFOs2~2K{O@zAQBr0hC>`!gkc21jI>}HEfRoEUlh*< zVL|%@w%ZfU5QH&rGm*^pZ-igMP=E#dbsY={|7&X~Z3Iz5*gaXu$Q;JfQ&vVKK;DF_ zsm$O!FrFFAmbku~kcjP8gV8{=_2oR`@2z2^5`r^!`vPK1`wN&gp)g%y#4K@B+GRBd zEif>8eJXfI{32-g_+TfwKwG?@@b~ue*e2&cosetBgq665dyrOShg0UR6B)hzzu0>Z zs3yB@Z4`R}#RAfVsB{pJUL`8hMFeSr5EZGRNN*ugP>?Plpj4$wml8Tex^zJx5=uxy zuL>QoQfpKkw=1~CzVOS5SGq{=Zn~AGjB0Fw3CjzykQp-34P~rqY6UyfFBS4JF6t~X@%>Ta* z$YJp4lYx=hKnC@FkQ77K#!3_P$0-0;dX^uY2xlAuZQa!W*PFHfbwZnJBEjRaK<&$? z6)Z&oL3@XIJ`dSpWu+Yk&jqIZ>)jPh`1 zczvdT*6%~|9Y&AL@RCuOCq;@=?`QB* zbr%{%?gh{67o&)Aj}SwT5SyPFY-`8m*?}c>ayNyxo5DB%;k0S|Rs)9dKJ5MY{yGSc2LEN-0h&TX2q=4gKMtf&TEWo?oTElxF?$ zb})_)SnHX|+E1)+3me zn3MD>M$_dt)1Ls|YW`HZ+*#{k)|Kl-=k zKfqPOt<#Ea2X}zxBoE%?wzS02S^HbJuHNi!Jo}qz`r8Jydq~##k>oLSY9mIx5oi=p zLT7FVvu?8jo%p!yPV^W^238^WucR83ZMlBw^l{s~i%FYBt^NE&;pSA+z%SXN#uYZU zrjCb=HM1cuvTpLxrAK!_7hA+MaZrGnLUHN#!b@0cM)pq8`rJ4PgNei1!n~yAL=*T8 z+KZn}%?1HAaga)A zQKxbK1Y`$2n)Gp$2dkIHsq6OPoQ-i@TRps<>dU)i`EK~Q4S$sNxC`w(dwYPT|Mo_* z!sY(<`4dZ72fXf#z7};wOAVOX=qA^Eg~36Pj+W)+txT#e;n#r#n+&X7qSt9rPGJA% z0+br(o;Y1LcwixGcuvVMMroS|H|U@z#Vk_fy*Oqb>87h#6}9(d?_sE6T87m^xON0a z`CPGRyEx0aU{Uc2loKR$Je4ETs!PSSDZ;Ku+3EEY*GK{-{JvuFX4$6Rw$vXZD*8i- zZliwUgN_l5{zmY_9S0(clUQTh3e$btLn_ARi3__5a+KINTFsOPIRO*Z3yr()r~k>>HInnB^M*k4EfhPkl_$L*Sr z!1!?!{Ex1VtC{+{j(fX2&AFBL_DTp>NU^W2wIRSpm`%p=G|APzqky{9xk;wv%%VMv zWE#x2CBo{MVbYZ&Ny_uD`176X?S8R-{8G%FpHjG#n$#6n>V&@Jms}-hZdUuC+Ee3N zx{S=%V-|b>1z{}k-Q_=G0oF3VnToO)%>Yer*!A(ivAY0xkPj;Dr!cymI?s~ zEB=XQ;f%oL2HuX<{cP@DWT2A&wrN7-21cKxkaMTy+T-f%IjX=U?W|kmvYI~89lsYU z!9WvO-`EI@JOv{AhU9RM!wk2O`UVkn&f7S7QBld|eAFSc&k$Bg%LZfN1C5 zVXfX}QG4567~|&k^O;xZnw29BIu3Tivh#vk&r8m2{#p|{_2+?jOx;Z8`X>D9D*5}Q9WHn?n8*_i$ zY~HDU0yRCL8dSO0L@{sVbD{I9P?tB|cTiHsw^nLeLJn);OQAMXMBy8y*q zZtB3i|pf}C*WF%8&I1k$!*RLubQaot0M*3L^&x2hhT>P~3do`S$#_ zrgw^8b-tVM%n4k2+C$B5PVB~3)^7JwE?Nq_ zVs)JvB>hVHG3z^LySniI8eKLv`P)LsdH5&3m>J^DAEc5$MYsV{!H4D5{>RZFF7-bS zlrmK&^V`IBTwIL$4GO0FZ)pN=Cn==(vO+gE@k`F8&SG|UtnSSd^N;E9cp$4G1$Jlz zg+q>`@iWMRZaNY_G@~Kjy*>G>@S5DwotfM32wz0A8l<<<9XduS=7Py$J)`c)r`G1E z`vPh3LOZ$bP!Ub{ za=aUoKc95Gg3!6<@}_$)O(N4%_SNQa_hspl2VF%)H;Rg19#e^A=nlxj`cyjAv=oZd zv;4BR^q)5+=rF$ZZoz5=+e*|=C%iVdE8ceZrA@lH#COZNvJDrDv&dA=owqqcy@zO3 zW1OLRf2|*HlE}BBICS(YY7{yV--P(>WD4S{==1Fk>FH1ChcvltTt7aq%X`~u`XXU% z2X5ekPHbTLDcmR9B;HOa6nhsuUOaH~=eB_?$sLbq2LYAMB;+2DGyyqo+7(*#)aXnm z`G9@zf;*y>kNSX;ymk+O^ujR>dgfXSKa9scDo`?ubG%7Nt!GY$5fpXliq7l3Upns` zKC#9%L(-DyuC3_?hLM#P_>!c%`}WDb`n8D$@)+`XH|aMM&x_{!7l#C2H+o|hLWAmB z7*6?FK{mZOYvDH5*N}4zHJa`S`~pmjIM-0qTsj@V9sK?thu4!TS=n>!?6>Wo-7+;c z)LU3x+oW7o_?&CWnDn#s>Fh9aPK|r%19d+u7t5A5Qc=eozt>cqlCN}P8S+$5`hA*H zqo}IHbfWJ*rn}q3RUlDsUA#F7W4>>*C`yuLoRXs6@;}jPBS=ELVTjVCN%P$ycqbSH zhdt!qzK+R^;a==_nsv+(uY$Tg(1(@2eBrS*9}L*4qb9_ZI2te2iPC668jKIlce3Fm zs#k$JPRZ-o$RY2ENI$-GS@ATN;$Y#gL+< zYV{YffieMlc56 z;R^F6)p|_WY8qS9Jg8sx3zpYg;^)#8-(akI_L`&Ujl=R~ zF~2A|vwLgGvqS8R?*|3zp`=D~G?K^{(lCdS3UfiXZLcIkxkGM^>}&VE$ z(ed)|#ysLV=vOzMV?6^eb&i7gW}`?f2uHUaFt2iVt8*4AL znurKwim##~z%?h!$ffMC(=5+%YPUo18c_j@mhI>Dl>A%-V??HjXmY&kEjkg%sSaZcK$Vzd4%K{V=J~ z+ow4bT@#_|H{I+C5~XLOX0yPYznL7e!p5_>vq@PYu%Owr;-QKj{AL(~pF8hO>5!vc z@Z0a*`Mybm$8TQ&odSH1XECa#L^SO}Ejfh*?of4lN-V4AOSHpf)rfADA?=b{Z-nlB zd{nyCo z@*t`2XCUN2O6zAB%LvNJz`TvmJjAEj*+5u-991nbIoPD>>(~^3_2UbE#K(7{ldW?O zQRO47kqADx8Wz#Y4d_SF8y(a3DXoS=CmIzJjFaQ@>8Ogty+miT2{`E|B*-wx2IIVj zy6Bi4+20SuhD?85|9#J3Pio>}`(gB56v?}1d-|TlEcxzy9KHjAm2YSKV2A=q<~aP# z&RiL{a04SKh}xb4-W%p;9I+Xj?Q?7a!33)nojKN2jOywhc5xQQhc6hwP(EJr^Zh9) ztPQ%)9palU(i0(B#6_Bz$0aH0nAQ8u>(Pq*-F&0--(l9M3 zl;yo*;tQ|@pcR08BIFaO7l^9=*TLbRoO#Ql1~e`7IbiVtKF*z&H~zL{{;lE;(->j1 zF*#mitktmmsglj>3y(_OO6NocWJG%_zs{Z0y3KAA$ujf>2=kzji2`!SS7aP{fTHRr zgt9%|kts!t{bk<-c@L`A;sW&32rsx?i#{#};icA9fs>mytmY-$i4DUtx%>QPx*+F) zaF}quMEbR?Aaz;q?aZCa(mc0YwR(<*LEgu`b1Yi0tw+OLDU*QPjbZNI1D$8^uSgFC zt3la3Cc7(n9L-gq#d!LD>QPJ36##y=; z9GR9YKb`yYv31q;7n75d$KwY(?cGjj8tX2J6K7ENi06h;2VE6JXe)wU?IPZ)nD^Gw zyH~*l({i5LGQvqBEV<{m#S3}&kE1wAkn1zC!u!%6O`K=*7ei+hrps zvlmfOfqC{n_pQ4Ye|Ryv8Q?1Y2p`r<{(;j^6^~y^SU~K&#Z^So=kDFnF>;q_;S_() z-t~e7Q@dtMQq({;HlonpmlP_d40xOT5;hwmIj>~Q$j-ZVCwcIk=`<9u)Y#cACX*wb&f6zTlwnl@8U1yhW6ZP&tAM%>2mD5nYhD93D#xF7G5k`#Jh5#V``0sq{J4)&_bqy`)8ag^!0KNMManzmDFJEc-;H#cTToy%^CM;e35gXhB&?NdCxI zCUb%Td>F@)=6LzzXVoEY3zaEu8bDYF3RpMIRrz-0mN)b%JaLy$e`q*D>41KInNHwDQ zjC*6l547?KSu$9h%NyDW5ZSH>(CL&;Rj!IZCkx*aaGyz`)-CC%BQ({WM6GYSWewO2 zjag6Ze|6G_55O|Ynt7AZ32TAgh#JFnevXcEZWzSyErrC8auCiBz4H77-$A^d^HpAT_0pu8!&cRtx?`wx!CDuR@-}c{f}xO5>5x_CnROOA4tWoS2}0p6`c6LVy5TxrBj+RJ*@rT&5J@ zwBNRf%s6v{VqmvYv5^v+rB70!)LqdU`wW7tq+0d9X&cTX+B|Jo&vn!-MCMGmf;fPMdNxBVLKvHvJ+ zWIkXyb(o$GhOz?Sd8KwlIn9=Old{J+PuDm3N@d^eCY$DA(~j>3r@1|g*Y5u`$K<~n zxm_e$I4HAVfQ9ZNOZT0Y^EyGW0}(}IA7Y#qpWQsWtj_)e;S_w^rCP^~ z_okb-wL0EV;z4#vg1+03(rLteG58AKr}NvvZ13~fMplcr;dTmhKZDs@teaU)h_&lg z)Cd0JvwLshhx~2vx#KOYB+XH@%3xT7YmU~I-tBiC1LuQY=!L$0bX@yz^IU0u&qN(_bXOr%=$x^$G0I}20|XWmr|DG$kSTeH>1WRC04B_-_W zR;S!mck=S`Y4qE6TR*5R-q=0tHSqVIL?ZvD_Tk!2*2E@(uePAOaG7x`t>>eLmVHB* z(3L&R2G340nAnfv0UQHefYX^&`CT&@rrH7R>Y-y(2D8+_lURJ+Ono0Rw9h8%>YzfT& zJ@kS*&6~Te+>-vjNnO%sTEC;RyR)>Rl^L|D+{3@b0Vvd$3*YPlBE@<3;?hx`a!_S1;p zx@o6dyvhyfg|Itlh76Lp<4$c>M|(*k=5y1tXx@SWZvxVJLk=>vkMCv7F@oTyKu$Yh zc*EV$jx_@%)pnK~E%l1VEQZPZlx!gXWImb|{tw0Rzp0M@r;aN>s9=T`Fo4g8^|Mu>jI9s{Xe>`DI>-V0oC#<#8OR} zeFMOAH3icH2LSFfratxbTY$yO=IsB+6yDGu`;f7nmuLgvTCIXGV3XC-P8^Kq*-_jX zR)}wiQfJfdC#Mg#0jWExl@s_3@=?oC*xk{QN!_sx+WG|s-ns%aeWU&E#O(Df$+Ndu zl&Slmt3OVixYp!$R)1fU%Vd402!r|{=O9o^Rri?GiIfvuEP~^vp$aVH4yM}YpFNXdiO-DprPPq)H$6T zAwV9a3U(*@i(a%!Z?;F}j&EXcf=#I#7aDl~MBEhNZH&`Sj6$9tL(o5Ox^^kETLZA# zD)iFotO%77@L_e{6{ttMd~%N~XK8j*3VvgzM9fNDeER;D zgzEjOWIR6LlG2kfnN9wSFN<;#beB$8MmC3%Wws@nobb(FIuGgfd9<6rOe+lMFJIVw zcF0DWP7J#vJrER$sU23_6Z*}h(Xo=SGD4k>QznJCBi?4Q+Hlf>XCA^4l!Z7~=iian0)=)+Z`C6h(mb6TvtYFrl}5+Uiu zvQMO2PaIWk%REH!@;?A|0Di9LcDn~95eJEo+}LTBvS~7jTo|^G^8~ySO9hcrG1Kn} zN6+aL7zL?fgTU<=ID8Ni?wP~q!0al_hFagyhhH?@RJYA;NhKDvyH6Y#o}-CV9+kk@ zsdnf%H7R$GLjMqnK$4`yhETu*eYR(YBCewKq2i*vhi4buSzyQL>98ZSL#KyGUZ%vg zb-YkRit#AYz{(_K;p7F}ETlp(*O0mL^%M;6*})<<`}6%{>n6-D)aPJ&!m3ajHojvx zEbslB35TrTqI=t@Q;Z1MH$4See2x(XJw=vLQC9XXZx+udnH|@O?`zZXxuR2K__Vb< z-=C^U;U^Bwc8Barh~s?9nv4BI^q12*I55aHkDfC%`J{paHP0&@@gioe#)rPQ!^X_X z(#I^$a zTG~I$bQETYV?C>oSOmM@G$N;8>eay=t?pBKkE6FT)G#`uuNe^}8(=GPLs`CL8B_H- zP+5w0Tn`+Bp8pkV*XK6@Zjpq9M5#Z`Zb>E`iwjfdgAai?)p?z4PJgWn*P?{G7g)_$ zKepzYe@19al}yANvQWe%te;kqF69Ii zwcfa~!4Z^gb@@ih`?ukb%Vc{vl`UnmbaH9y-}4!ByNrYuU9T@UC!q_u1PW>u)$e2P z%41P8GK-d!EB>%nmY1Mv)&1)ALlxJVB1${^R6Wz28`p{$GEh4jHHU^V|7NmP06MUK zvKUX^vs!l_kQz-Y84bb`qY$4LcD)||kl$okk;tJW-fjB1F>E?BelYPl-t@gpLdhYf zLKdaDbJ~^#5Nntn5!+TC0cZizd}gN~;&MG!xux2bc0a)GH6Vx5(dR5CRSFU=Ys@D- z$#s=zRjp?d4=S@pi7NoUTdVTuyfs1rpRxdp(hUAMi{+re-Q!S))^jM2KDF(^kH1>q z;IA81oDfyC(5ba%7i+w)_HA)5CIN2UVwfKn5-8Prk(Ag0!1Qv{mOzpn&p!B}MtT(! z({zbk2tC?((Ph5R&Awe$f%)Bcm+T%#Ahtsm4Q6)FiePT+qz{ zMW%#<4@of+Hs==6S;r=^~Xw~;V1SO@m^1P-K zvwiMyHb*FiIMiil^D}%%LfnO^mBc&W4Ag&>F8UZFVtSKKj1`00uq-XCj2|uR*0ya~ zXVbp@w4ki&jR--ljqxkujaJK+>hO`ZyCjz>J)Dl4iASW#!d!}Z-*2Ww&+^7pvz@7% zSo=JN6fOB7bOvr9 ziHqN`RWr2(E0*9WiRyKAK<|9a{)4ra8+>qhM!vn;cS{FOxb|koH~!U-9UdEsJ$`-X zrj->jHUdXIW82D59C4WepM|Do5X1~r`8B=K@g-7Mq!)cqeeb@#Wa`c7dzcKdt8Ovq zgls14P|Mk;3LmCfbt=w#r&Uo=rLNnk$d=3gtF4MEZ)ziGQhv@2Hl;!-!5;IQA>tiJ ztNA?bWo8e*;GAQLRW7kSm?Q|lZQ{a}AEjxwkjmTZ)C`zm@TOR1o>ILa$M}J&g*#8| ze6MOSDIQAh8N3mIjRYM5GP$gy>eu`S7r({e#d&!EWx$lrOB{iD9WOAH&9ptzBJ7^xnCA}UHpsciHBMZJ!AZSo zxk|~%Sq9EFxyB%?xHl4o?Yv#}UO~q?3?;sb9wkmmeRSf7t#n^JeB&`osY&@sJ;Ut8 z{Z3sZP_)-vo?o=!u{W2nf}UD0&qu+-`x=D8ODQR);dh7&aXw!lk6ZeJRC#=pA6X3> z-M$VFsg{om2c1__#Ve_S@T`ZRW-86&*ve%;pnCH0KpoDvtCy?NpYw9+GL4xK?AG_N zww|Jii^8%FKyeeLutz11UwgjX8+W7BHBDXxJ4|w!_R2l6-7F*66qAlTCS``s8oq&F zp&Y^U+FI6D{6yBRH)#tcF044}$JN+RzYgIf#8gICDjboXsT(k@L7=T+$x-H5XsPko zhs*Hm zqn$0K!MX0EpGUcm`G$#WZNI;JmCt^53)WHb%f!?b@t`?{?D#{9!Rp^=M)H|Pbu5($ zH;u~?$lv7^YWvT%x^&qkfsR(pbfz;sOjUNl1at2fdakv=V|%d|xW~s=(x~;Qo_FTE@aZ(EQZTJi z0n%W3IVF-{IkM5@>VOwlsABZI>u;y?Dyn>6cxG$+;cMt&=^wCFBXa5vEfHH*Yre%= znYD|;&2*+U^H}^`bM;ZBi!Ja#=Nu~PQjc3~uv_G?J-ab`LriDzBp`N6ldlQc!%Mz$ z@VU@)88cR-6Epn2|5IFV!)8?0)?GOJZ>C=y4}UZLe81aEyACX|3>=Ee3h4hX&6V|^ zHoWl~qMNs;*Ddtaf7TgE1Au_JTJ@3AoBXXdGNj{g3MmD*iOB`Q`HsarP?eaB*9o_u zR7zX)kBB9`l|5Ws7t`^?9@%o7a<(0x)m45HCNox^heVP%BG%;k(%wq9h%DCWd`!6# z{jwuEL>3Yx{2G49nkGTdLpT_|`ptC2j>zrUuoq4P2bWq?A~$xCH+hWm|!d;VXdQaCGp*UABMJ|wAl;;#eTh;a` z=O!4qp76z(O<*;)LmD?DK$SpSGRSN2S#Q=T&;_-VnET=Q*V;ceB;}cHC3+h;%(gCR z$T^!_V9pMuL{d4(Y4kMIYzE|rH_&wExGRrFXb1d6Rb~CiIGAJgp>xCNmuF6{o28gz z$Qs@DwMSRpt#7jx9(}0_#uVVX+fbMzWCAhnmCxqO8uR1^P@4sE!0iCRZS6FUdSYRi z!rS+XU)%l21;0Bj(2vInZ-km2d3ZbbzF!(i$REv}%1$D1dX+(fr2?t71*U~74{_Y@ zr}a#WI!7N@7)2#k&#PPM{YV_%(YIQb;Mz~L0y?2HIQ1cdWc#z;OKYD|Bf3WbOINs^AvPxI zjjsPWrdC+GA*oiJ(;xoAMO1|8=<^!ZwL?TO&NmzvH}R7&lY)yA?@YyZ#u(lolXtHf zobjplt+nIdiu#bkW4>U@;?W~N42ilC-*!Lus-Qr%vA(XdY2^KpWijLC26^c8WLVr8 zykNwG_jp3ErMt;ztsH04D)%sQe8qfNh;f!A9FB}TNr?n#^O;wxsOq2dX8N3h-5137 zA8O6>`iY9Y_!b>)j2C>#jY zkFJr}a}g)jZR-#ikm=XhC8+t`?k{5ZHw#^*svEnw!2)q2C#IO5oPj@M{Df@Xl}Ay5 zwA{#tVwL)gdy{WSK4K5&ozusc3#g6Lj~XSs4NZKWR;~m%T$m-?&rXroX(`Mt@|>6! zm`O$EZH^4kQUF|HdxFmP55VBBS52nBJp=X~zct(^UJhKYVuE&!!5!QN58BOFYN?(E zUF1G+Fd^~9;SeF>h0B=NaAU`)GtrUli|@LTxAvw-eP$21DX~gP&UJd6dQeKD{>DV` z22fCc09hI`l=`+fksK72pnoF#eF?^J#_xR+RqLz-P+#n){Su~uM&N`hdoTn?~6hs8mI^~vD#srKv@$mvBh&vaC$(A;mPOTZ_0 z_V`b6r9a|L|6Lf9c|Cj(TUq`FW<4t&hdDtGB~gfgH0b8BYDH0IU9Y11JRd%59wmew zduf|=MYLV!K)Va|3VRsga%y)o3R1Bd^%+pu|H+^AfOvv@qsk#fKxc1KtSIEg38ov@ zZ}lcWfF`}#l3+73K9WK=`OUPus>q0PUV!HRv02}zF94!;TdUxY48jt?#Qd>({q}_^ zfS7R9+5aEVl^NupfYxJQ0B#k12_Rui|G3QJUem1bki(SNpPe)3#vOj{igPvfS@rp1 zNVSF?=ilA_e&yZm<5ges)1n&A>^L|PvM?O@%?_y5O>n1;Xw15cl)*eQBR0j=;ba|n zYa*vMh8;`KKe`n#Hx`7Ag|H#d=yx16FGea(`S*gvI}(D!4v{-%K%A%EGVD&wo%S!g z9|<8MctJA>hRvaj6SEsFi$!aL73zw#2XVUG-2PdYigEcwO4Ql|#CPTV?P#uvtlcaH z+U9!WWurWrJLPlsGN3S>@1NCIGqMx4F4+aHxHV&1I$`U1oJlrYx0~P_!XqY`yT;)ch$(O2>`+DS$AQA3gptks zx)E1yySn}m^V*E0`G`kcTBh&Py?LSWL?BBBSn9>_r^JFcYELRGFjF@>qx~%HkbRGO zu>rFIIexDq7NwIGGn>$7G!=#BCRb5dM886$eqQO88FjtB3J-b<z;`A7~BZGyzOli%)JRHl}J@*xsS>3E3l&nNCbQnLu3r*Bo$ffY&rfGqgCid z<^%`ZKhue}@^ytI$nm^CPEhUT zp(adj;-Z$3AS;(k3G}5Wk3b|TRdic#Xvh!k-%Oh_rRF`cMA#U>Iegc>YJLD3&Jik# zZ{28`2n4jarx2QqsVN3}c_c(leh`q+vhETvWijlH{SMiNZxv!%shBpJSjV6qIUNuAe92~WNxg*GFbOfO-t9| zVzk>MI~f->M`#A}rKoUuF83WsRkpTZX-Askcivl`hRNv{Zgn#~Uwqh|RV~#CXzMD} z)ToP-935RYV|H#V9|Si?(gE>}KHp2jU3?JoIwdSDGgzT8l!L4 zWBrTCS(H_RD(4Q}uRFmdmcg@-(AzdMu3HAMFU{pDZ*!{+7Q7p|bY&ZzT7gGkh6tO{ zazQaiAf#%UN7FOy0X{4$yzkY0I_?YTe&{}(9Nc^Andh(e3rgk6*|83&3`QVyHJh69 z#7Xzj0Sx(*ga}dr(4=RS7=nS~gAp|Yyj1n%O6Ij--ve+(Tc+Em??(B(SNO$rFeeSk zUX}p!zIv!@(wzg!rv$9#9w8Lz=!5Q3iSb0Jd^5hIsA99$KU(06QD_x^!dcy+6PoAU zR1sEEJ%U@eh2}Qsa6e#I6i!VrMj$-bo1PZ=FT-AJJ9CdUv=#+dcFo{t76iM#V`eNc zyv47OzE2V1Z0{H&ATAuK8QTG-+`F5aM^2%qdH-Cl8M!s?Z$$QR8~$J>UH$Y9)5-5l zXjV z=2kt|11Xc)?SV>*ILh!BO1U;E$A7GJvzpy!7>JwKT-Tpen-3D-X>fNOncLt|_h^4^ z&Z?=3LIb-e9N~|Epr>N7R`eXW>?)=uuIw>oxYU72Z#T@5OnmBY%U)9AIap!U6~E!~ zBq8_f?3{-YWr!R~X(TL_xYBOpJ9Vm8H)|iY=Pi$uPw}E@dy}r0pXL$5uY6sDMrWtc zz(WT*;PTZ?2Y12{Mv(yOXg=+JhSJ^{Kj7fwS<5kuS@x~T-!dIUXMBp__T>`bV)h!c zfxZQZcgt$lBxc5itfT(st*8k;Kx{?9&+IpoBUNj&dLJ#NzTT+S?>-q_EQv_!T(xn@L;n$!Kzlp8|&myfKi~`d z&WC5nF+`Ai#h?HuOzh`e=X1^&)1C2Jv#RUkXoW4d1W~qmYYWeklSj{gzt)_B*QT-Q zle;MOv)1~!+778`;RnOWw|E2NQGbNtn=)99xt7zj+DFWXqqaAuJVJEvEf+@+t~bpl z4P(zhzrC1#EcQyUL*><*#|P_Mlb{SB@(aTN)o1|WBB>m3d>c*h4CXE+lXAIvUUPY6 zMUI@|twz=(tur$9&vROh5rEU*vQ^W!=#;bEya zYx4L~9E-{9M^Eyd=SULUra5-JJ0EO~kl zwUJjYQ$^)9i)$E8k>nusO!Uh7B2huS%GP7e^y|CUnO~@(5CCxwga3jHk>bK&h+^1N z+hU4*nPJ$b#E$q$^^V%p#WKetkD13LnFP3TF&$wtjXMYA$FzSlxnS9yXF%h-L($@b z-EVyCM``M|#F;eiiD@~5^FDwq?`>@lAC(5Ea$F=a#aOm+e~X?xkNdx$U|uO2ocpO{Fn*%c;LspC_PDr3t!_Z0%oW zS;)op^A3ROQzw}DDdnxzEmD4=dJbMf#ae7cv#ueH?(${eyd$%1mdK~_OoUSo;HYW< zZbz*L0rzDp zjTf8*g*K)S+%|@kffOo9mOT4cg8iQf_P;%gJjr?AOR9**R6P;q>VG!^WH$$FKa08#k|@Sh4C+&FlRDci&QP zS^bQE_$^`_aG;*1ly^D~``1rT_ywMX!JhQKBFeSD-_VaqNMr z#uxoh%ZeARG+9ovD_C_6$4n9CxddtgQws=)m#EV%Tr?FBn>s)I7l^x>S9c>X)MCmRxrY7ZGwOhr< zQyO85$8>-uKj+gI>WlVRCszrI?VwmNmmHRzc74nZ$*c-t#{9xMnOU5Ug{+DhJRFB>iR<37t5B_ph@PiFpIRYM>_o5 zrG{@2ms*5jk6OZwC?5#}=8sdy^e{Df{#$QN2v-j&-J5k_ayTMCIQ)0w%h^9h@ns+X zNmD6+$y30Dp(sU;bN-5YkCKOP*QGk$^~evDG&FwU&zF=DxbtGvTCdV5a=P|;pt6nm zM+c=}Pl#-GW+j__Cxt~-#Ty0vvJF~#9?vfoXI}XsA9s4yT%8xamO8UFqQTp7{oA_x zm+#;=4~wF6lnOPcZ$4BmHYyD-6*GNC5UELZ%1`xmDkySV`Z*^1=Q2f8sS}n{Gc!|` z6O%o1l~zyrW0++@(n?G|<<^v7su=7R>8aJw1t~HwaFAww*}LD4QHw@=dwak=-?gB0 zxgkqkC_8d{`alBP!?$_%MfgPzxa`V=`X!${bW%_S(3WgEhka2fetyS%tc91J%s5B! zo%GGg(=XJyxR;2Xy3A_K?)wGwKxel+11{lY!#1pb%{dhk;$~*8!1c1$ac-t~E2Ni4 z_{Ev{bTSRv*Xtj5B>h=|HY-<9(Vlb9s@rd-jD{?y?##0!aCm?OOSeL?_FmQ8gV$5} zS>j0;58XVd;-wL{n}eP}!R{xp5TFA1@~`XvW6$7Ed-wmG9A+`HGfB7Krt<3}12)`p z62$#&xtw_4z08?Pggk=D5g}nHhw|5J4SD?@^yKNX-QuDBWl81kFPFt)DZB##Lu(Pl zuhx%yNE#NQb8k|4MIZS)ENwAB-a*Mb?5m&)aGu+w`#ix%I#i;6EPd@4YN)DlEe#}W z6f2r)s?B%yB1}D6|rtkC$f*tAW#44WeRQc3=Vy+vk*-hlp+P+kUEH`!A4Yg`4`Q1yA9LQ4bL9gfP8m zrQn0Z#I(|nK2a*Ss6g&sQAK82fb$@asbaoXo&{@XqEiXuX_ zu8m_JQC7Db`RJ|%v`ZA;C-5Qn+$HGzTrD3gD&0ppe*XZSMcE^NA1TcVk_r#xpX&Jm zfs}nmPe0%tpd=k|@1yRvG>?{VmizG3y9p(rWenure2n{$o)94K*?b*zZ1(9x3_)1z z=V~y=!sI?Go&?j}Nx-{kvCk@boiUVZFXgyqoN9A__%&kvm$i4w!=O&=#ijtl$5g|M zl*|Klvf>8f7!am1I2{?HBWj=` z43tl@igaw$;+%GW^dALPq|NR$dkH>>uc8G~8#;I3SE5Bx5|zgiPcb2xrs@4>TP+nUgGY6{qVl4ub=4bC>2w@yPX8?SNEm z#(6_x8r);#nTsXVskkEKj?oZPUzmSi{*NOY!L1LvCMzJ8Fk4DH)eAnFRqN2TIZ*{P z!m258VVs|E>hmG6UV=!ZS@?SyT=FQLdN3HjVWuUkO)a?7rRd-zw#6z)>Pn#k;BBkw zZ>Hx%6a&Ol@Z_Ez3EdiO*l`?dG2SHmdGdOL`X`F9zy;>8ouV|}Y5XZ~pn@yi+@Vr^BcTB%xcK3hV&8U;nrjlFxZ|HmLDpFY zwPXBMwN-C*eO?TwTmcxDP0up}-`xP8rgk%!$B5b;Hu7kg6xEidFwz7r_dn}?)?zuZ zHg1P!(l^C)G{RG;KK9Dtc?GfcqbyI7_Dx{?L@7KBe46Ga-+bp(US(aaqZEJm<}rbD z-}p`)W&M`AEo&EB@Tz#%5HGl~%m}oZ49GJ5M#MFwTZe|9L)6#jJv0aTObbo<7~LN< zLno7=UaJt+B}?}(IeiGLBQe0Y=0(Ya^59QC>bbi>^-3CHU9mfGJVq#S*41-JKh;iL zC{N8*AfAKLm|%F%0)r@YMaZtP=KFrfY-Wu|ssLQ0clZztUQMQ{y9g zgSyakm1GQVfNww%mPbf1Kk`%X8;}KuZe0hlcpSf0TjO1_88nDN$!%Z<9%W%^ngoZ} z0X7hN#$~Vf0RhJCqSl(?f?VCn(myr(XNe^XEny$aiCGcBsar*(;9f2y;a=2IQAh8~hph21T{AM7p&LVio*3N1iS(e%pt2!I^UnJ>VPT%TM*#(u%6@d>3RHh!5m zt;U*Dmus*Tt~-5XQwr|$%v7iF>jaz)*2T*Td&e|(S84v$%tPixE$?MGI`5!(yA8h;&Z*k>B!J>Fq8tAi1g4*SI0p(qr zQLZGfj(5%#PGH+wWbIZd!JcI?J)wK`hcC?_@Z){ih~j6>nJTYsnN@q-;aN^IjPN$f ztM-;t^ZU%5FIu2xHG;hg1#*~q1p8#3L06x(mEQe@qc&I_1EY7&ySgZ z%cLLtWSnBA-d;knv?#BFs(v#?GFYwshqNivdD^qh_q)2ysF#1V`v||^;Az$y- zw7Sg}uSKmot>7DbG)vZf0`wVn7I;Szluw@I8V=MDPJ(cVFspBYd*PDRnh z2c)BMF2mYhDx1tpC2yJdp1;vj(E7Rp^q&Mx7?SxZin#KZAmV+pb<>(mMw4YV6W z;9MM~zhj0zoPQeAe@CMK<%>IFU&3x^BHNBDc;FF@8qOEs4N_QWCgU0{`I4y0oT6!0}&Jsd>PCG|{ENokRP72WmTQ z{)2SpAB%SZa8O8KwBW^F@DBEHA*x~kj`tY=BN?<4k&zll7>tf24Y83V*ytY-BTBLM z2kkju+S&a$`%s?g^&$TaujAA=Y}orLKKrL}j7t8N&&^x=_>*IfmfhbRd&f+EOL~Jo z@CdtyAGb|anIV5jUrBA&oipFhcg;HfNBH}uG+M|G&BBw|!kwr>wnX@B zwpGmS6JZ`VOmg-%e~k z;w>RD%S=YQ_2dH~_7iSb!zJxG?Njx6>&{-gR=-94?dnRosp-k)bAe}Tn@5)NMm@Cj zJt57=obXniz29Kbhx-OM@7>G19(X_Vdyu1zo}A>u39FU)S_Ds+u6_KzGL{5bu{zyH4I*Z!`18ofz7 zuIe$iT{F8gZNsXTK2Zxvt}aFk>Ar}b$uX@WAq{xuA~T4-OPJu2R^;WaqipP3%LgJ{ zP$vDcpWX^=V;IBQ2WZDn^BgXye|ZjgOI7wv5*GRryMSR-9b~EdULM@b@BcF7W3D&P`xP z{paZK_7{P_2>eChF9LrN_=~{*mIzS3rvRM=B)``pWydymGPe zd~w~^#o5(E-dBm|A5WJDj{jU1<55<0x3-nnd!+iWHGnfEo_}qNkB^V2kEAHn-A+tg zPEJnjj)a(mga}YW#KX_k^M$X7s|WADKH!m!hn2g-D^CZg>-9emeDMg>4 zZ~MYl`lYqCw8+aBlGY;P;?^%jURXF|AAEG&Rr34DT9B5SyAji)ln4t)2RQ@NacUI0>}*<{Szesvg`jJ zY=2+!Ujq3rTz}#EFCp+>s{D6!{e|nlgus8P^54<*zZhKq&a`Y?0ea;F@Tk)n&_mE! zAi#9y%%A<)KifHqKYPk^=P1sdr#yfDABBpB`aBg4)%o+(7pQ4y|7^g~#S63-|D61J z$iLirmXd;kl9uW`)jz8Imv*OLK@8OA_NhNpoZ$hTWjI5@aOSiN#0^BYDF4yCe+_{F z=VvL-QJ$v)nsEWBPV+F4kHl;0s}DY8SGCjdO6p;mUb>IaGV@6- z^5g!9_7BPa?+F(C|46cb3ij`EO@l5{oB=wIf&l~u5uI`(e<@O6OO}kg6^cs9*L*qj zC(UM{(`h<24$O2@Gp#|>Dbqh^RlUr@dSo`~QZ;^kKATAit5=Br z;v@F`)}o`4R{vp~LyuBpsz2m2X)dV%ZKKTW_Sr3d^83xjyhH`FE83DpWm$Y?sN}Ng zwtkEhj9kAdeh(OEG9Skf1u$h=v+1~cjFYq zBE1_9w*8Q7IjXm4{rK=)+|V6&pUTVX$H-EL|e;8AuZjUCInhTxk(BVr|$pI((jNDy$CX=dd8n z>5MA!wXYd|LD5Hb)Fx65%AA4{3z%DG;~fG?^c<(4;7~HE?G{0$^dZ)2(WtiGztg<* zcrE`*SlkGw?Opxrq27>>4Nvpkg54G4+aXm@%=$9v3ixebiK7{8PcY4~X*hyE3~zXy z__NPiFq5-r{WG02(R^(K=(6SV?y^!k%ht#%rd0-6f;JGRlD1d1hY-uHSEX>2A|-k8~> zzCB-`3wkjYA?>U1eu?W`vW}JYk1V$uM>nS-L{c6JqsfN81s> zm9{WUDvNVAEa?bq&h4`rv5-3HQ~%{%>4z#~{i)aOOozQO%M%Dk9Rh!JLob^B-l%VL zyKI|H`IpLAd4#~mOP~Ird-mzf+m_dR3%Jj3re@&lie{bU)8}ml=Q;=71b#HH*xv31 zfh5!yK*IA2Fgp})dAwMmN<#jnk@RO4O;X48!->m>C*OI!_zg8uGvwpR zy!m2bOx&jWadA4OX20TYKo0azL8wynu}DcudCGrWquQ{<;~OehpFY)9xeEGQ{$lW- z#=x0T;~MxtRs$46bt1HxR6kFP%jg~shtF{~g@-}w2VE3jy!N`c@R2R~dW((Dll8ML zwvl^#iWMS5uiQJ9i&XRFplp1o@@DCgGW`jTg{q(58!neDI^NZCUYbUPYj4@Y7vLxa zRvR1!Zio%4tzezcM}-ninhe|>%uoq@ajbK&;hJY%+|H3~jqS4q3g+j+js_kAtCBc* zhRhd?T7-7*PXC_Q37^E!%48L6CZiCSeU=S;rfqf;6_jv)kCnk~?XV+_CrcEb7UgVPx8;!XCdoI|u71@i=Zbn|a~iN%e3Z z*gYJg8*y!m`w9_JDwAF2H2tPwI)6*GXkCk!*_Jj)=v^k$JwsN2w3a%OYJv!Y7ur+I z!zGI%N*s&}S8oMqq}Csd2>0b%ry037j}tQamK2RIFXgNxIOw-HwDToc9$# z+(-^@QTXJm`KTU?4z1O+kkzSqt72zmPw#PM*&55-lMzgI!S0~q@zOLE`x)E@4k9xB5|XnU$ZH) zwUwh9{^Z15XKY(4jasTqsGq~h+{8%ODZsZw?W*IQ!s5Gz!1}y!MqgJ2!Bs!g46Yv4 zHM+0DlwIMg+0Dfq*#o`e3;*5irFpe=EOlot_e85XzTV*5(fftP@bkrY(sNegtLN|s z0){u(Zq}FMEl3xSZx%T_S9mG>^qi9))r^XYFcS8?@vi3E_N(Gg?&^Y|OX@}HeN$Jb zBb${k1C#$dc|hK^c_9ihoz~Ih>9%Pm{Lp5}gNp?t6SH*J*458<#U}Rp6{Gv{Z+pNp zPRF#Q?6&hxdiGp52{gEeYRTG7?~QuEM_dpv8twjNc|d7Ffht zs$rrmvbiZQT>2uST*~wlT>J!TYjbZRWqo|y4*YI&PRws*a1HJ8r^J=3edXjRK6*i8Seztpej5xbyo7fEXh;XHP z{8%}YDZGxHNh8ywe1g#u6!PGxQ&4qm&qwl27ze8S5yRHVw4brR;`bRN;ab)n^Oad6 ziHhG+_8L1oh=paykvbEa6k%rkJE>`yz-L?Fw!BLaKw@5F&AYib)1ekjh$% zH7x=vL-!QQL}q^W2*w_86ias0?Q)m>xI zUmY_MxW3NBgx@7Ho`Slws&+e(K|ZO&;YceNP5c|uCul_;GnsB2ChSqT;jfy>VV~6( zBX`9$^1FuX_sHUJ6pXv4AXcy~mJkyZZuriKkGf=w| zjOxq~*dbwewL#Rog44JgT-no^z4ALL)A@DVxo2D=-N&kYnz(bNR4Rw~#D&OKm{Y z6|bQLG5-Y%SAqA!2f5FA(i3i`bKN0joq`;>3A{-e*xRz<1>=f>xC@<#ORiEBPOnNM zI7NipSyOf9{a$Ncb>pDmlH-m!j!sB*%~sA3KJVn0Dr56YBORd;`5{q0QmnXXzgcJG zbKQ~D+`v1zqQ+k9ZDN`+M4*1(Aer4gqPf|G{tk(Og1LB_3!>vM(`C>ve!8@FZh2vC(A+M=(Lq4kNgz z6J=yZ*)jj?xFPu9=JNQ`2MHfF=A-8y66l+1SggLj%M|`x>(HY)M?&3(@;A8z3~uG> zSdSXjm#;}3t!n+AnYQ?auOrR)mrXY}|5j!uAh88Kr=YXsn_FnAHa-W{0SoMWk#txA zG`%oMrdvN7_Mf-5z7?nb{_G{GLW6`CTD6-Rw`QEsD&+$y z1p{-Y+aq3r)Qv-f4@62@k7c*4Cr&}%iPJeq9pv*<5J3>tiFgghnjx9U-++ZtktLU~ z-YKsW3a#)oX)(=i_oEwZiGYfw*yc$uvmrh*;oROUdEkS*YanO%C5 z!Q4Sy*l53tfYT!<2a%ZK!sp@)wLSW)H&sVlte7$s49Zk5kS#x>67zD#_L`5JnRtZ^ zHisa;G5K4*djc(~KXIGF2NhbRv{R5>1bAUtxS_ZBLT3)%F z{HpFZG5zRGoAs^-uZ_UubhJL>ZD*8@1m04$&$4{C9?b0rv~y^ z%%ZeNgPu@X+kOa-Awy~VqkEu2an@0(d_5@x=|rvMyd$n=KQg7^YOYZFPCu;(5_ezA zp=}7wyH^}Zk|ULzg6z>hAChU}ajxK>y^DfG#)d_7R{=J&vm@N8Vz>2Tdb3!@vLFSI6%qy$Re{XSzW^BDhd1dM59n z9j6n2=;C8}9A0`b@?N14bj9`;u?IO(;Q{%AZOB9NVB%G$g{(JioSO~o+#TQ;+|;Ij zV9jh|TsyaurUS<}b&k#sMz@z`%Jbgu5;ji!#tbr+am2c@ zra5#w1tnp23d-+^`x5<|>E{)La?`iB-P}WSZz>d7h;B}w4EWAD&nJ%s(gmjHe$US} zYT6By3Q$nOY}FThK#f^mCcSH8-pIl}iDiJ#X0dvqFPk}~hQG_f0yOO!PseZSGB1{A z91-irq4STP)&w!+uAQZkW7^9KgUOW7mG!Nz-}$38OEE8zq~H-#79Mj;uc-)qjueqj34#Wgxs&}ObwBWJ~;$i zJVf-Gno)gS>b;-S)f$D`I#m^I;Dr_R<;@Ex_5}UK=$1^&sKuL4+7hwuK#}0mj1??*) z=znVB0Y`Z-f;@+~cKa0c62gLL7g6T))ltJ~r};U2B7~?kL~0pLWH-d=uFW0M$a!$O zoUFdT6WDl>hBs>h>4YW-7HlI$qsw8We1NOnrSOW89T{o#w8RhW#jxDyj%}! zPO`F(vQ*${L^V<<{0w{;jkVkjN1la&0T8s>uq=_&Xp`8E)WPEUscz067Q!!hX3TcO`ut*An;doW-*y;v|XQDYK3%7yOewz{Z_oo z^oGtAXZDc2(!lVHNfG~j{u%aXb-Yx9c7ptN^OtU+^W&4q8U0z!aw<;!IlHUEb$esb z-(VSKMu$_-C27E5zcxy~v(+#Sd9x$kY(ms5a(H!=%v>)b6tNoNU2kDEdvAI+wrP&u z^u*E^inqij_qJL+B*iG-aLT+%KwSCi8EDld6ULEZ()HQ!MowsCX=sqh70yfH9BJDX zGc$NuQWp6vqTPZ_M=)QsdtK^6WWg~SVCSnm78TOmq|+ZP>;D!EQW04F{Y)*Mp+9>2 z6J(F_* ztwE?Jy*#dfJ9N)br*)%SCd+Gj(x>(0Qo)IQkqAmerd5#Nwpl?saQ_D}BL}Ie2nbI} z35*>t@-Vn|zV$?|8*nTY5Ih1GEU3B8A7fYZ^C$ao?FqaQDqLWd(6YsYbPpWtoE}LaGMK%Fsw!jGu)F zexx?57<_wc-(&Fb;L8;d#U4^{EXA% zf;)rf5nfdvtK7}*G2Npq&cY0wK;hk46v{ll&3Ic<24W!vNvDE-1M@X)d9gGoG{3R4 zQ&x9I`a7NLjZ3%Z;vPQ|mM;tqqK#Cn+7}~U)yI#Xf6|J z?gPsWqRW!v#3<#HYgKgB=k|5_>SgbdJ(;tG7*mbfTdTjzv z8gJU#3dc9t>MJH72<)y)2Brzjt!NXtIH=!!Twbt%VW^$sS=P(65YzHYRjsXeVC`nG zz5U&gwtPwbZl7QoJQxPJ#ezM7fg#>P4>XEIa5}Mr|3tF1iP(=4HkUMIqdMYEHP6mb zHBJ|CnDp^fB)e*x&SVub9gRWqvg*;qlHC*OQ_#;}=wmU%vKy=;19p7n%R&yaB{eQe zuv3sEmxDoXkC+`>v*_j^=TIH+j#^R-(y<~m^%N8f=(fcMg=)qPUSS~ZyCBtH-wmI zL|92SME$CN_r!ck(WB_l%z1P52-Sl#6Wp6Y`0|-9%S)utHf}__C0W#jjGESN3|zoS zcBdxxgfCiL>M_+WDbkW}@vc~T(RJ_JiqMBIZ}c9|vfF5j)=9J2NDJ(abf6lHzvq=U zv_%CG_~Cxp|G6|n*61533vpKh`6CRB$`L>mu5e@QdVw2u4Y7AjSXI4L@K zG2Z+MwprEGFp~MfeWAQ}))d{(Q9sf3EWNS85N@DXb6L0;NqNdw39?_gD6z3!F0P$j z)4d&l!#qt()2v=|N>Y09idt2RDoIwXLkHwNOgppS9!6PeRl} z#>5J<3|y*>pzG&T3^8dI0$BBhDG>;T!yd@T_PPhpy6`|~!EF^*se`1b22B~f`keXt zRO(B9c4@)Dt6qqh2v>|9BH0tJJp$1~w7)=F(}$z0bTD5| zRMo1Oz|9{}chd>$XnYbMMu>**3f#QZVcd|{Yps>t+i3+=V5N~jNEx+e!_dwW>L4TqmD3Lh^3yhm)y2aM~Sv zU%4a*A|7t+^A5+g{)2hYJ7_6M)ylp)c}(=DShrsnx3-4Y+HSvae0f(@Kb+W{&PS4t zUFU;mEOH5Da=f#m0Rk@Hw1rXXa9z7?Xz;$ylv3Ln^MT?l8tIly`ljS(&21BGFiqwb z`km3~%Rlef+23Pvx;c>5ihN+9k5?btpYyN_B2xN@zEKoYen0A{2OZDCy|2%f3}4*jKbKck32ti^p6^`ml-=@;S7*dSJn!zj>5YR$z75_v&4-L3;kX zl3mTz*+FykyVQ}g(N_VY#yMKgj`tpn0rZr_-D{-G&@`&Z6qvV3zJqds)@cq}CsmF; zx`9dIGrf1ux+5<-KB!$=dm)nr>+=yF<$h536a6 z7MEVVwB>(zLnyD3KGatFH^03@<}KW%=-f?9?$HCkPt_C4F-jWKG99y}u6*}8zg(iA zceA+qrGb9X@uNJf?VyY)@OgsKbUyze;9F^UnAt$}Qck}hx@d3*ovJ-F=Bg9O5w$wn zHw7tCuEHY1!7u3vrj~c!B07XUc;+2&-IP1!A2!@NepJk`_nWTX`>KV!eL>= zXXMv_`kCrn?5V)^?|p6K!Um2fXDW`f7)?qG7x6WX))MM`2lKwe#u>7Bl=*3qz1 z*8DzTidx!I2~gy}sezeOv9Qdu%b!dYg{bA1x^U68WYzT;rkkl32--Qi7nC<`9-V@^ z>RN|p@E>r>Da+ikZFg`2QRg%3eUy2cPNY&z1!zXBg#@WQTqVw|Nm7K_y#$>*L);-+ zr;aW!9Yz*Z3a_XyX|9DswZay0$HqHUy^x4wyLM;@T!2tgqIsn^+rEKCH*bu(YfOk+ z=&}w@{l;U|MEa!zf&yQhCaBU(61n1i|$%6|_cu}Z7}*Xb>B-|}F}7`x7p^6ZXECl7I9fqSm%^RV;q}RR@=s*#F!3rE^eT*&l&Pq`q$Gr(b*LZNob(QGQ5?VG z`cN^{>YTORZSmBSB?Q$51gi#^KP)kDT9^S&AVs#9J62}P#ceS|1|ty2p?UL1yks`- z1&&$R0>;61I&D(MACtBW_<172fQW4{mW+DCMXh`X1(2|QB|qp}I2EG3kt{m7)1tYA zB-~=@Dbv?$O&IVibYu^l9UEFNQD_S?jcw$ce3iTX>fq*>;{<18n*X%^x|>m5`CLV7 zQrheWKGJa6NYi9`Ab+$P+S*W$LRuIOl(MRt6x{asg`iTtM4m%lKrF;@*TT>ZKCz1G#l9h?*ud4H zs60YR_wUWaX|Gh%Z~1AS)zn6+eY70lX8s^vrX}BerEaCX4SE%?*oBKgKK1rBl3@G^^f3VjoTI!0!8jiOl-=G`|*8$NDy*lsXra z`kJ#PIo+O!D#=%`tv@{I`vTe)5B3;~bn8-WEzL0by;FAWN^O9Ml!fSILt`{+4`Ut> zAQ4?zDa+rP@!7!$Zdvb(|KWC-G&pcCJ%Ja2;m3+CYA2KGmbOT4)-^v|KHpa?#^al* zFWx(9iMZFdl1-5cc>iJXKKZ1X}gMq~jQYROeOig3WtPTcm?yk;_!Ho&S_ig`Qm zalE$qHQ)Ap<fACp^bl?afh7o_Ym7({AVYF?-zSyxL#o%2QdY&8AgZMAbr zeb*fMS^I0(G8#7u6{Njf(jlp?D<}T4 zm_|`#sq|{g6_-68^_ZwuhWhf=a}>4KoV0r+{RJu_M@YG&5Bq!rAR{wj(9h5B)!w|N zg@cctreb+_%3Rt#{*(y5D!w>(M<-Q7A$`X_RZ+ke@INF%K1XG@%BO$yPdHplut7YU zKysss+R1%DAS(7Xq9J^nqD1TD?(BI|uA*Rx;&gKOf!O6z;gSvV3!&$c4;b!8k34!4 zdgWnV%EPdVdqAJ+0@lS{@IwA6@HHRE1#*%21V!fDg3uF%bLW$By#0LHo zU3Ch24GYZQs0VZ2rbE8=O0+RI$Eb4L5-B&6p}KMu_s!O#agXU*n8)yUWYs#6Aqu}y zMXH8LJK;PQR@Xy`vWxVLW}BHjI73nw_{E7xZHLv01~+3e1BOGg!5d;vbuAFNy>SXU zKVv$p=JUtozewo3T6NcVC04D`NR{e(u+$}LrL7-C^CdKampiuQmh5XqAD~(xsYtr) z(vmpmu}oRHYQPSwnc(X;%5F68%iY^^HV> z>J=@{61HCpz3+C|aNw{ktXk~Mm=@5@F{ZxprUdzEM5reuQoU@>x8qQ^!TkK#(zx;u z0o5zaFL8xkFEqoRvx>4ty@wAWur6h#8(zSGro2FC=loD<{|_;Z{zXjb4f)+z@Is8` z&C!JsMd0z2b);f14q@}RcJ(!FxJxxsPX`#OA||+1ZkVzeCI=FqYOlvUFxa@Af*liVG83L1wC5y|n( z%F!pl_-}uH5F6db7oDbsMfVPB?CJd;uMw%7u)R`A5%+-kx(_eYL9iOI%*w_?U*qi{E*5_Az)680Mf79Fyw``2-^6vp zgrsvtif@V~I23~0P>+C>20;)|!|338@jVk@2kt4m#f;uAF$$vY30KjltxUErk-oZl z4bi4H{Jlx}@xC9bxTaXvzCD+K31h*FYD9(x{2q|2iiiMA=ueZx$L-~C!C&=8Z(m?@ zEX+wCZ4E!XYla;?BNl5sV7(~6KCXNX@N8ip?Y>dI2KXr+F3J*_jq&N&wm54$c}TdI zi&;O~BXI5a;s}#_K)S~>?K12IGF>O?Kr zHpdSUYJlOeh864GS|ueg&-9?_h!1@ml&L0R;Kf#n-%_<7p^rbiH)^HKtbKbRfpJ;q zqfbOQb5p}7AlzV=;Wv;PZXy#mJ`bB2?&bBlrQW|c)CFS=rPK2Ll;1ktb;Iz(=iqa* zCZ8@|dseRH?-K-50s7mNpu3odwd+6=0M{+%{$eYaj1^b>CnvMkjOrx0mptJrhHQN6 zF&@uks<4b?x^5hEiCZ}#giI@q%RD~*ZJWCDd+$k8lIe<7l8^Tf8e2i2n^SpNJ6@qu zRM7KD^)*IKQ(JHsZ!^aZ_r%9T$8y3B)jryIOhIRTg#`nK`x0Q8FSH?Rj4@&kC-Mk8 zM{Z^~hgxZ144rWgvrMuP%kljLu`FqvGE8h`<>N}?Tj!v-i{}Yx&m%T*u&5q ztjufR)>=~WZO_Lp-^g0P4A+=+NiE6RL-f469Z8~X_0xtus3jDy?B1EOYxemjzqsNl7Pao@Dz z($k{luDK;h2-!(NY|Wy+pMto_;=WP%5W?INGMX&xeS(Pe+RD(dwwqg}vA$hJK^nIx zR7x;5#n#}53AtD(-U@fPT?6=0@70gC@jWwdh=AR5u_I6Tz7R5+;Af=n61+tF@#lxz zA&T$(t_cli=3OCJafsp6=b_kl2+YieyTeKCYT&9c@^Ohu;EoP?zDgt-Gnp1}Dc4F; zO}eFoPvTa)s{VVmFFZ&?1Qanf(9MlC)d@ZY(IcSXpY<2OS9}Y!u;2aZyCCPf3m-CJ z61$v7i8)43HCp0fdBM2aC$FoWfUFF$FfPh=m*=;!G!i{@TPH?8#BsBAL4>`$Ijj2%^LA&d-6Pe)6Vu^yS65 zyrHv2{J=_}f_U3h(R~DVu83k^2@q4%T9m6ZFYL7DOXi+-uMYWjVIhE)h$dv?mX~9D zPNJNU(cEk;rb|c86QSvuH*riupMFq`-^iG84OnKP@7#^%W^KDNy_p22B?}YMI`3>H z<;<9ecOGN9<2Ek`eO0>~Im_0v$ZgVKlJp#k{=@>&uhn(~F=amv-v4#5tb87K z7(-?ud`9(x=@gwxe0|KTZaaHL)9WRTZq8O;b&2ch-$=C850+q!c{47Lj3nwW(KF8a z&RF6EvIEO3E$de2EBt(aTWGx+Z2jzKlI(B+*4@XK>5;lw@b;Y>tA7%iX?NZ4mct?I zcx-L^WG)eZWU7V0pkJTxo>&70NDul9a$66e7C-9Dh&W)S{0dyuB;P^&1Z?nHo{H;} z2nX(I-Yx{gwz9Zy_%bS5jA)VnpvnO*)PmERZAwgcLOQCrkFr_mt|_0bqzLd&U5C9` z2D8E*;-uH3VTh$x&1aL+G_bjcMw4QBO-+rkGfnE&{OJp4;?%#Evpx77LN+!8#zOD; zwjDKuz9rOOrwJIHU$4fW9K}xP5QGrK{06)Z5JlH{gWNyh_nHSxi^NX{6(?u1NNU*? zeF!EPjIgy_!Q!9{#vyyMn4Q@1!IkBqWt(lhOf>lZ}U2FzTi<)t zD$%pPwqyX%q-rXgrB?5X$U~#%J#WBR^I+)6&tHHJB=GuRj&KTiJT5E^@bL#HU$KXa z;&!r&eiC{V3ez+rJJt?X8T({*6LQp(-p1ZZykYodcpP0Th(Ti&7P5%U&5PWj2lT8{ z$gs9+1d$f*B`x1?7rl*>b-xvScl&BGJoP3#FCcG7<~>**X`eMCi;u>lF?2ZaBZA0@ z5n)CL8-3WN<-e>|gGI(v@Qk@$PkWlt^`VrJI)zgP(@*_;YF&D7drZ?!SVyspFHYRf z$2m!`NU*U2Ok=8Bpq3a=b(nGJ6B3%GV&89;AJDu}RWFb(q){RBd&Ju)E)kU_^^(L? z2iUN+S+(n30NcIm^A%hxP_(f7y2+aBHWr>=qA3{Sh2id$H<%nXQDAwaC0uw}BHPe5 zq40KI(ewL?^z9I4^3OwH{#sPLQ3jFfm2dg#baM$|(cxZ9M%c&>o=Wxov_7rcc>~=g z8$rH1zYKy6UxU-y=t-5QASXn4CUf}Lc@U`x&TH?_-(n-OAIRNvh_A1@wOMl2E%eTwVBw|@%q9MG#>v&9@l7`e3NY}*GCCwBZI^=8|asfPrlIj!`k0JD)f@~xK zbv8QXv|T|E>Luog;lZb%D!3R)_8}x)`38>Vt)fMRrEfvE|LR&%v7@ZsvrYD-Y|p)C z7EiWKSK`$80iMMl!51HIZYfL{!A13EULGNH`z|jbBkIbiI!E3T!P%SBnC|Y(kJ%3} z4Pk1xsHe{^0{M`mUzF00gF6qj(~yK~=y^}=>ZBL9Rcaj_(aSSCa;YQ(0tQR9Y=>b0 zlqV}G1NO)0b!}W4)E@4>Vlij(%Pe44{VK@O-un5cMIZU{KojFt3x8u^wmG9`s1_T- zL=+hSWnD%{{AAzcf3<2<3UbYnxxT*Nq{?I|(&iCm#9ffP`mROhDE$Q?iMHwxV49jE zqKA}CZ$EJ?kJJP*jT(-)0}$;}h=nX=Ac-|NkkGS5rUf`EC4Cru_&gVuE9=!f$B5U3 zU)F6CVxL2oEUJ1iA$4CcwO@J^xfg&nAelwGu^kIP{7 zdqNGncj|5-q_Tzauhy#fC;WC-0#6noQ<^3Oz*M2^{c!-9QCKWB1HVyp!$G?I!$a3l zE1_l5MpvF`+IC+28lpJ)k?vhhA#Y)YBViRQM!ryj1CwbP3bkBt9NqI=1gO(8g;H1v zkiK;y_MqX1-m*VS%)GUP?0b-xwZjG1VNTSlPB)Mt!bz6XvU0;!EUQH+z7R+)Z*m5l zw@j0tCW}ve-hSUXp>TPI>G6KI&s4UgGmXZV;*vvjIxASnV~ERj5c*n8Mtk|>Xt9Et zn@BHMa>8fetMEJGn)F6e4kJcnM(^#NiS*<>zA|`;maIUFm8GHnh=ICHgZcb$Lko#r zM}M21Ag5%4Xn(jpThs}Y8>3D4;&vq5bQ#~gRsD*ou2x}E(>-8WUAq5T^;iz ziY$N<66VWTs*tA?g50LQ{@{#Ounn6}=99%uHPwWSf;r-(~ zumk-q|2-IN06<>sh`jmfEKsP#{(K_3H3=m#Pkcu``H#8w_jQ4U`rzPyt@x+%|8!}U z#XlhB96+a_%R{j^%RYhBeioVO)psHxURDCg;T@?~l5Rolv+Fm3$Rp1GH2SrfpZsWwQhwcMmSzoYm_|wq?O@qeD zmImk2s=NJ_`^!};T$kwVQ7e#bKuJ+D;l#GH0)SvAeT++aUB%gXoz~LD=dMzXti;io zo$E}lWenFD_ipJoBQ||HV&5Sy!tW9^#5iF$arrR~pTBw6PP*G6s@o;;7nKIHS;qL6&3*fjs40Pc#b=I}Mx&ON@FB8%7^{`o?P_1u1H-EqllZ!W zK)cUG0+mkmV467B2<*v%WwzInlG)Pa`qx*3rKaU&iVvSc6n9P8IK^ih^`?gC&sX>^ z<6jaa7w8#aI)r?;#fm!LOTFzfW?4a)O!BhR?B;!=vBRkAJ`7ERiMDbe*TGvJq7I%> zaYsGJ{{8ctJE_|YwT;F`Ib^*Ca=aHpBw%J$UU(b929qE~E8aR$A^6|{3&(CIA9B^9 z$rHL1fMB*f!pj=JDpZSPwvA4BZ16!~$D--x1p_h{x%*fwM41i9|1>RwvDXqllt6q- z^v05aM3r8KUq+KM^~Q9rqi5|RR+H2js)GBA&)>T{S5TAGT0U`5w>0YH8eNgp%9?YO zle!t-5U;H{V12w>V2Jo2q^W6Ma#FbM?2-rMHyVVoKCMw;4El6QT`-6;Ko%pu01W}3 zQNBSKSWF6ESS+K{nC#fhho1PZoCZ0h#hNLBwNvjdrMq*?x(S-Nyp?AJ~FO zI34j0j%s^Dpv(`)*fFhmTn{9@(AaFBpAV@2-STtEc%~U{67qWiRNNA;n}4fMRiVuw zIlVE?qOEgs%Tq*-vq=~|;=ToNT@mR`Sd>cO{bJZ%QZmt)zB~5KJRLy^2*;x7_7!FZ zWxL0GV*;Y0?{AkgvpvFIxdFLTuiC|-*6NiEp#fXd2`;Y(gYAToQ#(t3Fv#MdvePhw zSd^HNrb1NO%ZHuJzw@X#Vulx^XIeueS42D~uX*`+8b;F|Y5JJ%ska&VV z3nXtV1DWKgkbRQT-aXtE-^{g*^30A0>})v+A1ACq3$GJF*71F56}FoqWr(;p0%+}c zo!mJmr>0={WZ`)tQrS-hE{Je zev}>9;I2*NDY$(0j9JOkHhfE)ZvbKypVeV9T+tp>af~}U&GCA1tQa!~&y|g&lJ;&Y(Wrx7WaZl#kLqvw$M$mntayN9>5eKhe>U#P z9r@!|5_`fee1`h|NfcB<(|#bmf2K#*1nd3ob+>n>1SwgW84Xj!?QfmPRs_4YaAyPB z!ybhKU)DPX>9#!n=o)$4uMmDB_u-QEgx0%PG|PNB%im{4;LnPUj|3ac6`mni5re0o zzPn_nz_|I|UMb_rtXlr{AXoq}E8*DhXzI`Pb(2z)!c?KQjbGY=(U>P?4vxu;iSHY) zhsArGr=WXRq$~j+1YgqmistrhLM>1tgQRsR2kk^tC()OACw9bcBrW&ZSBOk5L2ABS zEc>dH_WC`wq?orvU_Rgv3u=~~S%u@G#o&)4!#PLBIz%1%Kq?j(}MBcpl-)#;EJADOTfnO)yMxnaF zbS+NB_VU5y=z0g)VTx+&Yww;$e|yZPpLlnLy*no-U*47ZB>9-&ERrUy=BH~-22%jm6NPEIaB};(Na=b1;%V1 z)yZ|f%9fSU?AM`6@~mI7Hu7V|`@)LUtaI25jr3hgZL+RVOdBe-=g^s24})g9pfI-L2H#YC2v zgE?algA^}VEi%`nb-=k}RYE5Zhh(>{zXdk44D{WdNjgTA!Y8@z;Lx2}Q#y;t?K&J~ zZg`h>n-{s&x<**b$uUl&US{tqpEX}hyT|XK7TY$foQQz&*?@tRqvnR+hZ(1!3nsif zeaigGfz(N-Z76e2<5J75G zIta0VfCQp+snQjcC><%061s$rfJhS}p#(yc5=bZ^kmCRNp7)%2opQeUX5N`^&Oct7 zE2QkbpRB$1v)6O4d)=#H1KrRMNU|3ghhf5B2j@Hl3u3)?S8uos$F1$M8bdTjG&Ik9 z@ZnE3zCtC!BMkJD^bFy-a2K=;yoOpeJYXTZ&@Abu?bAK^o$Z{0iM=}!{tU`deQD%) zx&NqmWU^XbY0j8`ma_-v!GJs-3FJC@c;t^IhCK;p8=kqS z*tV|d-rU@hgBD25xMDC-_7zi|-vKv&*zU`^(rdUkr=x=!tKVacCA8I$R8W@?{LHu5 zF%=LGf@~&)9O9D*g6C8mvIJV93hpD0l~HSIu!K`(^ub7E{@1>&SXwvf6D14y@<%57M;q>b+#)SA6#Jnx=Kj+rM6ZUd$Jcj`=HBaB z`!!^xF7H%hB4(wV^{hPBM+~uqqd3>#3JH=mxxMKzcd$M<#6S_Qspb&5CXxU3ZE*9g z*FE>j!?^1^TeeO%zXA_w!9((PU4c#u6e3DN)uOo(yuo!RXXf6_;WlDM%twkZ6DNx& z@~&2B=skJ4Kf1qqHuO4ka=mhv>6(EwPamB7BD#PdR-h*_lC3m-D6!*F3~B5Rnm|34 z90uy=!0`meFg?EARDvSu#e)&o;jqco=Ap9w(wgnQ-3PbRT*$dikR57A5J$=>m*a_H zb7x=HbPz9QRZF|x%>L+i;epmUO}%xrL~2r^tm4{hLdUZ2<4^+k+TFxf^QA7TEWa;K z;PQ0chGxBN&;~M~`poF-2j}dsbZwnT44PtED54&oB{{wrcc`^|rzKL@>qIC;*Jr$^ zjC;ybVU`dh+Ou>kv$>>P&o<`-Q~R@@qSG2M*S+jct%^MnxiHFD)KHYXA|t(sWV{qx zB^br5XuAn^XI7e%J3iBTyF`)?oV53V(`j!0&1WzxMSP z)rSA59aOFy%ZKcs={KsKrJM`)M@VF}dgnNKXv6KDIT$@!Eo|PqCsIH#x!M1WO6Z37 zb!H0IT7TdTxJ1s;uOY7DR5gi{fnqh}ML%npOzkU({e&WuMiNYiVzalZVGJVZbsOEcNqSNR$=_uj6dO2cWE=S4y&5bvZ%#!mcZ_5< zcOK`qo-YgHan4-xfa4UctX+BB7j`rm=WP08Y$D(LM?9^|=mLmo-hgQ3mjuZ#8~k%0 zU{6PP6Zb zoUV$n!B8GyZsC%|nZ+|TM~V%qI*Q^7mdj|N@w)`VNzIp?($d2_<-cHrnAX?I`!MFM zGBO33js>nqA9S7wfAFbsNn0$&I|(xe=XC}eUE)z;)v`I-_SrLK+V}0zxOH zu$yS;+F~duK}HKXMSw7khiX!Vp%DC5MW-E?9TT5XljY$r&Wk-bd8duTpJ5F>owE(2 z#tukYYVu6ZMiqFYEPnBNPc_e&l=rt~`@GpMO@)l3qlUX&r36oXCN-*c-AgSb zQS=)+vchr{96$-UKw;EGNScQj*C(aJugIsR8XOWEYyZyjL0^B<6nY8ClU{KI`hG&E zSRWWa6c0Ie_Cnxt(tmdn=5Kh#;wtw*)cDbt;~@XcUP=CBZA5#U>A1$?EEDLyL**Py z#FX9{EN!X0IdE^nrP-V}0ah&0{93b#u;<63P%PGn2FoN6X!s$glicsk2P`$6AB=?s zCfoF+5>GchZS&hCXZp0ZTf@=wA}}J&pLiCw-IKGvGNB@upk35*rF-6{qN4mR59UZX z|HCJGY^ofNSM)y0x|k+wxTAP$HY40UiMh*Wn7*tpW|m02nXpl#{@QemyEUsWW7u4Yq586J`fw1lfK(l#ySCkht`JMYYuL zzeZ|M+s*s8KX?*b5;#^)CJo^P0SmZxNqs#9FZFTSSmR!! z%a)khi$ucU!%>qcq@yg}8eFPsu^BY%sLxt}s)&!5aG8LwXm#k^)lkmdgwR9$#91lL zl*_h8hFT}|KMgKlUSpNA6TLr@QmYcAq!N<&q65yzd2<$c-lofTargpee8e@iP*GcRQUNkP9!ZMK-uPl8IcW}=!l`Vli2 z>uQOl%J)^@NQW^LdKmCg)WL7q0V^f4RpFV72Q%&}x=5bh-1V_)XxpYBks1qeq%e;&TiidtD^{`Fbz02Sb8a*G9#{U1`I?0f<#gJTk;_;JEOm=+C^?%Q9( z$xN-;O`9erMBjFy7|v1`ui;cBvh`I@U5QJPxvr2bfF`|gI<2@L*BYgMpdZOPrRJC+xAb zTm0+!@runvhfplcfld6V|IGz zbZ)4PMD`U@bku3elvoxAj((YT2NJAO7L3v7WN>|1aDVNsPNC-8%V0gImZ#pv7?q|R zicZ%%qA*%=+GW?Q`F`4&W+d5AM6?B21T2a42PNq9Gqw_uYP*InAOt8}2wjyHz9Ng3 zQ$f0_haxW!_eZ}@mzZb^JmK7fS)`rFYM?LTO`2gCZs7ZOXe+Og#O)12iyX8P4a#oE zgr%wbccTeU#dB^3+#fvdwd0M#eBwv3>Ps_UsHHe2am3Y)AUZ?+fb;RnKbjX8cWY74 zXnjT70L!e9_42`^7lvgg&k1PJwgU24A5EDYMKwf*0$y9-cee0q4GK=*Z_u>wFzs26 zBN?x?#{V8O9WNaG>A6sJNLSNAcKete!Hu9or}JwARiT8L26f<$f^uT?pQ#DZJSdxc z8$cPhK0|Cx(Ei1mf%(v4$}C}@@50&aF5x|hGVz;5(aR={vb1A~KvhRzelQi72St}< zoWVD$cG9#|J4wt${#ZA<5?#i(y(|xlgf{rE!hq0&KI0bfkEb*OH856_8C5MsfzC&{w#kw;H zV5KJXjybb_bcU0!LgjNOf$lJql3pvSeWPThsp!5V&7U{>)0?+dUu1Cv(q#}bG;VTx z!{a8@JlD9spOsWO?r7P|e1?Up_Lz@Vi*=FeWB(!TBbJPJ^&%l0aIt;c&MmVzbm-=Y zQ_R?!BaBV7yHI-++gyyN&{*@^OwYM7k;$dm(#O&tW=aNb$?iWZJ>+~B*>e(>7B6*_ z`y&~PFeCJ! zD!937fGn9fu31KITy|qGAh~Ztvy6Q@H=^nwE7z`r&%s*>kmwSVIl!uQ!rD-0#vq{n zX*3m(^J8Wez|_~{+a`wmm@$rK@PY%}FdLUS`JL^pFgT9WceY7eWcCm@$R~0Ek+kn@ z>$le>HGE4z>6Ab9`Z-nc-!}Trwshk%fozH%Fj^s_BBA8#&LEF{!#P~3iWLwGhL8*B z_EAiYQTWC&M{sB`;CAlTN~zVS*wG?vQN_%dzA$n$69)$L?#F;Wvf9NcWBNkitABYD zCve}Mxf4Lx{sQ0G4w-B`tHrJu{P=CMKYm-Bo5?JIN9yhXR&^<;9}X~SCeV(9Gdb}N zATp!xfrjYZK~<@7ID-!uZb{dnyf_s5O&7}8k6qu4{i3!7bQ1|hv34RE?-{wNSR)vV zb1Pl8OrMhmMzqzKz=$;{WALp}Z@H!jP_kGYB<%Xpockuc$gUJ5?G$nepgGsdxmlqq zNSZj!M}>yGRG8jnp#B1B8}aY*yxUc^;$WW0Uq3?4&l zcgZ5%y0)WF=e<#_z3pj*(~8Oys|6CQz0Z)}q`--chSEamW;{8D0rpBurLj(H#m+a} zKa@fxnhoCuHydSKPR-fTn%#OdF2+StZ1swc`MDdPDy6Rfv^{iee9^ z&-Le*ain4_=P^}$digh4X2+Ds`>MPw*LJe@kZuf zOc4e@k7(0Fnb0pkA2jOc5pn)9!;cg5%M8Ey=Pxt-GQ&U3R=>RAmpA?#--4B2 zX82`>e+pfHdBZ=9Hy8|iKK3@(mT6k84%_F~evmQxUgV1hSbU)VkVo6DZK8V4BmJv0 zRT0mMap&9*7mcAd>UH~M?isE2#>EX)ST;nz3eD2kX5af5LK3HQwdb3**wT0Hm~zf; zJgpd(bynzJU9)l>TAx{_Chyzk%fU=_cVQ<6&%Z<5$k%js!kKk4#0&@5-*p|<_*%`C z8@Sf&JT`n})os`qXW(|CbZw{Tu|>?&rpK}*A4-EdGu2ns3B{*+D&6YlSAsddh3f;W zQ_kz&kyD3vvQKT_FA;ulXKiot@PR;3EDz&kxR1k0*Z?GlrvD16utmrbiI1^djN_@a z>|A@mQPADenv#x#Xz;xV{v+q-zp{polO+fi)0Ln@-vR8(b>n?oN?SlUtjovlFXJ6oC|>S_%**BaBz`!J?p+@?+d z77G5g6R3zdufh2je{H}w`BU@QnM9`1ced3zMOK*8l*92qvt{EZWCLtT0Jbr%$O?7p z%R_S^KUyN^!U-FaxyF7r0Kwc6$agL<7S=hDORAqJJ-)~gMXu1nulUZkv2t_QZ{P`b z!v{c-Nakbc7{I}@2#jFh%~@@=zX2ov^bWv9{`O7fn+JY_RsLyT$a=-^Z2H)BfZw4t zrP%+1N5EMqIQHIfvE=I5-96~ zaNge;R$Bbi-@ueV9PE$3=)wEHfH8kK7=T6oHjGH)ZGS;?{&p}3`46M`Q-5;qtcuRf zOGWGS1_iZ+QyNdQG<5Ib6_U4BCt+6WKQ!8DjhA8e-M+}zDvqm6+4k57if8Qw5K<68 z)%?DJ8rs!E?+rAmV6OXiI0rde31yx8`IY*7eJB*e5Cym~mkz-FfDI|L|Kg3!pN^%` zVfE0JJzub7OK>U<{)@S>)JnA-B;vh2aAIipD*wYF}! zywI~7HqkNiL3<|R*<#yewtqUimd@^w{hh580cJa>2Z6Q?#ds7&LUDa(>l|KVZ34Ls zkvE9En9wM?eFJiN4b0+CK+dDZfi*xTFqj17s34MpXOE9D0C4eL8l2_3h$VADX(Y&? z8kp8mRf`OEeb!m^2SrzoLx0|FhAyl@ug-VSvx0TB_$qhX754b3)bz@yBpDk_?4su3 z%PrYT+28j3^>+8a?fJSac499O#I-Q_&UQIN?Ip1Mp|H*kB6dUm7<&o`_~ibY)crky z`4^`3e;X}*Gict4oshw{NGcn*a$g#pX_$IQRS@D5D!p8+!-( zm|MdT(tV5zH3uncLDv1UA|V8;d-o@RfCYh{5njGqV4<$_1K z=R?8v&9Xth`^}?-XH_Hu5NC){0;-P_-gJGQjc(d?|LW+yy=HfkLuMbwCQZeC+2?@( zO@~2>?+P{gK4#%H-QrQW>qtTvQ1yvJjkQZr3zv2IRuUV4)-iW8G(>GX{GewPak>G? zKBzgKi`tICMpSFa=V9^WS8|+_=4}N!He7kWbNkp1WFf4lMEK zs>1pMX}QXn-fQJz3X$)IX?ZrVcKT4}>Z~^Ps~Y6c7HiLV`Zv@FL;>~~?V%&_GIEb& z(!=A$y7JgKQK7wk1D7(M*p9|*TCa&qJn;&MERf9@y;eB|e#Mi9ASP&qwq||n{i|#J ztItw>zQT@H`)HQrFqQxzOjXJnJ^MJaOeS&6Qph;G)h=j%^mKKK>eG`j1-YA@?d65H z)Y%rYnk{)6lc>R?-`OJZ`T>aZZ=8)!9$2hCJNB_;j>O(^Ry|VdZJ6wC-nb)LFE0TsG@+runANo}CLbNGca}!$AH{KQ5fLkO=yUfYfCMkBK{-ht*LGno46N{6Upf zMt`zy8D(2)!?iD>>K!ijyY$aBhH`HWFi;z!R2?9`R(X(Pa2bkAo=+gHn8iyTJKwsZ zS`bPv9^(gYv89fQ_El@8??=cp<1ldcRjT0e}2-Exar#=){Ih)=- zo={}79@2O^LA_k&qv`n<&DV=VD-$}gI;I1J8)@2eBJ!7GqNE%@+?mJSNb^nTG0VhN zu6C`1;_Pu#aF8>;J@{?t0#DBCv|MsN!t3pfM^Yj~>L$XbXD+ey-ZrGl{urLU`!3Zu ziMB;v^J~j`dL8s5)>;f#lP1F(77xrpOHAqroGlbh9lymo6=bNY`9l|v>}qt0`3W6| z>5eULB$!sV>cWM!q6f4GynGdP7VpQDx%E$AJ&@3P+`5@Ip;+H~^0?G2CuHF4cugW* z-Wkh{K?f7K?v4pD;wmWqCiOpozzdjFqL|-n87@Hkxi{60Y2=bSR#@_G2^o#oC=v2Lc3fi)KG+ z$uDhg)MHafX?bQ>RKx0i|4938!eLjU_RF-`J824!M4FU3uIvkQGBZa?$)P$FV$Cyq zykE8u%498T95G9d3Mm~&`&&BXOh&L}_Vus;XfgLZJ2|TswQE6b*KFCyDIi8!fF<4p z4AA>T-8=SG($okwDzRgig43SMHWQy^}IAR^f=dZuHBf@AFnTFq+40o98gu2c9PbM4(W!?LI5T{`>&rxD-=wxyo(L$O)hdwdR#hk>aeq~zT8 zM*d382*4Mlr7oXS^GG5m!vyWja%rD1Ke&-g*Kbd9c_4Bbqp z9DTr9z(+Q#Lw;l}Jie^jvH;Pk;S)~>K}emHv?_$IL*t=(FcWHyJJuZgK=JT*k@x<# z>S8eNBCVU9Lfr65`Me{wP^w~F+3Qhr-Ir50;G)d8$lK6^h|RPcS%?R{zA^|kTHq+1 zbbrOP`XYJGDq(|D}Q`N2mMN!uCO(I)Qd}9BdCTwr8(?uNz&t z+BDnI=}`He9HD$0_MqpbS5BQfz14X?JyLf-%2!&$SNZ^9#9$Fw2N)V#I-|a!-`AW$ z)~ULoLJ50n1U-YPO1(i*V^N_s+fj|!TNL9WGj2}lT$c~a3oku{9Kw!@-TJJ(*mT#o z6++hCkp}`q{Xi91Gb9AXt!g$_VOFfEDS8t2?*nQmVY0y-i{1kx) zdy6{~bPB5x@$4l+qq4f@$H)?qspJAomh?*0gS7|sv6?5&-#JynB^**0mV1lY*8J*2 z`W=$1v-uP;k=e>Vj?mniYtHPzGLOO@&gOXr@~tWQV{bduaDfgA={36%j>t`| z#1EVG*=3T)r9$xLmV4zni#m^6w7N<>Rn6hOVsQGx-e5NSR^(^~Kph*tY-0d1B7M*(S%sO9$tVOOIw&;9@o#3(sPGkbv*ma}V8Med~%VG!AD2^$FE(k82 zWj8j;0fpsGUi#ImDws3}P)xCUQ%;uKQNUykXSjoOcb9tNPjDJ1S4o3Ol>*VY&N>7I-Bk zop{qWeQyo34R;Sm+3Rhemz}(1HW9@N7Hz7^fYJ-$the~j#^~i?L-?#&A`$fa$nL#>RTO&_U^+=m*X%_Z{(ihp(6>-s-&P=Mm>6v2 zo)3cO&0w-RPVX- z>kY$wk1`any)Kre`Ac!-Wy1qkyNa9lQ@0j*n{=Z}?MW{wvOwH!6}rV!v=L{f7n?pT zUnT!4NZCGqw{W6xAlGv?QKi-uVQ3uzpVnd}+}9H1EAD)T7F%Cg$d8{&%-3>duVtLt z+Ir~8!|>7Z!a7LYl#&%!#tWV8!8xX;OLT1|C4zH#cGD8!(d&)$&Z;^b@%W3I#N*A$ zmDuA`hNbk=7{8mx9wO-`jpDN`}^Yz$K)1v$}YNXg0ZRE$XX35!|o{K@BY< zytH04%rVJ693d+6T=wn>ynWQCUE%82zPc1>iEDkF9!aA(**(^*Lj_{VdIbDM*ca8U zWI`QmuNza3aH$-tlW$1f5@CEUEuyG3p?x>U_<;iW7^)sRz*&baLI&5IV|Dq8P#$GH zM9-BO@2C-}4EM5AcrM$v;P3i1N?Af8Q^g&!Mb!n&^E74>0|;EHlO>wb{7(2d7NoK; zsO4I>r8V-TowiW*pbE zUWLDqep1u2%2xH3!sJSwd{(pu49wFzpf-ysfp?_A153>{1skbXMVX ztl(Kh_JRV@sBUQY`7PGy4*8YNCa^y+y`%iTv)Onr4or`7N69blv2aR}i84uYG1oo0 zzW>?Yiepd0FO{?LBq$SW>~f+-{|JaXXTnym182_rtyU=KzZo7+Wc+dE>wLW7q3|aq zQ+8o*!Fmu)`j#;tKtCCGxLioj{t}_JkmTIw#C^khMW7Z%zS+q}<6&_KjLYIVxOdQE z*2a(#`EIM=rs?hoXTIIq_c~pB>(G6#DcMuD5y2bXaj{~P>KV*r7x)|&v~8yvQjE7Z)9E6NLK4A7j+v9+~uJ+Kw3=8$?O&h~&b zG07^@AmPJmC?T~><2D^j!LSpx98@Cr$&WC~y;1|`nJi{8lvtjrvGHKS0-%vu*ZZyWxVpDT} zhc2}#x|PiCT5m5qeS}F1uTfQ*fVWap(_^K2h|gQdYr-`@qgmzrLH(%=Npv%O(i#X2 z;>}qciR50ODeqq3^c?u$cylljzQ^;1+gvC6jPK!+u=>K`7YUNKyG%134qQBQak5~k z(bZxC0rDa`BiWM##vl_mS)}n0YWH@K5d;3M-Ti@A{HyC-Q005hdhB!B7&HvJJ#kbq zRP~1KTc-`ZLWPVm>FYOMv^Xli7S*25@V#_4++pVMrt`b@hfh`JE(RZRP7$P_NvDYD z9W%ZnJ|x$AHG6NVMF5)u`b@Eu3c z6khExlJM(t;iP5m1I%GrR$UfAK#t~_xy@dQ*AQQGbIg@vBvtxqTu~+8|A6jut?pi% zo+r_jSRL3xP0~d;-NrMGI!@Ck!a+;6s`7q>RGOzrld}g=+J#Y})^yix)j+&DISH!x zss8O2p78g}or417_5o@qd>c^36~WDB;w{e(QzRnfxp^E)1>+1Y99=we(<$rS+hjS) z#bZ5%;%sb8K7P5;l|L_`o8hjTCA64URW&>5koldhvSfrVNnd&$Kj}T#qb)ul<0w~E z<|7U7k-k2jRi}*{#cr%M-=H;(*^v?b0%6>tEg{m8NfR{PH`mI}GSXgRADtY+w&OyV zqoT0P~2H97_iKc0&il#LX{hjm9OHfsx<>Xdcx>!>m8LfxJI^cmf8)I(0%%QW>o?^lJQ4TM_-p{Jy8uzx=61+qV_08a}xWc+B%1Emhw4_ z!hXqb#Jq#kxa^CxXr-}3%1v8SUM0hwhDJ7$xuUh>++!}j=NU%NbHba_vLx?TASWqB3$Csg8 zQ21z(-iCn;O(iBRL$8!9;>{bNf~q^oaAH;+_m7D?^6C9CDEo|x;xo-=pWSr`jj?u; z>aBLWUNq|dcJ0G^go8hyY$UA{s6^W87&IL6UiL{^A`utFI8SV?Ipf)2f|Fix?3a9G zF(jaqW;dY=-&HZ>r*Yjs@(r%Z&G@J1{Lu%(WE_dC!)hrPLN4oiX7e#>$6{k+itDj>NpCE{T#1u!Q-cP z>jSpAliyRZ4s-xWB<&rA?PJ(86A}$6q7G4DP0h*RjMecoCAq9>*q=UE?I_;8gb_CBpY0N3vdfQJN6{CZ=r7XrFl%EVtYs?%t~Cv3wrg$2nK@VT;NNBwKHD z4eOP;=1#f*@WEo%KExwh83i>KR58lb8681oI6k&R6CEak8X6Un9vzM{FTFTrZnmDa z{S!XVXxsRqB|>R%DB~QMO6pF#%Le)$p|#UhXRT!6;Rz}&AfL)E)zf1p9!8- zA_~X|kG;MW9%{Y2;SFOUHQt1zOv;jb^+70y1o=$L{mv$xs8dmoEV|60vec4jHPSi2 z?C&RZc=Ufv4Lz>@f6B4{z0akP^`Oi_W)`wacLvE({hNH)G32^{JNE_?1T@Rz`rCk=Oll4? z&NAOtpMpNE5u(NFfCe|vpf$A}J@cg1V~JLg{g1T8za-o^B42&FiN}Sjf)k+6(~PKl5)DUK1G#6O(wqHw%kzq7)cFyF!;63MZB8Qp&TiHR5&+H%lB^le!MSN zYMgEResQXy4r_R#c-88&Y@b(EZ``Y)%2EQM1Id)p>0X!eLDR1y>oi$g88+{kZ}S)u zWBUB&piFY0kQ{zckkws`ffb7!JBA{O%Luv7BLYDea6gj-WZfmCBi4_A!8U@1XLo3h zX`X4i{psZ4{NT_P<^!SI&b#`_Ey73}&vg4}J+Yylj+G`d@>6g$Z?@^k|jVrtF+COJnX&p$W9L+;Ed`7y;Zb%c>U1m^>2v`xa z(QFJS;?M{3Bey~70QDM~tz4fFFUed2OLDz1>L+H3stXxS{9H&B=q@s;d$dYP$(O{huz8InS<Zfm%aqjOw>-}K(MH5Hr zzO(x(L~<#g+Ol@_eUb=m@HXKesu16w@o3T2R#^_s930eHgr`2&e9#fiJJu1}BF~!cml#;_ zANg?A_=x*EgrN)8c%joULdhUQ@E%@L{9B0%$(eOg5xKf5!3uE7Hv?XB#seTQhRAQ1 z-}N8*PZ$6Fu7mIox1aXK^(|IN93P;s<>+U^kROjMv&zw|h%0Q<*{Pvin}0`4cgNJc z1ToMgZn|L#> z=C`@D$_+f#(p-0W?U>_dPg`Xse%Az9DxnuSn)VnTc;`a}&4Vt+I7?p0aL;OYs!WN^ z%sZW0IliSi)bydB$su8mX|+A9AqY92#q9{@*=iFqH_&Y8S*dC*xT_!HqDqX>nr|vC zw;fV^zl%*t>D`oNTg427*Y}Jwp#;g`!J551+gvF`=doS;Nd+=||u>Q$9O0u+{xQv+iG4whont4AN6#L0LbzSuXz7XTh+5aB(*=RVv z&Z3V%(}vEp|ERKC&6Npd`%#h>%X)?VQD|ot_0wk_w?IW4K(q846+oJc zhHmsFY6$%L@Lw3=#;S-Zns~E1;;lKoy>L9Y_s5e~2NR=G`#x; z0c^8+DC>;oPp>q1w|)h;T}{^0jYQTiQLw0&`)4l=)GdGQ;Fk^L{s;QOb;;fnc@X`c zyO|NTFKu2H$ZQF3y112{;|=%ADvxZ3HDJQDe?cb&NE~XOzaKN80Z9)=W-YYNMk7q8veP(8E9;~{d*+_`@ao;zsU{+ zJo58@DB0NbpZI$#=t=MgLU>WNJYZnEgH-exAFn0KN zN9rI<`*bXSaT7y^7E8IzT=)JUT^8GQ@owa`(YL|CQE5bog-5JfGYLP?jIc*{@Z#~{i?6|d-&Kt`e*+)^)-(* z=d;NBV0guG@u-INRfF4^O}i5DV9@~iM!kRQ<7Lk+G1)su1-4A=GD*hu!N^x$t~esR z$A>u$d$+D6)@&)?JM*2*VJTwh&ZT`9_CLrdJN9wHoz$dhdf+AU02GeobHI_vX;d9Q zLY?o<9y@36P3ePZyt{O|Y|2uph3jB+N$?@Yd?RH>bKHc%t9=KDb%O2lJc83DUsWj7 z_5tYbo|BPy;?R+1#EZ%oUqKPkF|p2EBcC*IN&0WOh~0n|Y437o{F53KCogS);TCr8 zS5m-AZ4d1ic^P5NRYJO0=PxGt0P`46io1s_{ee3N<&QzRSRiECR5DpejtURca8D~> z>y;Omv3aJs|6(Ee&DMjagG)tEmzh596#GVBZXhOu3&LHZ0Y>wV`NxUjha=nibqyAh zmTsm#*MD3^wl?vc5K=#$9<^xl5wmY7`rlU9{u2ME_5s2EwBYPF`6H?M{ArL7^t%xH zO^uHsLm@PGhEzi9kwGc~R8)xkTwh6#8%SwtaHGz+SuPc&GEJYXy&F*@%ZAnn(8h1l z;N$sH^D6!RIl8xVP1k2+qwn*?MJqOciU3UIbpNl>m)~`)eyAonGjS%XmUYhFZWspI z8`l4Mc%FWM*QA;z%Gw!Ahch($5Q?duileC`mY!9>_T)I)V+D%BO9A}KYjPI;jCfnX zdRB;+tFeCa!l>{g@P%O)V{(H?o%0NjSbhT_5RRtx3shcQfh1f(UZ-Ih1T58;0UufrrAlvGz^aF2wmP z4P+WYF>J-tw;O&WNOM3MUpcY2;h1PS-xQ<-IUh~e^!>;Z!;rH`Jmj=%f)~q%O90&Q|<19FR4z29?SV(8A<-5MbH1< z$Tz+RAx6s}V*RjtOVH0oILdFXiX0vP6ri5L}rK<94pWQi>s^wAqiqRNbWn=TIiYPk| zqYEQWP(G!|P=ZOy_7MNKkrKsZD#|kvk6FK&_;?|N>nTb#;LtY6X?v+9E!UYJXjrOl(9Oj=IEekpiZ8r1%)wbL<&J@#{}j(Qb8KQ zlVDWM`iQHMl>e}r_|jd}OL4Eyi}eQukBTP7o*s~2#xZ#8n^O46vZOI`aWfFwmO-V> zs361gr@qMR8dIc6q_hL=tzrSkkFAPv)G|v!Co~$G+6c}olGFLovu3DW9!$R{b6qY9ALj6;!~bnAvStYhJarAE$a^Y*~yBX?bmYuldRlM)4*t8c{`JtkfYo0oP|ZcQroJytYH!A&c*L+|NU*yj zlxUsdFy}h9)~xN&>ka*QzwC4Po*lIv%u?jt&i$THsvh$NLV|vp)mNF2=#j}dMTdr! z5H@?xYKdVgjW9b!CLYCZj^Q3*D`IPyYIzJ~+drsYVck$JS#`p(jMvJqBWl{|8l5YVvEKBZ&9@118;~(jO4!A(X}=EgySezHouV~zEKUVlx{Q@a z?>iqaF8at~BRo6fmSndPa!dioyo)89z(INsL>mEvuvK8fI!i1Fw9-u^ABTeAVrMCK z4xBu{DkMu$lW`Oea<7R%W)|p83~y?)O3elo9T)TlXlPqN_|6v5{qqLu4-&KALCML^ ztWp?FsthCn-H?C$dY5p)U^g;%}z=Ws84uqyJa7aBxWKo2qj0*`3B$ z<;9`)c=)L~^*jY|zy7nbG5?uN&i|Ngf097juw7&L$wKEqRFZD_Z2^@E0)aXGEsi%dBR7$LhR?u z$IhH1jI%0$kO0$PZ4cn%_zaqU^=x&QzTRl1--e565ff*R?o&_R{|!;nIm`#xCtI2+ zk!7}Y-J6Wl&drJEDRw9y#{$PQ$GpAM&9!ZXo>N}6M11|+Z~Lverkv88Out=+9&&(e zc0&d1p`Fo;xYOk#%V>_l4;W~E7MRpKKYEL8yMiY;5jg z)I8|lzVismZKGA~^R`{;-Mcydrk9ay2c4EJ_nZ0Rt0l1|J@n!5TqC#aHb<*gY=xi! zV;5~uu~EBbPXpPbNtf7eBYS_$oy=_ga>rnQTtexr!ia3$OaK{Gqn8_$VSY zki@tTdXnFzP(P#&Z&#>n4jY}D%Qf{or8#)Q;Iu-&@pbBqjA>4!sYu>%5ii4Y7nR80^Db51$p0@Wd} z=8eEY@X|NZ6?#6E?M;`M{F-t{YyYRqD*hN@Rj08r!;SXX$xpKqnF~Y7(w6OUuWaQR z1u*&jlJKGrYmdcqyBL7p8+e;?!cz|@uw;!*RWJiHoHjQY^<#_d=;E&jnx!X`T|Z7v zAi^&`?0G-8;!RDaMc=2usocy=RiwwLcJ&$gY0?3QSO*Uw#Gpy2(9N6LWs}Q0!;43w zE0VWXqCN{QI~d1154!+GhH(CpVy^x`+sFf$TLz?OOoP|t{EvJt+rRGtu;^k~ zkScUsAJ1M_!$+|&Xw8CohW1N+wB3I9qYb1|t#b`JYFXK}mB8iOj^$Uq_y+HpL=_Rb zQ2ZrLHbWa!^xz#k5u1Q2zCq`aD)ui5!|CjP&heD#29yxvWPeL=wbxjCgu={Q)3>JY zTUB+}Y$CqI#dF(VFdAKM^00!3)|_Nqr3Dl94>(t_Y@d|1+Wx6v+4=9 zTs|eW~X5~&byo>l=3ty6O>%o>oz7!LW8y}}C1erVgSz;`3hJOI!iP$3MG-)UO zOe^J70S3yik@Z!VIQZe{$Y%)YntiPMTT`((*8Cyq!pln+_npG1sP(_@#U-7x{4fWq zTbC?#MHxEsJ^K2`$~K%QOS7gid>i?rNOs01W;DZ`?ugh%hS%zzG3!Q1lc~}dlri}a zuL}rl_)jl)pNXQZ(Lx)$yi~o9!1~l&1Q+UAWlOTA?I(93C7Hq)zGYOEIC?O zjw8Xg5Qll-Rs|=`-7M%4@NTxFUnzz=>cn*}gd^@a8pJz24^T|X?A!3x)>8q#+hA_B zF<>eo8IUIHh%A~anQPw)mG13r>-28&buxgZ3MSSWI>T^gS-~qhus~n2n6;+&c_Vzq zQ5VY{-Cqo}N#T!O9g=jn-FC7zUNl=C*@7x20PPvbZiGC=x}|1k^3^T`?0)w7F?w!T zHlqF6-ON3fq8EhQIW-UCFNM53cUl=;wxA|W(`y+A!FAN2M_r&vJ(LY0u>FZI=exjT z?mLgToNm^lYw>B2W@goI`AF%ELFYT)_~Nj|ka+Q5iETy_nmJJ&;Y0O&VraBfVX@gvj@JrJWGz&c6uwuk3Cl!4G2Hk+{V zISHo?moss8`+Ow+Vs20vTcPNF;cvcOKR{Q%TfU!xid3~OottriiE?jOAos_((W4?B z)tsm){}TCLn*a7aw=UndTW3y&weKvK=qNwPDlcXjt+_BTuMFqizbfN-+ROwPAD$)g{Hz5j0i;!249uh2o zbOiwg0i{Zp8hV6K1Vp4pLJ0}dTS5te6lcF@PVxO_zBXt6nQ#8{U0hsTJM8_`o#$E4 zy6<(b?&TcawweVdJ0lTbfjr-c#vI*-8>Mb$Pc$ek(fYA1XnHPggmwp zm6QR&2o-l1kE)$uw|7*z=_@T~;m4?4q)s+ULjooXHRR#(sJHry^yCE&T_=Axa@mUJ zDTNN5INhe~>dj(mwTMb12u&TR&@%qLX=se@bxb_-^JSfnIE zf9y68sw+Q)=qhnn%j?VlV8d>)m%az%1S-~U^o%>$c$-9}aY*xS~m2ahm*N)W{BH$O$k(zNsP0qM>@2;vg~_i+7Dzbu_QOusZBWX1>te5XnU~m= z7H{L`ueV$0-j=6_f%a*4(IzGq?P!v1hEp}wEelJ9y}ZWbx@k-U4V3pd{UL6rB^{LY z$a*1Rm13k6Qp{}}J8x_5Ikoq61OAnh zY$xVAWI_ml0D*LorGe=-HKg^3t&mc!+bwlAQY8<(aJFTl&f#$I z>8Is~%tkfU+#%ImZE)|Q?Wmenb-N_nLAa#I2{}Xir+$^oes~?or3(@~un7zzDc0E} zbMImjqRMmtR%K=coV$-FT`uUmBtCAHZaBzcN5@Jhua=YzkX53A?OayV%J$#`S_*S}N#>G!B3G(Gx5s^JG< zORLolM+h#U*+hmOUF9USWR>0V*vS-)#_wcWD3|p@HFjd*Q6eesI|__J7FL5t7Rw>$ z4v}ydmHf0;mIOrkc}qVheLweMZqDqzaS_dm?(_o};*OQhtfZzy$k4+ zGf$b?1r>w<$&yRoY#5y}z4hYn1%OM-4~I^gGg|?-j=}j7I~>Vvas<4>2j0r&J0u-r z0cgMemlK3IV|wk+_W2ib=3fzu0472~Js}KT&6$99gPrXoq7Q_|-*2jh8krakm%^8! z<388r^y*m!{0@TPr#Owso0QLFe3$G|99^}Bl=7GWX2(sYSG}jYc72W}0$hz={h;0F zqR&~xySv$My!@ePKIi`tXs6yk7>f=~Sf?^zdq0q`OVc_@qN1?Ecc^kA#(Lr?r*-AL|jh!I)?hubm1P2q}0cB zPO*3q2Ngo|j~&F(2>vU=q4FMOhuY&SFB}!QXvwb8=~egX6R|E@(!|63P0!knF~hsu zZK-T!&tZqNs&~lJJH@kq-3~0xi5LX`p3bXwE-I8Lt%D(sX1b7F%hC#-o6WTHDGp3I zO3AfdlS9m&zCfv!dv!fr z$g;$=lS4hcd(Fsa%fi;Z(Q7uZde>v|{hdLq!%r5#Hp*;yuYJb+Zx-;DFjVg?)m)RL z@#1*jy>yAN8E22>&^qw_sVR_!y8Z**iz-HzS%n(`!Md6s;nziMhPPoymj}l3iwFU{KIn||!vy|8XK3OKf3uszLZrx0-vH5s7RA={uw`+CNF;<^@N&E92cVf%v z7K|b!!4=V)brk7}re4>?{A4-SFk_cWgVM~uFo&4m8th|(G|hH39VgMDJ8ocEgAECZ z_hxzE@NJX1TBPvJ-TQuXE!%EXg=OGyHC@;O8u`iMfdqyc9zp|v1}GIWqw;KZOZG&d z8i@C5HHC~hR1Fmg=zS2>SMQ|pa)+FiDyB;@XH>uskcD8=%Qb zexxb&kdXxqDILFK1iM=PvUc`kzMR$V@;FNtT(*I zmaq!;%9%a|w0a#iUk9|c5Fj{B;+OQw4$19rK|bId#}GiD)^V~kYf&UwiY{PHv}c|2 z#LY)2B|Pt+u}}ZdQGzlN93I^Zxq0?zzQsXwTB}XsyZu&8&}q(9U)mM=(Uv5l?&FsI zo|%H=&LmRi=JjvehF866cwkMsKKb0Ec{Hu_m25DP_xHkG96Ex1pmPn9DJLHm^x(&4 zR|}+aTpDD9je89naf=E?c@PiVK1msG=vBWaN7N*(P^HlTTjf>-*J5PDxkG3?R89)O zQOoyC+4xS4xlI;pXX{-M*4q{|yY|uUxq;r70WHrwAA<2N=zu_GF9Av*&EJA?&EspX)G6Oj*>9AIvA5=6_WpU)-_`ruk9teu8$f8 zR2x!u>=k#N^KlPC<)&fdjRcNH!lh~uZk=*{h$-S3LtO4Z@ts?$7{#I{cfQb+O^YwgM-9-+_l<#!k4 zXMTRrl0M^oqOhu2o_ z=)0X=d>`)oM1?;##HOOthCN~z5smhc1_83IzU7H2g%27;bfx^a>CQd);`q3=y{Z)> zH|DX&q^E{hjr-)JY1E2V0ToO{#Xqv|16z?31DBT8ItR+Fy=FV|-+n7<6$z`j(?gV> z>XgoR zskWP&a+?o7?FvPkzI|Wv2sgUe+XwYWDV9R**6U{1VWsOxb==N6!e(k`4EQ>RFppg# za0*aW+B5et0C>;U5FC|;sGnIz^Vm#yAjH$JHvu+p3FEz$J2CwW>TX~Zc2;9ejAs)v z&PFL1217wnYOv@Tl4xr9BhYcGXFsOpB&j9KPqaPQG1ar={Ifo>J_Y(0yBqtQf;kQa zUFDLs$s4c-XiW(cX#bpS@6`+SdH#Ei__^IIyfh@>1K@4^yCX=rYNq=ei;&+Hk&8E# zV(c^7bvOL<{RPouON|wsaB93}6R790p;HIok^YClJ^m9>IRD%F@b_RZ(d=#iN;UZh zGcprL)!(>|yYnMy(y^B43hGnZ#!nW&Vase55&{pwxxWY(S8 ze{tn9g2%G6#Ch<)exeCT46OJ5WI+NfyX`7%fp^ZK3GE5h^Ei$IK7m9)Xup4g%~?U5W75$(zh9KwE1LEkR{2i9&e%n+|Ne<%!msUkFrfR- zs#zGpfA4_DKG>%F0L~@+Ii_*VD5X@_b3g3?tqE@ zV`mz)9lWK&Nf!i6eu11nT$NpnPOLW`|HEhh!yN}+t)gq2w0^Q^{RUVfI3&3T{Kre8 z`#aTt7V^(A`TzTS5=~jRZASG?eZ-pP+<$_PdO~}_L#$iEl3uC~vofwEFa){w^>~ci zOin%-C9Say|KOZALpm)%HUUylLOB&U*#U5G5)x}p4~G=ZinKC2hSBrmK-3k4oI~R_ z12|eRdML6J^&#gKI{n z`1F%SV!^Yl=HFF%fI9fZvvdE;vMB!^24k?wN*oE@2Id2Mlpml=Qy&XeKN9q9PXQR+ zfr#NgKf$WcTw^R&=U5P~xN&Rgr?Dr#%rbfDa@25gdY2s%0}glO7*+zJ+B^s4J@$-K zz3->_eE9m^bj;LtEa6zu7d@7=MT9!D8_+sg>0)F6ZqJ=*N)_Q=aZuJ+Y0)(d*$r5$oB#s=T!CEykdcF3q>Qe17`un*B8UyHOL%j@!OrfE4PZBW zGz#giM~I$MP1I)FJSqZ9)7cF5rC=CkKUwaThieK_0eke&c}BP!^$k&4*0BzdTb+@8 z?kM44d_^?bp!&fQ>e9mt_o5Go`QtxV565_l=*3NU#nr86B%*XvtWE&thb5R1 z3>1@%t55qwRxeM3|BFmegb&f=$sXfZ+z9>()IKKZSS z(T7W^ZDK|j+^ak5pcd#&_?Ki4tUE;Nc!582PE-{LQ?C~s2IOhZev#m zE$aces-GX!(=y<4qD_v=4emKr;R9(5rF04~fls`l5FsVbF+17knwKJPG*CT&b8-(D z5RAp$CBgk)v=8dSE8V_q9<1LVN@G)g7^@V74%6^Zeor!-u1zL^n8!{}L!J%7MZH|R zx^6=P6Gc6|nS*Pxr7J-RHt{x_DE^VAFMd*oy3JqZiNj?Hl+G^h&_CB)N2Mq$uTrlhge4ytebjzhFbvm+y= zg_aX-`c82#k3e4kh~;o6>3#yoqfcw72F-vXfL9T2PdqMc0`%PC8(qaO!0SOz<7<5> z)5`b9v;GkKD`vA#RxF9K)ezgt@CR|CdYl$(+3@P-^e25f! znIJ9m=z&U7asD;=6X6{wJk8w&i)s;QB1dA7PgdxNoXu?3~~K^oG!#AA2H+k5erPYAOk>{ z+&Lp0FH+43G$aTy0O5ReRo#RPdk&ke8(?0zLp8A?B~46p%Oy^Yy1H+FxTCy~qIX^U zJkQyQ14w6B9E5cZaf%v%L5MJl=wck<@2TbOr!nP5Jjyo24gVcICZvbk)8DOkSi?Q`Wq^ml5M zZ{8IB8WyH_)j!m%$IEGPW!vxryk7Q#e1(3-W#y_ep0dM7JDf+){Fpb=FLn@vE#Y6x zbMe*{gj@!s4ZHuGB<=t3d213AEQ?;o0eG4ARhSif7I`-mI9XsJdzY46ScM^0a1B7a z&;=HOtiV479H_DYKxj_QDAFaLb{Lj|tK`xZl$FWfb?=L%N;*t9YF~IGSZOAD+yA{t zra!#^0!MUc?q@X8m1v3!Ez*p~@Q^&X9Uy}hB`d?)!TFT0Gwxo1SB``5vp8>Q*^91; zsx!MyRI3X&#GQVVD;3`~Pf1&JgN|D^O!ay6m6oNf9?VVFE0`a}4$#w$`y`9UE8QaK zCX6T`qL!EWEf~~>{|@S?f?Ev1?FoTOj0GH2I!~W{Pcnv3_30kat6kw<(^#pCH6y~|Li$bVpXZfJOmC+^RDRpN z&U>GA%cND4n~|o$M#d0RKXJ0sxk)#{rx7CX!-FnZ=1C8PR4CXGc0y{Sx6s`R<-b{o z3c9etb6ubjapUNCL&8|?PZnYVrW}_*fibc)?$JPj$my@C1=Q3IzFOc-MS}W@mtL+9 zl%3TVi6(luqMqogLS9R1JoxR3RE~}Wp0bJ8_4ul6=GiC8Ul4Ffw8+{_DOIJ32GHa3 zXC!MTQLfdd0afr)&|5$m6g{1hRV(`m2!qR%2NJo2KWYRWxBc$0JPX$@xMOth_{!k* z2ZLJ2F+Gj5(KkCM3L&p$bbR2dv=fLCA(>{<*>pm}GwxI@_;iW4Y!jCkG~~e`#IB7d zTIYAl6(@R*x$%(i1>1g$(~f`@bg-Lz9~}$!fbbxCThy?&kILg)_(wFP{rrM1-A^!2 zdNj&yl4(0Sd*(p*mx9rjN~%7&fB*tma4=XbsB$g_2pZ-qh}l5R!X zhpPA3XJ|NdUC@wsFp#;t)MF#wy?y>jj~ud(TLg{at=FMY>yy=O9g5PltGQCE3a>y2 zi7|-ECuWnjic41=n){>tsNi-q$*6zaqz!xqE==;Zr%LsfQ8)CRNzpj!Q{%eo;UCXW zUl9Faef)tS%WiV+As_j}IzeEZ0_7It9onT7W=O)W9tB=m=E+Gdn+lZ_WgpKJ)F~b< zFVWE{TXv&NW&N7w;;o_S3joS*LLR61GqT{8G%jFb%OYhvCHs7hzF8ARJIjmo)fQDw zbgR7d)u_ZgAas2>a)bQn&|_FHC_yE_8ZXe~782qsGGs*T)1FJSmipQ`cf%&BTV$t1 z!a(k=v!M5E`7385+~m5tMkDTxd`#ZR^}IIpwRdW40Ep^x$2BZ$dg3K(wfW(NCGo zus&;2Ae(m~YpqwPqYcK9BzwD24UNIT>;uYKCA#dsb{ZsG2i|P2OplWj=X6>R>GPB# zW0-0r*(XdTW*Zs=w-xZ34pk>~ML0DzNx#lcH5tyepO|Tq(W=~8oN9))f-A*VWdS9F z$BZ(tdqQ-uqEDc1C-^AbOCZsLdGko1r$C&0sSVt?W$+>if%3SVc+c1C_^_!?={Z~a zyqQCglf^}NL^R7K+>iaRgC%SqhcIRWDo0)x|#x1YU{!jdfF0O}w zHTdkxwo<(E_rT$2Dq~<-4`Xg?eOiyvLUJnRA};Z*hNZ5t*|rA~+mPh3+tDHISVkYP zdWck_%K#>h8*>7}#}u@s+fuzqr{*@bN2KTK2Kl^PJ4a_sqt6*OmzK6KKJ$65{h>?`&<^*vU^0Dx$y5wwStmvw@M*bm? zx~QlQ;{L&hxC-o)XJK< z5p(fOr4vynonO$ugWV7V$_WMZP{xN6ku+XD(08m!TrTR3OWbD^ir3oA@)hN-p72YE zICBzEmW9l4QpHSGFyw-^Jp~BW9>Zj78SpFh9JO#SsbL)!k%Wn^S12V5Unrb^@G98DpB&29U6NaG&K z`qSPkO~-md{}{HdR_I)Kmh7SaWT|Yit^4seX9mLIS>_U+ah|V|8lDxLp?&D?P?;OV zepy5--UH9Y-p|LrGWXwT912xy27JG{dVd=c_)iGK4qcy2PQlN8YjReK?2nj;yv?(%eD5mBD)*hNn!gm zlA?F&V8@?!x>>jbtpAAd=5fgV<{<~K;Z0wOnh(j z1~1wx_j>WXF2f{sIW}20!POW!kFt0GGJFLASY;M6_mNhxLV~pp@_4Op54P&Jc{PXg za)fNG-iGty6ylA7Wjoj78_pI_Plf<`2u=4%R@Z$~bUfj2A zzg&{26BW2|B6RLviu0BnVIuWpY7wbDcSc)(JjgKX!)=4X@`6Ct1~b*PdiN@MUB35(f4kcd?D|_+_1|B zAI+rEk}%BkLvWZM@jYpo=${1DfK=7Kbioa)4R#$5AN;H(Qq^ga*rRv+Em!{)E+CYB zHJ#YZc^eRvh3!MNA6M@{Tp(d1M4qy<{PI$q&(VXA8+n%ft6`eAZGB*n+!|k%Q=iW-f&Lj z2DSAB9ey|D_pp zH)_194#5@L<;tDNPaZBuO8TvOXRM8s7ZPf$?SPa(53)!g#u3Y+;!@;iWfLkV^O$tf$08C5vtCkH`Y|;la1Lrckuwa*Lzg3$x21)~jph*?e8w#*YKGs- z+xJSzvs(Hc6wHk;(&BjcWFHr=PtTm&0(zx2n{LR+0uFd+oIS;qx=7RW@COStg-%l+ z(7DNA%aP~~UyZ^!sS5!Y^e(2UuGXI8jct9_t%v!+9BJVu@BFU!eh@VZcEOKJ&Nybw z$VRnDk|%5MVRTiYIzPz-jEi%E={bl=xvV*lyDm+vb`o#le%YcnXAs&l%ukVV6x-zv(!xwxk$4x?T0 z)QgZ6ev&f=!NF);yGwmJ1LK2o_XU;1#mJ8U!eg6?+p!PNazhBGB+v57cO>?oyWMs^ zqd`4rTYM292<76KjWi8ptI7(}X&r~9WYz#a#+2puQNFKP&VsRt-Pw!KV`4A74d6>9 ziB8s%BAE~O8N3(XV79~o*3@gngdKPlL$2*=cRWH;aCbaSDvM8(4R>mJ(fi?!ZD(NG znpJ?TFfzc`OW>^k#Oh}9eX~1*-~N(H71#e^l`2E#uh3?RpwJq>dXC8avF_NJf(td^ z+G_kRpoY@LPnXC(R3uSO8BGTgK7*+<$Z*iO9gI!~SY2^UF6;dxT-G$G5#VyqqCZ5p zC9IaJFcC;H;4wWW^XH#CbBE2s67tKvztksQclJXO`akM8gY@!1Zvv}tyb9IyH)&H# z?%&%S^Vl=G z_?LTif9Wgt|2zG&kwV7Z z4&!Jn5RR<}B&UYn+Xio733u}brM910_|~rXPP6)4g2S`xyt`oVh;19@K2WOG*AzWsdDYk z+B-)6_HkW`MLNZr-2b$6yZEa59p)%W6D2yX>qqGRAt6J&wO@WG{3_t&1tJEB(?kFyRz<3sgY|UX7VYhrUEhLVj(R zF8zWo^C<=V3QzYAtAFVLZcX5$Y7zQ71i8Bq8dP7-nCj+>q&xkD-r_k_#BQ>FoQR*5 zCge@Un`^tnTs>|MG}i{O6|Y zb2i}X`Exy6V0&}M3jNE_CH(SQ?DM_wSKhUEGXJSb`v3Gb{lD99EGgANi`j&vR9pPv zO`1y0>&nr6v|fl&H#rhz#)Z)Idyv=zZd@OI%#ZkeUB3uWRtk2Hp>5TabD$pH19$YR z*FW#-_wO(JWi_>Y@fTK1<7q#D#`b0gxz9swE|PE+wo=<7GK6R?)uy=T(zIKq$K{s{ zd{`x}@09TUxz*D{ZQD~v?rplMRkZh_B>C6JdQ^RRAOfITz6 zc;NS8RR52GxAL^ViSp4_SN?3J8``X=E%k8ip~LaJ-2mMq6~Da-_$IS6^RKxArixJx z^4nPe&N={?330&aA5{iy^=tO!bWR9U$>xzon#}|-1L-<|l_QO1vI6!AUk>w>7e6x$ z1)&O|>7E}K-br~Q|5`b>&#Hh47YEP_Y(U+Qf%-Z>{AsZzYT|7CS)?R){MI3WJ@#oE zFgAb{{0|MZ5s(?xJ9jD6l{(p4m&vj4|I zEhDw}Is5*h6F^dvUyH0`8dZ!lW(ul48h>p^w2X66 z@ocquyI(g&9?UoIxf22YaeoNlQSN~l?6=P2qarDnNrmhPftdD&9_Sm3rvNCz|gr zTV6su9|ZFnA>rVOF^PpJ#Z1(N9FWmyJN2z_1LcK}=!7;g!ofc{X&gxG?}+E#@sU6m z2+2Vf2dwq(`iS$MFH5nQ`m)*Mqz~N>0D#!Z{nm}~Rpfp7hcCt{8<@2)f2v_gD|eAi+`5DU`YEkW&}9Zwke>TYTp$}!VY%j^0ex{d* zia?wIPD@_JR3H59Va>~)gPvx~QGxfEU3GO*s5k+8eq{RTBVAw9_s`ES-ucP0LT*W| z^fz>K;v=}=~!3&qT=y&QV2-LgI5eKI|F$^^X-E)=zXPGsvj=7r@J5mI?r z0rd@#3arUwrWC2`pgf}$nu2qD(cxWVL^K<`|H&fkoRkAHP_;8P20R^?sSwi%;dlg# zM4s7ZE0yiaJl{BYv4vcKq2W0k7Jclm?Z_L92HfhG(wVyCz{ACE?Sa!5mhD87Y&fG^ zBpJDyg3NEVXbwdhl6nI!v!|K&?hYjABUESlGCJdplNOsXuQ5w#Y_vY&`uqxd`W>1> zlOOIzGU)(bh9QcL30pV8!ER~&b}d#T6j|C*$ki@=Fr{(M!bbQ+W6?|gD^5HWyUEWx z-v(J^tgK8mjEyN*@3Dy}a!oI9Ri}P?x6!fNci+y9qhk}sWujMn?Pp~mS zV1RyF2X+R|NlnOy-)Mxyv)vPm`$5w3P#Mrs#7f_PWBcRseY1N}${>Yg_9JBnre#;I zl4d%A9k?0|u<5EzR)n#uN>`_MbZQxqZv&8jlnj z1okp{3O<2$jbOZPIn3;FBT!z7#dk$ttb+*{6;<_90v_kI*OCeTm0lQ@gLhA~r{vR* zF;GC#OObebl>;i)>5)!xU3L5PP2w7qXKl}Vu}e12!h-g3u`?X^Hyr!rgjgT%{R zzB-m-Vz{&D#QZ#H&?OwxXbEcDIXrSTRf*~Ct%5Frd8g`4l7Lb=~hKy_{f!q~U0$cI{*rNnkpJxRtfTpxKD1Xpn2i6guf0e~m8HIiU4r8$a* za^lW*eRAX{=|->8)eoZzs6Jj!Mvj!gvvc5!lOj>cnqL<$xvKKlPQUQXdIoqT-)FJc za2}k1UuL`mJD0L{Wb#&$s{u6=MAUoehWqUWc_U`!z|GsAFVpL$wLrb$YYTps|-1By@}?#}1~w z-qIr@$T~KdN-#4+L^kk{O8_ z!a*LyP{Vd0H?>z+xDxb)GitcR+fP9xz(x6%-U;<9s$;V)Y%E7N@NCRp5C>guniFS^ z`N_iGa*+z@N||CIji#X-FO0SbW`S2DmTo31*2k@RJ*j-4atPGNyN~OdYyT*6y5uLz znRO*}RHi6t{wbOO$i{o*x~o|~oBOt%|18j|-=J>uUX(8{w6w?8UYbYr`*h)VN$L>u zm>~gq5(jt8!l0`js0rnf(=lpZSy5t@WMwbHaOrH&#o-H)D>?gpKD`d0m)4^yoNaqk zZZB73jiH*}CTmlpbBkX_nuk|wRJFBr{0ASVq}C1(ua180PuUwY*sH^T{5^r`K}T{w zCgEAj1+q52L(mw;6=>3mCcT8(NufE)rw6_mJkc**-Oh(qO_=ZrtXS|rzxT2xdJ_ry zU7{z=WM!9RHACc#M!NS?v+SwC{gw&FbtLH@e9AfV+32y78lTnU!vy zjHWkyp|QsGcJG`HA>#UyysFTveJi?@Ffyg09Gb~X)dl!`fhuiNyhAXVCU6c_c_i%K z$$gHiF9*^CcXKm#R>7FqeK9i`Mw+VhBUwZy>b@tC3%RAW;mTaF5e56MV3X%Wz8Y$n#K;vXoI?R(G2 zmsF%2aJzKzN|(R}`V8Ecw0VQ->`W3SoGpA<^u4PX=}C=gx3<#3(+swBoTBdP><&&T z2C!UV|FY69yZ-~HLJ2Q;W`o9TE<6GcLa~S%WL36d$ki%unm}S0@6%2jai?n%oOd~U{FWQAoq~sZDfg*J0{CcPrXD~P zMxTLrD(JGyOWH-;{q|X)tj$LutUZ3(bd9DeHrm@yj4$q!M5i>|8JeQJgy!vx6Oxm* z{UIbH8uCeirUK&)osEFz2vq(GI_nAK175GL_s*}fS-V`3Fxh)?l6GQEL}0a*SXCoC z1|cv;-;_GSH5u>DVeL8(7CbSY|hrw+B4r;F46X5u!~u0AOv^ zf8Q|$5=2mS*)f#NNjOIh0@z-yEwU|S&Wupvq-MxWE+f^W3T1oip=#(n@=e6OjWU*X z$Hj8QSPMIG*Rp+ z;ym02Oe&SRHO2jHEB&e%rjo}|1BW@mi<`dOo2n7!F&v%H$Q_~%Y0#f?ywleqij$e_ zeHxppFt|in8MjL4zBsu(0;w3G8&kzd3dYm}r1cIVR2Zy;*{5->(ArsH zX;o-};mv1q{K@u#yk0d~rHEc8O9Lq@Y8w)ctUi<#?PtO|7FuODMEI8bWOCYyO(bRK zqK<7_64o<9Ab#xI5D>b2azyhGU2ceOPn4CXeL`HQOSK~9rdd=9S`CJLpAAi%>0!Ca zFR`NVXD+`SA-lwcowQx;D~xqR`-X-yh_)>>^Wf0xP=8I5?pvxaMS*l@>Kv&blO=@s zc6q^3j;vJL{KalR)zkh}t$ux+$XmT4(MwIZ(ZBajx!_z++CFjRF~a zOrL(KLw9+YNbyMvEy+7rvjyAM>+yzIrQ3h#*q!V&TEs1zd|9HqO~-)a@jUSBgg!CL zN>Tx^BS!cu0H}mJzm~+<80M0Rg44Z%%%A}9oeJmvGyUw$PCkMk)%3r9)Bnoqqo|=yGoV`Eq;^kFx^)3+JN|_;hJu%u%$B&5 z0==OjhRP{DdiPEiny5}xo#=A?#`CCEj8Ai$rw4gD21d7=VuUK%ja&Q2MiI_vP^j;(-_?O zu>XOzA-RfTMLM*zDhc@T3Z|zjah7o{aY8xewRzrv#?Zj3+2|$5nLdx)Ak<+gYqpx_ zrY|=+HK-vo_@jUbc2+xV-%?t6axoN}rm(2oax-qetTHx1Y3A_y*I z8XpNH)L<%8kwobqDVkEGw1vGMn?(iPAOiO6D7j?prT?v)FV}Y2ek&+vS?(2bZI)gl zgm_oa4J_yPt=#e|3Pn?>yH|r?L-y`99wapY>LNg%t7w9TTTaux_~s&u0y7k^n%_>v z_}KO3PpEOnec`;cDSV&xcyrLFz289mEdo?l0y4_FZHkRr)*?}d3c5G)BSt%MP~CQb z@_M)tbmce1y~ka_JG~&B$+ZD^5P=`hhZwU%#g#muTOOa?a&Frk$JyEIl+wDUo>(XO zvP(#^sJPX@`^g6^DzF+MWl+02Os~?p3g4?u=?3d@v##b(_VFJ4?V8dvd^4BO2D*g5nC4t%1TP+Um2rUXb#6xn3v5rV6Z{45qOTY!rE(U=HDD)j2l zU%C+U$aS%oob-)v>$n>wi)udOpn?JKr~46=>q#Pj!qnCz*sLMJDCx_$nh&Pv!52aI zen{LX_L?XuIB@O+EYO#dIUvjA4Rmg80I#}*l9LpKTd5Ex_h zO;kwyTTQ4F&rB-q`hoFlF2@W?5+koE17Nh~q~s4;>5cW6Ng7F}r>Tk%A4+9YqhHp2^i6;K8j_PD%Xy7Niq0rb4K}uJV>pPZJ8F z(lL7+Pv4gn5<}u{blRRDSRFl*?jx6`FJs&LL#+FWf9&J5&8(=beH!Wnd;|s01LUPL zhMW!bt5L{bI^CVq9M=&yI=NJST7A|wh=ZSZhHFJrj>;e%xI=9vhCZU}rWvskVNbD! zBe|$=Ylpfb3*vdss`%YKxLnVF;lcz*v%S+^f=3@Eh zSp+v-mI@;#9Cr*v6JedpAU3=4De2Ohw`xIXbp4AmB5_hg$0ls~{FVL#X)9S2x#o}5 zq~buN12x$VN^k&S9zu5xU_(;-C=-;jVK@oyVWU_E?n{)f1bolW1ZFhe1^`D=50l5B6B^LcKm{vm zLa1yc+?F(NG+3@-shp&4;`RY&u#wZpp;9O1GtRc(=I+Zx#X_DgLe=g912_dAwe_wU z`to{dgt9yt(hUR^c>}4s@b5E-_-AQuF@R+*8wqA>VGkUG-%9IhH~d`U#}=ow;@@~f zB}&+-L-}sv^}7}>!IoJOXbuD~T$bufPQ()MT_CD{jU?zubIbchM7V` zPvc|WT@#kD>wRY5m>TfYRJQ5$NHvu(<^`3QG7ZU@m<&Vf%L}Npk5}iP_WGW9qw`zI zweEu-f9!i|p*R^pxl6U5#zzBM#50)X0HMp@L~92g;i)>XbC+FB&qeDC`lrtGf@FL2 z@4b-ZYwEUo72IjSfUVq3gs2ziQYIB|o)7Glw>OZPlwK7X_om^#PK7*D1>w|heI%nX zS%;W|R%&qNoy?2zb6p)L$2$x8m#n^=nee*9GIXBf6TA1p?Tbz27|@11z|Glaa55t# zM_c43kZpoA3Ahr~0lBecjpd%Y(13E@yngVDFiOOKD*8@{bt2W7sp9}{2L1P&%fDWf7clNs;XTu^ar$& z#djD;B>VVZ&xEY{_Q27fKZwjtJRC`)88^mH%{Y!qKU$Ev$m#-9Eaq|Tx^k%U;a5qa z#;mdM5g>3RGJb{2x=T&p^(uPk!h3Jmkc%kVarl0!Inf?4oItgakzRL)a@jt31dG1O zGL^b~3t{6br_9N2N_v=FgezYm(@w(8vuGyMsjIe};VBx@ok=sj=Dd@!tnua_xvunPSM=bk#kAo|EwqvRxFK$z)pv20t0l>Ez~9jxW1*Qvp4s=p@6 zXaH7_U!pP-vwNHh9vDDPU_7N3SO_6_IUPAwO9(vH{G~ggP{Lz%?3J$eu;)FoU#zvcR** z0AR+C-<{=VY#=-1?<%{Oz^HmK$!!pq?J7}23rbxXAj0y)g9Y1+2fW*u5aP#K4Eie(%h6D=$z^< zSxsN@U-dnB(788$Hb>#Y<4?zC+^3zIek2;}|Ao?`R4zHJ35>?2bbw9;&Ua*9t{Pm? zFe%j!5lV29+8RAKi@^w2FYBSW)zSbZnm7k z1PFKWrj*dr%T&E@57 zeHq@UePdx)KJoC({pG^mFRfwH-}enTi2XXw34fUAeP4VZS?m9y4LQF~(KTOzNwuT7 zwHY!O#v7E`8(&@itQq-qOT$|G&p&g+TV}yJX5bA|j+_;(c`h(Td^lE!WwX_aehJbPK2j`oE#)0K+Ugg3>~*{n>*V7qd1Buzw4rD-F0Sc%=g?Pf z4Q^Uo@@CeUImLv`-R1QVh*2-6CQ=XRz33;JoQ8ain7o%T7ntLJj$8Q2_4d1K-aQkL zR&;#U8N@zn9w3T~=}_?4;TeC(IrU@~TrcG|`*53=^~LqMhJKt1rJGtv)6s^#^K=^5 zB2B(^mu^zXE{q@6Q~NwqTOS(a1sN5-3ePw-#Z%2V z29|a8y5~?t`%O8*X^orZ!`*@x(4K|tf`|WD$aV;3sTAIkn(LC_t?gy?i^f9vkw9}t z@_h7G|G_}JK5wO~&bK3aO;91vqV8u}ABlFPjT(>F^4z9 z)!szm~4EM5(T>G9=-gS8DZxia3erpCt<$>Un* zQ0z@{KU8jg==1r>a*BB>u$b^*RDN0hJKh6VeOx)AbdlSM_?4-2#aZB~K(T=QWoz@e z9(nnFy`$1O{Gnz`?$@j$rk3>LHJ7D~dyxD0(Iq`AoB`S;4Oq-J0Sjp0l*LC?AcpZ4 z9EcUuGR^~dLW9US5a~6wkr|O;2ppAj0c)wR{1(Y=1xdROzwxaUt`7t~vVNbkbF^dR z9~Qbel!KJyl^SUN^yt%a-G21}kE^D^j$LfPsWKr3z2Gs7CaIYK*4SwfH}cyMkg)Vo z){KKcnx-5Gc(C&+V4)=@|F^lCf!SfN=_ayLNh$n8>#fV789$E8i9PQ&yLM&K5owNG zp2N<)1_Z{snI8s$IqmAeZz(Q8sDfft08jk2q7t0=0mDC324w2e1OiLn7XWs~r$umQ zmHWHnvVWz+379EfvRI7Y`J6y=%nmMNM(1m7LugLlc}xB`weQ4O_Um`CSOm+w_A7NA z(gjQcG_)ZeRO8q;i{Y4KYtdnz;qAT}b}_37cVoz>>rd)W_>;O-Ix>YcPm`5)BH~d6 zOOSi@?#ODz^m4V)8IMkC?x(59icfuRgJuo?jlK7dYpUJShNGz1u}}nrs8m5fP(W!> z5fBhjlrBW2NDC3^5)u^YU<3pdgdjyaQ3xP4QX?WDH54HPq!UOeA&}y?otftxpEKv2 zd1vPR=AAk7{E^>ghrP4+zW2JzTI*WZRV948_{)FA!?$MyoyC(CX};`zYDpY!{hw=X zyYZz>A#VlN{&*IUdTGFfRxP#ggg=5dLidggT?{O^eFXNlE;f7ka9Ouf?#VQ~?;);q);{4>;jP%`=RU3S!r?o+Egkw;^A8&Kzx1mAeKhR9#Z8Xl=Kvx=tR;Tc+Wd@-(%!}gfpU_-*blqi zzWp*VOYQ#c!2j%4f#J%zG!KBg9f4mrvMNg;V>k9-*&cuwp`+~b_39G<>KFF|^k;;$ ztMIS*w;NpZ=;$Ay9eR=Bg4sWH@Xi-0pY(kQ{&ciEG9S`wZ~iGG3kJo1o8_>^8_{@H-wG-J6K&erVm~D)A$jbk#r?YNfrM+Wsv?-26%lES;d+JnJ_q&#GBF0yM zLdqy>%&%(L!Od zu$fhP@AS$3p@_L;7e^YX20f~WEcX$Ts?3^8JGvz<1t$mI2Dz_#+#J( zq+HbvP&j|^?eZb=mjHdShtZRjkOK^^iFE=zgdeEj+=Ep1t8TnL_YmIu21tZQ$QSlg z-p6$Bw7)(rGOR2RgglRMW0)jAMeV6O&B$qVE%3;fe>}b?MbV$ghQFAf@`eOx8W-6J zz0WaGa-kbi6QtnABV~a$Z1h49i#_x8&XqSQqrC4wv@+Hz%G%;PsbgZV9yc4UTwL3d0~0KzVZf-O*WPy#=Jbh zs5W6dcAzb_Jf9!x%O9E-`fhu&+PaOgHRPbt>3Bpg->vQUF6`cMj<31@(0cw!{A47s zRDo|=(~jorblvJMOF<#-U?%uEcY!tOJs?B}`gTZn)arv*pa|)nfhxo7mt?K8N#WBDq|>FgcdCH%)!~ChJQ7f*0FS6Ko!M z(Yx(Pv1kDHwBwPQMH5H6=LjGCd-o!R2-D=gx?`5u5MTWjIl|z5)oeiI zV@GFc@H16d$IdBU_FFlGHp~U705A}BMk_49`j03VT`Vrbikn`4ACWe6>o7%R#PDEr z#nwtxB;*Lfl6G&rS^1Njn-@iLB)!Ya=){+c_j8)AS&ChaZ$mVvz8YAz=-cwS{}hV$ zPh7ROzWB`(219?r+n>S}gN3u7`~ZE=^Fwo5>F)v9eTZL(H*_aQo)JIRfe#p0*fTKj z%_uPQ+bqD=C0r7oV^i2@m-mhPlD=qqZ=02;&4k2?hcnVKY9fjvjjw#$F-*Tr?F`en z2;?1zR_kF4@T{IX5kMno+15%t#`UyU)B8kjJM_|Cp*7|{^N(6!Mm9BIYz|N(lNbq$ z(h$gK#oChm+)v8q#E}IBn_jzlRQQak0ul>;gm%b&q#PiS^ekcA2z;^ReKLf1#>Ckw z*j9I;tKs{hE{b;}tv6J(535QMnTX&VW2la6&sv!e*Bs2YnBBa3X&2&^9j-IcLDX@| z?!%(YEzytWw`5G#dCP0yGpUB0L+I6Le;4VF;p*Z3uNC8%)y{h{K(1c5ZJgK;!Z=SB z;V0IYKZJy?8J#gaIQsFc?I}>(L;X0|=ZDP^t)1i%KMWbaz@)AdRKYtmpn=rTwgxk+ z`-2LiGzU?s!(|`tKD@t-G*^0Fue~tfL4lrfhKSTaGocLP^|Bt^R6N0_f`7A)Vc#Ts zs=@IzxuyHa9rqDJ-c(f-epr?;^cJ%Rm@If$e0lTlobh*~nun6YSd=Sz@6sh+v2q^d zI5|eY_HKVTQsu0dWU?4oMHAz^@gWT_Od<}<46#Ei0j_)Uv5=hul@mQ z6r1UMETs>?XwjiU_d{#M(uYy*2w|ps&VwqE$~5bzkuw`(g1&=agM^Q5fy%Pf zYodT)xTuDvck#@oZ&IG$+fOzY!_I*4!6)KQA;sO&7oK|H_S%(s`(nzWP4hqqOq5Xs zBa`+Gjxb#HU^0zHB|Wz4k~pn9%gM*3E|eq)8;r@UZ%aGCx>y-Jej9w)3%++&&8@#G zOO;+_6TQFOL&Lo=H~03tt5`9lzeXgY%P+ir0VrF^F30bvTe{?;F!F&=!t50jVC1Z0 z4E!>9KnNMCRP&OsGl^S6EYEfp!f(~6V`P0P(!%WxtnuDk(7+B4@HcL5?yWUB^okzD zX`<~88X*jE{O!y`M&`%zs%Lq2nO5O)I<0ZH9G@vRY(4M*l4f+*ubLi9>x^b8j-z+Y zC7Z>I;G+;X+4wxonnPjFrZI6!_Q&)(b@!4eW&&sqK%q3Ql}a8tbGx)O60&zjaaLuY zt8jt-ZuJk&s%IRQr(n4EZN-)c{!WmL< zD#?Q3O%~xI=RDRDnt#+|4P+R0K|^ai-R0H-ZGAn<+}z(@N>>VOk5+kYe>gd%9<_%h zOr02`B*kQOYYEM462lROdD+d_X1Ef~O^)I&BvBHy^Y)oMu*OqaQAOh9GHNGh!1f%q zCFad6km+CAF;7er47m&78?a7A%9BrBe09U;Pvq_NH~Ktmbd!puSWb)xTmod%q7aH? z{1Ip3W>a!rDa|plr>OS((^rz=EwmT%`ky*T7nD4^P7+>~v0YN@=4TcYTL(+iWV-ZM ze}E*h>$s)NfLasHV8SNPM}?;x0UDM-dRljcijOoy9dO>XjlJ*hN~fGL^oP|j6R&*# z_~5qETk`S)(46dHaxI~OCt`hbop2txbGAIm_8@gzRmgOh8PPF5cTVJDV9R)0SAEs>W@`?Y&zeH075p*YNntkwI_^_TEofBJ%E?6B?DmQpSTzz- zca^j17}t?Jc?>M3mX>q$O?`*6H_RFUSvM8koKS7Z)8b~R17av?=sepQp-^}^TAHP=$(mo z9Gu0^2_qQ|RK@;xUY*bCq)j3mJxEOO$vrc(9@# zFiV6iT|`UxR!Wn(l|fyehlfN?8gc9N@g#|N0*jPSEjziMF|4H;b*Y@pw=+WUMhwH~ zEiHR~ZWm44cw`^@<@4}yT=HebO!sql6YgE}j5g;c!-wO?jYA!~lp{D`hJq>a>>dk> zn}$(=6ISxg_hSt$-KX;R^S&6tY3J9kAjDXI`+`bLfUe{%6qsF!dy^Ef!mzpSc|fW9b1s9?(uz z?L{7Aw9K6cz=$X%az^-xz0#(pH@ZwO<~3rR+>FSb|5-QdAL{&nN4_3tV8`E9zFLqq0m$04 zDksSGWpUasJL$PVrPsxOj^6TK-}2i_`44Wl14uB`CmYm!G->l>fmun7GQgGP4b-fk zLCw4^vfA}iH29D$l_^6yZP%~FjXzOdkd%>kS}jsGDdX9l|AI|)zg+H_Io}&PD`)%H zZ#11*f0gkdlP1p7lG~;85pXY`0val-vMx{tmlWg1Pj3^5$(jK%*&W8zA{iNjsWT`t z4-o0wJ(R=&wQ_(;VlWWt<115OZHZ^e8borv{I`As$f~Mx4gg%9sINspbayX?tj9Xe z`5ADv{uyu;gf!rC)6Ykf7}_i##C)k72r&mK{j7El147IpFvA}pkUfB_?9K@K<6iz~ zm;Vv=;>_^X?)M6S8BCjX7t5I#0#uhDp1!58WV-F0&^QSRk>KS%{U4F``E6|bhupR; zZEUke5&3|~V4m??DC*OR70w4NC&mCY4a|xAeye`o9|yz;zW_l=(9aJ7H7Adn?|`#G zL`55oUv@6u04BjFKjVqNo%o;G?%@alwH8%?nvEb(0b^F=;P<;YChqXDj7aJKV;RHW zZvKz$KflEP*X?jJiL|`42AH#De}FPgFuxOm+R_PhRH5GxZz2-F(%~iW%|Fqz0P>8z zKxr=VHEDB8@x3Y_U-`@KlmBw4+<%Oc^dEpS=C}9pKXv;brMv;6oVfrY2KGFDmFsr1 z*Y9`#>k~JC#4;UlAOVF7loO8-vPEr)(vvwni=l?j2w?^m{X=q#pKT6RFPj_u00msAos}*cjqnW^3?%&2`~cmsw#sQlg(ph|pCyHF z5`)SLAp7TU8uFvDHqM@U4k&T^!ic>K8Rspp9Dfpb>&brE5_T@$0Ui!5F^^_+LPV5a(<&TGF8cy{%2e!WVly?v< zQe8HZwrcWv0f4-JW=ekg zeq0kjKsP)AwFpnt%#O;)+28N({%M1}zn%D>-9o8ERtS;v0q~eIlFM9W8==br(9H=| zPNYj;`YT|LxhPR2px39NQ)uOfx?B=BMcvgZwgv8Jiy(Lzl}pjAh{Wb znbrtJfWK46RrRa>*eflbZ+_~8gDv%TDYkv%0t$*Es;~GDBUz`O!viiY@?EiMN<7zkeyS={Mlol%r+YW7 zRj$(i_93{}(2LQI{wRtc8aJJKrTT1K)Lgc=>~Q|=_tsg9J$2wd}pvsitA&`CE!?hB1Bc5(@WwN@mBA*U?O1nqJ=O<+Vc)D$!oyy@x+-0ZY zojN0+{52ruc0KY^5M>Rz_k5pxQC<53WVglmEJBlOoL#ld z;{XkSs1`rs9J|aL9IhqBNEkDJ*F6Q!V*Z8Q@0HZW?_Ln(7AH%n zdBMFVg>F7e^vx46wUMt_zim_47uRPo!)`Z}o=Me_^TJ68+0G-4jFbaKhRX)KkVMiE zyd%tzvuhtU?B>@WAiHWKl}2cvhBj=Bt%&f>{h}e~Q~DX}Q*wU9&$1pR@0Q!ay|s#m zA#L0Y9grmxny^oOAh?Q!S4D`cL}i8GI$`U!Y+7?iEIiA3?8Bt%{h!9#DOOUN;O#GW^JP-5nQo5Sr-_V`Sa$R(6G1E)V>9zn5vTgDGxmlo<+*z zQQn%cCq>J#p&Fem-f4OW1H#ls++p~RV}dyfoPl>=>kc_t$rnKAfz9~XK==DA8N(V* z?G=w$pLf5e8Y>SQ4;r3MPPrXlq)##q9&A-b#;Cs~)!?qRz4-3?@Ga56TOcd-it>7q z$>7|YuOezJhg1S&`t6p6Wt&JlIKrI|Mnx=O-uw7vTchKK>pgb2elHcZwiCF1P5*kO z_;(D(b#{p%OQ7&j1L*1O(lVYX@KzR-T}j?xL2|5ha#8ocSuG|?`&2D_c&0i=OZ}i( z3O!AX*T%%=c|9~>zeu*NFe4UE+uRq_SMJlP_VqB@bPZH<1G>GN{eQOa|8f4`PfGt^ zX`eq_$p6=_)c@A&|HHVD=4a2HNTU{Zh3*kN2hS}+y&FVzzJ{(Z+%y>Td||Ff7gpF< ziQ=#$wHh6MfV4bNr1!=z_CJiA;rwY|Z@>*d-J!swOHXpW&ZvU?_6s-ubnf{J)6&K0 z1r_MZv;dpQ8yMQgK>(#a_3z=kQAdnSWg5Uz&?A zI`60|aogp>cE^6=-=(d-hP|F2f*xh z`Bbo(P?kU=kfa2{{lD&BKl*>`5Z-y$R%JOMVdm3lLwbam<1^(8A7u_U1f5wC`u6^P zsfx!LtCr@>ZHd8G}xwEWtU5m^usIav%oXoW?&i3IlPXdkn*~o5$aX)VO2WZ%O z0{XZH%+#Idh|zrBP}Al}*BEDtEWZuU97ybewHdf;w4U%e$^4ihUDBT-hUuGG+mp2EAh>s%hzUHr>UG-j1dU2j;o*QIa?MZ87*|8mE=^wS znA+|tY&aS>sAEW+sIn1#4o9^nKO`io&5d9jymzF`B}^rbU~VBF^uH|~!w3SorEZqd zIM2?xL^b!yqj64EAyXLf>(DG%xo)WL^^%Z#e39|N_4U{qyhG=}JYAQO!aUEo)PxWU zYa$)c&`F;YcvPNJ&-%kh9XG@R`5$j!ElV}eq~+D6#Y*QM zveD9px^s@ky)?FW$@&ZL`D#Os2>7+Koqo5s4a&6aD^5;noW4mXA1f`zg=8iA+dRo~ zirnSscx*c;?%MXi_tbehgq>Q(#0-omL&A^`S*DeJhY16H#RPhK=;FDFqXrr=xmVa7 zU)IiR5X%e$r~&n)62Kij)YX`rJjlVY_v~TwI^$sml)bxb<7bKR~sDtuSAd2dP4LB%ako z(+jCF9z!3nVHmcg9mRL8*=X7Aqrb|xtgUUv1?TGv2YqV%8srj!e1;sw@5MWI#>66f zN7cHub{Ya`B@x6)n(ixgMiqqD2FPc?*d+^%GOaF*P(Bc%&g#kOO1n_G4Z`iSlP7iM zt;+=7w(CnK&%^&i{!s#}_QcLPAl*G9oAP z(de%PbAYCY?%N)(dCEPGh{Dw}=VE#BU3(RuS)wmqC&H;GzCj|C4QIkOO)+7MZ{KS+ z;bp!DP#kmPODf;E^Mw8Y?Z3i`TJ8HhgT{H3~amg!;F%s^SUnSLiE8V_Wtv^lM`tD)U!v(Z1 zFie3N#y}AqPdJ_`&%-%m>J1-o{dj1w#0e?iFSn@3td#$9^O)9LZrB>uEj(T*e)d}4 zbkc(oEndbeYG)IEcZ~r@m?kb;?amB%xor0Vt)YbZ8vIGQ)4T^$p@PY29kT(O#hO#D z&y8M{BenUx#*<$dY&@$HlXvLsMginTXn&SQM%>Y&jJa~Fc?SgHu2r>t~9y9MFQ4LUAb(pshf{ZdI zFVt3At(g>7qm$F}C}U_&QO|FJGjJuH*asFsiuq|1L=OSU2^MdBedtgxAXbcxssj(T z!f@e>J*I|%N*8CWMkjo`YGqw|*$G+>*y@uC)Rz5}&AxTM_z~Yr8MU~$;n5pQg;_;# z1K;=+v&s$dICz_1PlL)M_sntpPM2hxx>9?EvjH*M#&NuL6;fNBEPHp^i65+ds5v{7 z6U6d-!>~4_b(D>@TXkOUA9CpOjw({KpumSDhowW!uE)K&$5$SYqk2FK!0)G`sDS=x zGdL*Jcn8!~C@BKsSWqz8>x~w0@#VU9a&OF8Gis~4&R&ze-F7;+t~&7POMXz;=>jQP zLgO7sgV2v)e!RoLT9Gh;bf88bU=BlQDdEeE_ceMJp7Pg?scCy_taNNIwp*pc(82wP z|E(l(<@h8STV%Ia_r|gly>E2rc6OVlLzm4kr>3QdbGzTwMy0w7dEeY&96v~;KLO-8 z$&9cG^kZA4E(FA5@}+XSb;G(3{UMy0;uv>2%-2mcz#NC{#Bd`;{kS>1+upGD)AmGR zd7Pj}z*obV+OGcd+b4>uTGzGt?W0AT;+J1jG>K?{!_Al>%^iVvLJz5v*Tag--~vuS z2$IGtDn|t>C>BQzMZ|QUO(s!JH=g?RyynW`HtAjUWUF_#OB!3UkliV^&u={1Tyf!i zHmXi&l^)O5g*r4tEYHiS4=1@-=vy#~BiWKYsCz#^11JD`j02=>2W{KNzE4C66u$oeCd zlz@D{_?uxZqJn_1n0Jvu_mXjWN#e4Kb*kBrpxw)ti2}DM(hl|Y!ks)a-bdwAQ;fUi zn%ipQO$MR56j#+4wb%l~G|l*p4|&pbysUA6OTv;@-A>URv{FCCIx%eUnl`zw7hgJT z%jt|?xU_Wt6&(eECrvGEl;8Im^?2qgkJr}_22xBxq%zV1oD2>D@2T5oM8!6y9b@Me zc@^my2RE6k#gENms~qB%PQ|^9B;XRS&wkhvSC&dMq`Ly)duJ$+M83*^j*Un)4nZSu zOVLBRK|?%YHRj`cX1xPdtk=q`fH95IPtDH$czub3mQ*?-E0UhH=5LU77mOQESYOXH zB6S7mOv9|I-j`jodZe0fRQI_%HxBQ+KuXwLK>C5Keob%E-=i1sHh4ZdBb zFPU`JSms%)6rC>V83JpbNIjSlBiwfS`Mu|$ZZTD5(av=Qd*UP_LBR#n?hF%Qx_jyE zxk2=r%uY5Y4(aYgRL0j8n7YoxKR=qUlVI%vRG8Cj&0kU*tQ4op&OQh0Q%lz>=Ze?(}>dCbYn7fp@Y~}p!r?x zL582YSiU12?%VpfrWtx(podJ%}# zEv|)MBhI?sy0*SjTfyqgsEY&c?m2>s%2N;JXF$vt4%Cdc#z&9{gepDPy+(b)jEK`T z?W5y11ADVNOP>omHgZMpJz(5k_S&HxB}r^o!HkDVFAuj%tpf$v*8#osh`)yVRIL*Q zH1wvMZJbwmKz{D9OXI@6X_E@6onKUE6fO%V6ltU$Y`(;U9Y z;;MCAxd!WxFTV62xj6B_eLT~cVORqIgUKy9)GE!>u1Qw>uasYF9kt{umP{B#RL68{ z&AvvI+>v=cFtFp{$K~WV0Ojv8baM_8i@nIsz+v~!KtyXCGW=8|(1xWnx$i0-gw*%> zUm9JO9|F36iy*8Pjfds0!1e}z0u~MTn`?hkZ~!ySP>QStFP3`qqz-n>9C93L2;rXW0-Zkjq;m~tT z?RNJ(jIG!`?*63a>w#g7NP%}{M*xTSDN-=OJSRoc>gL)v|3aDO&pH&E_|9#aHt8!u!3&_1sXgEX#njQ)&yk;a07Mx#qsoqmA&#>M+Z};>?$6%STo;* zLwopU_%IsP33ih|K+)j$^z5+_A^2g2fO(2ZS^1@Pe&2&=%>&*JvW;WjN4Q1K*h)d) zJl!E|VK15i@XWG9LK7z1;fCE$qO4)IQ?jsHjk1I%6V$EcIZ|@1vDUw%BeN>`nK%@a z2O0+oB$;OJl@(~8|CxL|{vU+E{%0Yy|LxBI9RO(aSNw7M{zri4`}Mad_bl+o-iCj{ zm~j(08PlAaDS*FipC@0>uY0`zPbCqDpXo*FB%TR1`;2+iLSa-K_v`Fk zCv^skUV<+%8acZQn2#9q7yDS}$9bOB-z63rrD1{U7nscFxv8zyS79D-mv}q)(Q^}# zc~l~2wb+E|*#Z{Ta!_Z3Z6B$B?@eGh;(k^p9KN)i=I?!z}=x3Jtkyzg>@O;_~T!9+j1 zM(upt`7&``=|azNUhBu0UIjNZel*ho*&`}~0=1roqHwacS<}u#PhPtlp^ElX+vUR;Z;jZfz6*^y8###b?8zFGj@iA|(Q!3LZw-?@M5eyejai4e`_dpiM0H*Bi=h>B72mNIA z83AM9XAiBM)%a2@XHS3g3%FJlH##tV+P`$TCPqL*_sgxj4|a5+w`XKK^CxzqAkf+u zlTs2=RhrdfL>8|ny@QQm@#L`1F$`&`xLN`Is>BJy()f!#i!mvmCchulpfA!26vZ>% z-Td(V&g(8JnljI{U@a?3=fN<-*nXJNq zTaTaY{DcK(FgmelNF;%9y#8bJBgYV#TL= z&Bq*hbv@Q4nzSzKQs?iduzhY_H13Rhzyn}T72^O+lKMYW9NnXsd`am zJX;xQ#HJyaQ)qX>mypi3Q}%bCGY=SlT^TBI$~&u>u}^Gl9c@g?P}BglvA8!@#@$0Z>lLT#Tg2go+hZ^GGIWo8#p z6Q9AG-|?R-Q;*wdDDPhr^ZwraP%S2QFDGodIJpU!8nl6m_@oWf%MtFr&@Ff;OfzJ7>fyDZ@l zVGMJ?g*KO57e>EgaoZ**soYrk`DgrG=7woQT<|gCVV#@4W=M?qVp8k;eDS#L;wWC- zdby`ZyZG4Da+*f%^4>&Srik?__R$Z2M06U~*)-W503n zgnIKk$nin+qSrCCA+~G72~Qg2oD<1bq03a z2x*DX$p@5Ce3P?wzf-rV3Dr%we9`Po&7v>}w7Rv{ZXCtp&7qSRt<=$ZvO*ISokSes zV<|S~4mZEG9BvN~^3q>C9wPZFP`i2u=M*vY1~41TvoV8|o<;E4R6X^%%{6AHZZ9A> zVLT*e#=wv<(d*#D?in<_U|hA4YU88k)I$Dc%b{V}Q;PS*O&{>Rx<+m83xD`A)`q7E zz+FHoXqtL+nlKF?g;cc#=$Z9Q0`(e~XCJ|`pZZj|BmKXay(1ib_AT_j*{SRo-xaxA zr1RwYH5g!f*iJ+7=y-%`QQ8CDoz-U9qAiV{U5T_~XvnmVK7Y%FK1 zSdT_AqL?=W&JxK8zBMEfYLi>kDkPfTd&tau|9TUxFelGswzBx_q^B z;oycEKL$PpwLWks4JA2(?7g1T}ISk+p_gPvlWh~r`Ph=M@`&O;` zKJu@delv$EyH9AhGiC&5&uM9{9Ao6=HU>_7`T;7Tm@}`9pB(Zdoj7)ON3lkssIF5{KA-R|2ix%!LqGhbK4gO@B`>5d+? zpKf-_Og1aqw4VGt0l#K80iT4qL7Z=Nrd9-uvf*A!^IoaUtWD7kAUMU4;ihzv(OZUC zXS=o3Aau>NFgALxs+LI4{TBoNj*!xt?%}f~$IOm#dp_G)53HT`aYmtKNl(2odt66_ z8MVqqgkTN%Q4zq2P0AX4Io{oI#`%=vp(N=m+cp|583ez6Y^$xa-z4Fh&)O0Z3uQin zG7c}c+AjE;jZ^{4Nr`p&Pm6ULoNho#_6Nwh7D;Hr3)gr{mU_Ikh|*L!`@RBKfeSk1 zqq807(R@VwJLS5uV8`|cxEt5wo{{?2>>fV+28@sQ{?%A0oe`wA6oL}eFrwxg&dUl5 zi`>-f7qcj<6!TM{HorgAPA`dL#;saqPmQ!OPu}bfX>G}+3I9~#JBV4g1XZ{ z8Q?Bzd6ZVln4Fb}xmlvp^H%tZHXJjd&=tOrd0z8@?BscgIA1qF0waJOFzG{ zMZaeRGnWBI(jOpBty`C#^bwLBje8w%^6)=E>_=L^+{ap}&e1ONOwH z>iqyU6NPp35jhU*HwAzf*AC|F7Xt>R8P3-}z)yArj^{oIXj^)>Op7?BpTE}j`*XW~ zf7X0VM$jZcCbdrV zW_2Vq`4kgh+VX}zitf8=t#@4Amvl<~eQ%J3Bjzt`@bK?K zV)|zPraeXnfBmX;v*a%<-V5afkov8j0lG+VIItwEn)pApe=*O(5w5NCQ7U9kp7P~~ zqr=*9E;06uJF(+75bz3H0HDXWdi=A%;*a9Ff2nBv2SF14%G+*Z{`Bk;kE^I`&smIs zUo0+AX8wApoT0fPf2FIe&jaz-m$C#6PRhMIV0~npVH^YLZA%R4ktNm%&avKN9EG2XI8p;pGlL{1q!kR)$5>y| z%_BH{&=L~sj9gM<3Z8KdU;YC`zJoZ|Q)6DiR9GP0VVVI(4PV1fQHD9C-#d^qSUpA= zjqBs1B-SAmS+y}$y=6#;5bi|^A8PM-lirwjnV9(QLttF%PS{LLnqUxj*`xcE0IF*v zstg(g)MO-)2^4Lr;}<{p7&0u=m0$EY<4w+>&9Lp|XUmtrmM)svj2(EOZGSM<%0O$< zEU8h=85Mf#Hn0|m$6>o$ed}HXzRs(IeX}R#=V#!T4e=>~MIRa3oL!C7G}1>BkGC-z zUye)|10O=%=r+GeeHP_O7LKZhlz#HyvVlgJsKcfOKfg2j7;k%c%y zL=bV7XhfaYq1DdKmg?`(KWlZh&gNqmiO!=(v*G>{(?zKi*g}7PYxAJW5|FqBX5DRTjPrJ5Xi*o`7Cg*Ij9@Ft zxbL!VD^LBBcCfO$q5km8MbZ8#OH28ha_+^DZ#yndUaV%C01u+c5o8^wg+-mkaxvDM zqg=_TP$9jD%xCirD{~~*%4+T}q1GwqOk{V4DwTAoq@_emp=0nR;05BC&6)B0Em#rc zkk)qEiBWwI4=V8@Q0L%;E!%f#(f`#r(@oS;rAy|3z2LT^L4#br-C!`p2^>__$O=?5 zZ^7>zm4DAvW5A8Nb+8d~P|A9&e;TY%-CoPBHMUB*P2PWN&0Ji;nvT?B2hp{ZuAJ?T zcRAg)a+XpR7f~H;CYz|%LN~6WzewOr%b6BqU6nmoGN#AC1Z#ybSK6bMF>KUb>g#YU zI8vNC(mng7aQIeKJov@Mdm!~n4O6x@-JG4XirI79Z^D%QTEpKpW5}{-r2oCg7_+x5 zbmaNDSCfivx1_aqNNqbh&9|w{yb3VTaMO4iA%_446akv?7@lZif!qcnwEcYB=!F zjp=X7ju*YUT4y|@58{Q?jP3O*eyt}bOy(|ERE2Mok!wAj0|{%Wau3Ur>+7%f%!zu*={nWAudJA)qH(sk ziR%NqvHl$2475C~DNqUkA1`dDa+`Gl5{g6F)1hATBWIe^_*0td%j|3X2bwh!qg!-! zExzbH@#J{UEjx)8{eQ45 z3UL!i2TDN+M1b+=Us$% zdC-@{&SgD-O!$oM=g$KU4)xq$i8JtEh!dmkAVQ5Dj}&pnl!+$s4)HWooDf&kq@Eot zYRA)ucyOb9&$-~@MrX20g0RA+Tu+P;9?W|#NTGfpJg5+nObqr`SEop>5R!45-czX$ zN`^c4jC^VncYj)t$@To>^NZtUO_xsR`PB-?txjG?c}{h+F`qSGBa5?%#^(OFtTwXw zD!k`dqmj~u(LdpnTmRPQ_a2LN->*2SS6e>y6N3f)ZQx@O*&$>p*I=Vm69U4Qb?_8G>nUkO<3xDlh}D8k59GKs*b@4a?sm-#70r6So=hs_S%m}NYB#Ix6Pwm_yv+}z9%E! zxOW*HhQ+BK4YtYo$g_Ly5$Rdcn#HlZaC^(FB>1-Hx+LuRVjrhKjhqLc@`uV}vRwON zIj)avYA0)gdG__no`_vNkrU%{0-K(5Ys)f}qEFSn#;_?GcIEI##OwD7235$#!cKor zmrBigsCim1+g~$Kf$8ZNW{hrl1PRe-R`qm|T!MSYhk>eGbj2DC7WV!Gc*8ZdLz zN%i2Wmv+l1Rc1d~eHuA=|InJ!qz3-fwBX24ExrXqyuTxaPA0d1!_%o7z7#T*4 zQHJuP_dCd)DBoW?ya93E^4Z|co{gx+V4PPrFh8DQSuzv=wboH(h9!`B!RvM*#KvJ; zyE)cHzSkp%xNCdhZ>lPyybALz!%`l3)0RIHInv%&+0>aOk4E%~?cEY~-+|DQ*p4 zJt%vIXQ}n%50DbtwIJ`aaUie4KK{)myJ=J?o_ZA@1r{kY-Z_KfS~JqVp3)?`9Y}Md z&1z`ePrPm98x7sgTiaKjzEXj7Y!FL6KKW_zx}S0?AbKDrKuA49M^PaykR5)q&7*OkB|5{bjjQ-6(=X%)9XkLVSVI<~rS2n8y=sgQqyhrFgZT|h^vBf2 z6gz>170(RU71fA)hBgqB(~$Um^RkqR2ZMwZT%Kk`v34T>8oI$aKZY9ABiH6opqaJ( z!L$I&AE1x~mB$mkiG!4mGVrF+L}8F}O{_*o$!C=+^>^pQ`+H|vaJ>rd&dWJnNO~4> zl8=9Lu*kdG%RA~t!UA@fbNeKF5z*>Z<~w5t`TXn*Qm zxa2MW?sFGwCMK_6vzV9!#dp^|r!BD#hmrSVvKTACt?k6aiUgWDS`62$Z*!tD)Br!- zsRpooZ%DPZ^`N+YrC*Aelg>9im!>kt5_Nryz~b{^(u2xt%6e;Lvsrg)d-qMfnDyW- zR|t@teIr|GFKV4+Qu{z9w!XM?g0z5PDq1rz;}sO)3DofYkB|DJ3RJT5Sz2Ff_KaH; zmlaSh&3Vengj@>gzmv8VPQHZ;p3dG+2Ki<|eE%*M)ETF#kENve5` z=AFwPEOtJrz9AvvV_toAj02#s>(y8=8i}q>BU0|a_3KavGcG54X8S!fI$M+c&8LeX z_dT|CO1_@=Ay0-cMUr~wdFj_t^vARTfoVTd&rITX48stLF@^d6hrt};8)iN%H* zZNe(!c6Z-NAAPQaa0M2mO(dXn`CcdEq-g4R%$a5(RD=e2j1<1rI?ztLCUR3a^;GL} zn{bPzy+cU-@oU<7g4;Z*LckR1i};a>&m)`7x$PueaaNTTyKMSJ{;9f~hU*cwBUW+l zGNWeBtY_5(JoOs*sTwkVqLYVpf?bY-3NV=D;&{(ozk+%SSvX}UqS}O?0)yMf#!Zg9 z#k>*l5Gk1cgxrGg`M~fZ2~aq@8Rf>iWCY;6QlX2_UgrxtOHQ{fzY~sLoNo?P1r{>b z*)L%TBbqfGO(RfB$247a`ch2#kl-2HZ8ULTt3J*f@AHX6!UfvG$~CSv5&HE<=4y!D z&;t-x6o`b7=|M^&b^)RlW~9afDwMfzPf8;DQl!-t9jT3-sgIxKxL@Px9{@oWK@%GGQ;}On)5k{@2l~?R_a!t+c9a# zt!#i(+XWK-Xesn;px78Bs))j}LAk;*<^@ItY7GT1&)DnNbnV(F5QkNC*vHHr`FLEv zuye?e?#)PI%CMk)$lWZnp37=)lO*}4jyPHe3`87vmm6}La6W!-r}@wpnLycDKv4o! zRyYK20S|^Tv~68B;aN{>9=(9Yw? z5CyjD9c(qW$h#H8T*k$3%n=hl<+RDbYB%lxfjD_bj^SliXX;Ews(u#`Z-#GY`e81GA5G&jgcX~+NyWy1b53FqoKmR=k4rc&bqZYk1J8m7)xHta;|KHjqTUjOT!Z358b z%`S`#*8W;^^3AN)F6s!N-mEFJXT;h>TP|AFBP_D}z=IOlOh=Rb{UF8BDmk8sq$Uv| zniTBD{Sadn%Ax#;uP`n?<0gJ|5rd}@dAdj7OIehDWW)E|AE2A3#GLodrs2ca_&S<- zOFzA96jm?2YicfzF_=!OSv#vogz~VUt`pFG!}E!?l2;Qn(H;z;Z^g1>#-R!HV_BP|*hTMU_=DlcBMmjtjjPIKl61+-T1S3>Vv~M0+ze_}(W)>0FLGDbg8x+h z^4HRb|0}=y6^!+7h&KWWzWD{xerIO=!QhCX)H$=O_eIY0<+00v zwQFZ5=NyS_dO+@mDXJVt+SmZF{=zJ2&QK3(dKwT|gH!WA@aN{^hppf&79e961F$l} zobf9w0Ntr7mQk0!%GTNETF(ydRjS;VDU}9Ih4gWH`RP@X%|^Z=w0g|bJI-ZkdW?U_wp+9`cLE-og1 zO?H3=W}NMuwmtLvU&#FRjtvJ1?>rAO@GYVzXrp-52*i!tvc7NAQ$AxdbW;&Ny*si> z0Bn|g2(k)(&jL(*!VA?Pj+%kkZ2%_LGS@Jf`qvRtGq8*v+y`85wf>-EoS9$WlbHG) zT6cCa>r&_Mby~bLw3vv473OXcHoj|mNOW@UZ`m53`N2Qz_qV?M|9k(G*E#j>Q>nI? zSmqA1n@_TQ`CM<(c*2!)Gr}y13i93Chj)+IXgpDzc@se(TS9&r5&qP9{%I65^7=|KiBKig*uF{BrEGeTD;jdHC0Qfc!iGh}9Tc@^!f+Te&I@ zRk=L4@b!Y7!z(BzHATz?vlQT!kD*3@H+cp)H&L{zxHb}x)=6Ly)wCj+c)YT-iZHY~ z-z>Mcj`2xmU=ecknQUzr-g#+>}v!_X_lPZ#3XzXG#1o){;1zV6yp4#>eZwI{}!H<`p*P71*ng25gs35D@(P^Wl2G zJOMN#YK!(S2cv&|c)Sk(|J=u={MI^_d9Xtxt-K4v$1O$ZYsY!t6Dpg%lz$&e29^c8 zRAPYoerqg?2g*^_V~G!`vbVV7shTK8-`y?~XFE^MA(${Hr~=9m#j{+{41FAYbL$9d z>=6Ki$?xt)?(xgt>{cIvUhiHtedT+ps(JdwV%`78-g`zhxvgu%SO66_i!Vu zRtHu+L#^|gDu+bLwxU{1@=#v|egF+5$AI(%xU|2F#R14w4r@^z*^%HQfS(CamCST0 zSteG%JH=G{%FDc!Ll(@?Rd|QX0lUG;x$J5`gAcyhsQ>ULzkVU-W&Ewe9FIG0yM0e< zv6kzenNv=3pQfIQVD1WBaY`SgwQA{qk(IDYn{}IecHwZ&Enkk=1+n59abSwh3`4e9 zYV0TcMmmQ9Ip_ZWOo8*C&-pJpe*N>ic;QHEbk<*rY|5hy*gfpg8ula~D~f!O)?YdM zc^%8kxYS9m>kR7in*!4GB!FQmH`s|?YE;84i=Uthpl1?Jb|wTWBNf$= zbcoJv_!V$glEu?JQ4sl8V!_FisJY|`;g+W?at88+Xc z)!;}352b;GX&FZxoJL30JNMOwzbUUfTW}$L!Azlj{hOvwhO6_PgmCUaX-)S;n)v8u z^KgL_ThP1=gOcKr!h}w|mi2>XIi>8pdk7$R*jKAluj|1^$UaDQQiP@j<0$h!y$Zwb zgzQnQ!9>uIqTxCpvPkxMtP--75?p>#K&rsENc4gH#_?Nzu>ckBUIN+^L|`BE2QYh) zq3Ojirp65XIKpm(?{+-}6ZxiM?;f#Ef|HC|w3P=rzQXKDEQRw&5xbx}X!c zfTN%dDw3%eSZcj&gKAeBw0`>n$0_jTPK4EO+g~0{TLxiVZTx&fI$vWauXv+S^6RJz zL-U2VURfF4V82Q*ScPwCNwW_wyYHCakDo4 z!P!rF7n?<_I*oj}jJ|Vm#MU^=RWIv!!PDMk5I@&AY}z)K*Lu8iTyeeSfYRt@XF>c6 zRwq`Q@$iWd8e$OVZDK`hO(h}Y)Bw3u_`Vqvbd;@LIOD>Ut!dR;^c?^Cx+~~ZlG~oJ zc&nF81z@dc1pS!pdW?Wj)hy_7{%`0}GpZSW<$w6hAcd#wzSn+z?|wh=hxy~UP{?O+ zz{RNF(}cQt9ISxtmQ$Dtoa>oXmhk2rx#4Ur) z7Z!PuDIRwpoYo&WgMHD%wtnWF z;IkbyxYT&saV8W_8)1(RH1BfuqG?8`f7t7_g>0Iin7UZ)1Ng|bz^2mbti*2EJAw%YjA}WbLlH|#XbkkD zF3TtFr@NB8U(SkwI(SHZID%Kv@$~d-O4Z3cn#FR08(`5r4 zP#S1*akJnEP5W|{Z<$fiAzQ7eD5NvYkr#*VvqV> zShoBNpmy`|9ITwKkdKE3mCsr=VXZUt2N#9~gt;sxRo^Xs{~}5$*RMB?5I+l$T*q2dD>Qt8v6x$FsH1@Lol;oE;BOc!C;@fcZz{#>L2n2evd~= ziDjEb(vI*))=qJnd-rHGH~wC-jONlbkx8z1NY^=7T*w2zDlH@J4}j_+MANH|ze(>(gs46zXIR4L2i$kexgWE?ArBAf zr{>ey2P_nu$7rIFW}n}gy}ra=1u)X)=CqB35La?IHC&&XUf?SDpp5P4f|T z7Dsp;Ds290EB)41tfc+NyVpDZr&oXVf{`-FLw%|Nu}}b%_D0X#Lb&$@`mT#sY#KxTo1ml|%PM~N{99PLhi^c=WHq&%Af zm<<`+TIwI&;&nrQa%koPH@_);;Llh8LuTzhaAm<6#4WNv;6|Ta@NZYN<1bhAUGle2 zsWmN!If zDaA7HkeY~;M0)D&q3u_=ag4YE(LUcYnqEh>d!Q{H6a^H~+yT%7ptQ2;J9<;m20){h zaP)cbFYmnX1)Qlsj011pVFLG9c<~=K2W9UNdi3ye8ceYh*YxZvT$?> z>X#S)I;`jS)Dyj9m;S?lhN7*R_BfEW7SJ>2pKuXJt04 zBZt`MvRWW}kz$kd@Y}UDu(+1P6}r5oy7c*M7sFhKj}3~Z`=n#bjp}?0%4zF0Yum8z zpvk05c-qcVVR^}#0k2*lu9|zLjXF!Sp=x2CYHKpD)KggVTNu3O&5Wbpbo~W<>Sd<` zW3PhjOASALxhRVkz`5XnU1V>g5(y&Aw4$8AYiG?SNHdIEx6LPYr3qfOd2oVgmA=mz zu}V(Q^T0uqSU}zwGqo4bHhsUcQ#Lxb&K<&8y@nUPO~GbNvuy1$42HInuvZa;@vjXX^V}O&hYo(bExTe= zK(qahvrJ(Sj7RbX?YaXA{rW#SB#F76b8h7&fK+flTRNzaWDu==*-cw`gQ-Na?KQR! zxyx{pr&*WZE0v$GiUIrVcjkY*s^?p+C5GPe_uqbt&if$k@6WQHU|)F@al+~i-I#Wl zmCN*+)upWI({)RA%K*nJ^|Q_O-T*ebBRO?B?%?!uSCG3yS zaXHk^1r*Fb_OVtD=KlBoSN~6{CRd`dU+>)K2k*FTIBv)f7qT*eQ}F>^F>Gg2g0>h1 zS?0618yvNoQ{UJa?xUgCgKz)gY1roFGPP&txj5(o^^Yb!G0g%^2@5%aj>Ya*s!bH* zFz#wxw#IXJBFEeJ3Y#8|=YPJn_p$no7W4bK`jpc(IgzB<+11Le=9HmB;>z~8u0ViXngCq%05AGv6x^_U|i zl+)e#>F|OknpJw_#xk0>0fATW?ysa zaUX&U1kDRyN(lU(<9N!6QNdi2`(jV|!gWuxm>rO-iX%CG5G&A60cj_JL~LCgLF}U{cD266vti@+pOn4c zGTjMPJF>pFAd&n+;&jP|ZfCOw6=XAoZRuz|IA|Vt26rG2WB5X3SoN1 zLT0Smq5QBbsA#6yEE#4#tekaEp}OP;%iR5KWh8j(Li=h*p5af9CwCt=Ran8bRhcfs z-kLgrMF=~pR{NB~byI#L)uso1rSD!9HAwyB8065}pH+dcZMUQi6!(V+O~?d>=1RX*%G^geT*0)Z z2ILh6wRLXq9#^d4e2t5dh!0kawa9bidx6*gb{!>ym!Aa?P2>=|8r=px(nbPBL93+` zm3hzN9aWk$a_N=pqf@d6yZsYo`7L53=MK+}L1vVqkq{~}t?;|UIqH{+clVZ*9_(6V z=N0#AT6$?_J1s~CoVg^4)=1mu=j$6>mVV~BhjjPD0)erhj_#tL9CM>Po~e}|dd%8B zVAsA6H)v?!vfPFP@9BNb>T-1XtK2kQ4&U;69xS;w&{P{M{ zl(Uu`iAO+Z>VoU?WO~W^7jU+nU)DytEJjo@!}X~Pb3T^yscH2#H%52lCpO(R+#T1( zaV{8s=3Q3WAGzCv=nOGxi}z9ozQ0}J_eF-d>q%mE z0s|G~r^_mVxPW4|r^M((l*Nv1FfY><6r%~sr-R$C(Pj-Pcpcufj;2{hoe4X{R(YtT66w$@1$;HN=-ek$HmvGsHsF!^Az4d!)xpX>gi?UK{*RmGs z)ZueYuWUoGviR=t%z#3f9rvFc-dJhL2I%Yjdf$#8j+<>Wf-A+-xFg7MbhT1!8OlXL zKxy9+q^i9>Bf>ScZ&x9qE2`=jUS786(SJkf#3(N*FmztP;Ta zQA*lqkF>Tw3M&yT2AJp4E2M@q{U^M%)n_>*59Rq19Pt?ZvBVdMW9hk6)K|>9~v38 zfcpL3IQ`wa5D=p-SUasBbK()0546N{>AqLrKk}vWVN<4!Df+9hg06i4ukI-Tjk&)a%5hDT$6_&_uGzOj|46M+(~wx)`>2&Q%Ir*t5>sM#jI5?oUM$)-ACm_Q5I6Ha zf0A_h6!Y8B2QZQ-8cbi^XaRyTZ#ffIVoV}vEHqVrl^iaB$tYR}RCn)zD>%uwJlJ=v z)4iX{H*+}qXf-`lIp2xJT*X(y-Herh?d$jZPioXk=0C9GXb&tdFhB9*hGo5X z7M3oi4rG>lAEa)j5%0v7iKNN4sKdlVQSI;aA@oC;4#|+)nnpSOvzUpES?)Ga9J)#^ z5(s1_+E;=cuZ7LFH6LfU8}}(O?0 z_rrVm5qg_$R4aZViK6qc#Qq9j=!u((TRwp@!#N)!UT~$Td?Tk^ybArYCc^$BfVE>l zeI!UU5eQ(KItAYjM05g<|CQ^@Q&0u0LA|<@vsYQq9HKBeHmMz2jUt0)L7;nd;|`oS z!u_556}t-Kw@Z(bVigy$)hUoIuM_ao_j-Ud^Y$THhnxk!nxKN`4B?03y&9dgm2;BPIE|hDRaY5Sg+~<4wQWg=C68qXSiA&=#sjyG1uEuwjZ0J}iT` zY}cDUDSK0|rjhr0bVd){6hWAGdvG*IKAtbTVa6dQm+8r>VoDVvZqo%x8b3Ken3V>f zcT3m|abD~NNUbt&rg9Y)F@K|4bo9rax`(jv zQHxfzF>z55y4&#k&WGC^A5$L)m87GqF=XMw3HN&EsIE0pU3l(N<V0q|G_!GOTr;8B}2_qfyK#$V&Qajvw5NcXHG8Rg97%L!PGgQ=p z4KBq9LcO$>6ay8nE`!hlScz;Y#7!2u5mXvgI4hP5UDT{;sP9@=#E#>?U{>lDrkOaP#DkUxuz%sSXB7U zYCiJRnez!`A+Lt7ulTxmvPjr2FId~xCG9=*ypS1FeuQepaPvecWd-CS3KtHF}x%aNmCQ8-(1xfvX%Uz;*I)us2fY}LkXvsX0e=>tN^drk_M z@qKR>$0x6>ZpjtadKFM_nE=IhcstCXyUpYY3=DrKiZy%!I`Pze%Wk0F{*|*lk?f17 z4fO#>g3te6-P&L}(PcqdjiNGI9(Bdps0?{AO`N6XQjba`T<_he4Z;^LXn!0N)Z=(m zT@R1e1XHbMw9}~Y_HctyTiucUeSxn0U9^O@%F6ZxIn@Ehz;nfsgr4`@%ITEJB}hfh zY|tD1Gb2oYxb)MU6!@S z%I)^Yk{1#`JyyCCpL+AK$S*7v-10D*x)TccJ&i$kWtSznCG7h@-qRkMQLs6n@150# zz4qzI+na@^p$#RGB~v0)fnt(Yz*zgEbFCUBMrxg(>$u~O8a&WBl{lRl<5BANu>I%* zJ)jqX!rCIxi(vEyvEkbg|4M`5BK1rPNC>f)+RYxJ@=k6?uA#Gvet%LBL8vp2?c)9h z>MCAkiz7@~FSNzmyG*FHOK6tUx_h7=5Oq&m@)}nZ^n1shQQ;nZ?Eo;Dyw(&DJF1^q zFo~kRD=R^cLHAWNRO>3KVjY{Y+O{F~SDamFpJPjQhu3@G+byEJq3=c?cvYXjO`*Cn8ZqBFH*R-lTS)c&JnionYJGIH}#=rgY=^VDwX230Q8_hKap<xs!&Fo~}^F9utz07;SJ!AN;+T45E35f3(0N6J3a1Q2b(l=z?wcEpc0=6)2V%tPjgqcrK~oSZFeGF%z#t2lbd^867E-@Dd#BR+RC3;6v&&|tRU2O?`zbT(R@`c?87J_*H01-?(v!z(*hsOPUh-+hfR#6=y zmIW|cT0Qn6xccC1^6+m5gt~VOIUZT2Nr?D_K~Ln#N)PxpNO?`-0|U1$UcWH&Kx~BQ z-;T3Y`;75#j&Z9VwQ)mq=piE!?sQoS%4isM|HTUOSdhywy|v32E+o|)?j3I9+AuW2 zo_P9`!{}2W_vguHE1)|LFG1nB-`4;IQFS3%cskB>AM+SxEoqusQ-*8XqW6(HpxlI| znFBVqL9H@jQ@%H&-Z<8&hN(@@Z3D&(N=!i+JwnsY(7Msudo6$&_D0mr%EIv9YPVp+ z%r=U28zcsNqDHg~Ov-2@`?UuKSYC9PviW}H=2(i3=L@1n>5UFY``(OGGM~B^-v6K( z({6nj);`3Z!ky3-|Ay>n%|Te~_Mcwb$M+Q^C)y@8RJ*o)@#8 zhZ*h<{~#CfQvbqsKAB&rc8gwMes{2z(XpCp8E8};dpk8L%S&qRO<~BcO3hGxRc+zo zB>(PG5%M#%G6N_;O#mQbc{gGeG(sgoV3y{BrHB6ki{m})ZI%RA*VAJa+7L1~As_EP zUU_G6?a5*@gq5qkKgfV~l5WI+10}WlSLnQIagD#tBhA7oN?8_O# z&E#Js3AUjC0v))86PTQotk(2;@yL?GN&J%Pg{NT?g%x4$0xBoZzynSj@Vq+A!Li%R zKIDL!ex++iHvr&{P;lqaj1t{E6FiP1+14hWYwn5(SYx?2><9Ov-Q zukfc=NmT_k7~Z@$S=|d)Txd8HC?qAS^Q{4S|Kg?M84&#p(DtRF6(8aO_y?{`)zW?_ zn^h;wn()6LG^}{@u~9nRS?v6!)F-J9fZUCn1LcfrGi55XTLi(s0VhG-d{z=U3$Z3m zRC!NrYB zbxEcZOWs*mNAm~$;q+4FpmxFJT#b&522o1o>2Gy+vXAI=Ksm<1sH ze4521f|DLXk)N?*9s_VUV7*F{j}Q-UD$|#gztW!|B>c*PGxoMeVAmBU?7S@lh_85G zK!Pmfd}wKTgPGxz@^$Y_19K~jMrwTBt;=3@4yH*lnJgu53$xAD=^DIjLzyDNmSMo| zMps*{B+O(%xsd}99;L=hp`qTc6&v%hL5k0g3Uz26p&C^ue~?e96YkWzok4p@?*@GY zDxy7vHN}$l_RT1*$ZYkKd652~bKP@0+ODs+_h{65k{dLwzM`>fWL<_PJ%i>>H)RMS zzc^eT)ATD~s;UJFW@}Tq(rI47l5@$NjTgZeFW+r?+Y)%$YaP4{9svev0F`3WQSRyFtK z>Qv(fqm>oqJaVxPt3bY>#N?W<&C1A3)=HLb3Hq2FyALf=`jf+zfWl`kwuB(K{b%;& z+Wx@dRlEEt`hK7k$&IL<(!djhE{C+%u^*g;t?&us*?uOUD+$zsnHXK`N^jmvRU@lA z7EblfE>^LJxeN8u4DxZT?apUukIopAn2Xa)|uchl4P9U zNGM(*Pr^o4uvK4UJuHf4JK%I_ZjGJqnOpd!Z#!UG6DtKN!R|l{3QqTTD8Q}{tLP7q zYrxe($OU&VW^s#5!`s-i-!6P2Bwd5`!f3Oz@RfN=5>UCnMup8{+ROH}JbH>gg5>$G zCN4IFl<1jldvE`(V3d%>de<=>ts8deeOqc9r}H$>FItEd#a2X)K&n*4 z99AJ~%z(p@N4xlmQA%YQH=D8t7gz2WtXB$s6>$2peX@2~;-r>Hn$xUw*8C8V z6xx1uhSQCkK|hxKNN7RN3&7gP+vXc89D=v(ukbnZ>e-uD!Fh7Z%U$lvO<)zwqT3W< zqHL?C2d!W|)cl@x0>0=piK!VP=+4>5|02gYqdLmajA^1aDCj4L zAw7>W)_!T}3M~SW@yHO2->iqVq1xk&5B>yXJFJHkH*3fwxnSA z!)TTLiI+Rtk5$jyBRaXMr$vd$&)3VO8QmzS1e<>arIt=Ev( zjcU9~@#DLG0EZV=g&fX=lZ}9!=&myHKyQ&!1Ss+}B|npg_qYOhpMbn~Wz;b)(XKT$ z*RUJR>i$Rwx#(qNkKt zFEqs%XP0dhm`93MI-tWcn1){bEWkAl~ z`#N-JyGf7ssve7KmV@lxFdh(3U|6z;vb9+6k(WKtV5HQNh+bkvNgIs6uQmdH&a&tI z)n{i%(v5_USA_X4zM9?l#E(|QDq~9`$1=Ag5qebV>t9z~D43_7O!dO@C@*E0R9T&G zl62O&r=J2}rO6e>%U~38)4$Fyg)q0Qn9!*^&kGb?aY{<8hSjB|)vi^8GUVt_j#|@p zAVE;;%m!2YJ9v3?-ZxN)kzUpELYt!2GYRDBK&QateXj%^Q-LPC z)x;_J8mu!or6!}NcU8+&hgFW03<{*_jX@lF6!>)EJU`fSaqWT`>x7&B`|A?UT#cSF z6G}R!s1sjnv=b%d3DmD*+C!2i4uQvOHtqS?$J{iX5H~X)*Jd%UPVOiiX=TGR=DmLR znP2UvI>xRq%WkNB{>hO!wlP1Co$LkI?YE7KvsZ#EIt?*~3%1{5%+RzNdXf+0v@S!S zIW8B~s=yte6q9;eUIIPeRZVs$mwCTd#8`@G&^)C zeApx8`D7yiqf2i97AlPXgPPTnxf(G84TBy~KFMx^dI*qc1dOS6KB$nn)r*gibbiPIsZ~~+mk{( zfSLv*Vkfmv1Od_v+ajg{-D}pAciG`A8alKI0S8&s7>6EbTL!p$jx30(`|59;Jz{F< zOH>)SWg&MXFY8f5$!?7_&|5%~WwCvLQDJ5)k33jFS8Y-r-_2&Q53v|lP~_k?v3g@E z`>4I{JxZgtI8`vxRxjN|(7Gc2{IPF@?n{@B-%GI=E8chL^ILfoT^`igCpxS4r1?US z=yX&olt-y;bQs*m7NB6m`Vuo1rapePGd`nt{^iT$sJ*xA^e$^I&f{gT`4&qfz4AP-hHuqM~yAypZ1jm{XlUt2T(*h6&mp&zp#ZhDoTTK%p3 zw+6|&9Zk?Vcd++K@QXziQ(75t)61~Oz?1}cq#~s&qEQ8yR_>*Bn;_R#Qe zco9p(iAk)wMYp0s??++vbrHF9brMICjg%zIGbRJQ$DI9)GtGa<6Bl7Dn$_C<+*sL^ zKUt6e0j$SAKZB8iA6-~?2HFCqSc|T9i3m8-4*>;p2XHaC@AiL`5vT#D!AZLI9;$MC zV!A>SgDgMjwyzUK5~QlJc(6n|*I&5dGwibfHyi+P!yH7W{6x_kkTAdvL)(d)ibT}3 z=wGU4g0RNihoWFyavy8DvX7zoP+uGVpoZapP{T?y@LfTm4uTgTq?X=2zNVC*q1b>j> z()=u&tq^R&@#o6^AF#6j%4z=dukat*Ak?Qm2rCH7j!awPUjTL=+?)%V-DnHc8Qs|Y z;}qL~dP1ap0TVK!XsK{uwYspLqg<2rm7&p#tHK++W4%@0$TjsY@3+%tRA|eZNYEux z##6Qe?3rzO(yT60Sv7H5If zp#^C@cTUiV5r6`8fe;TR25u`0fm5RUHN0}1=@&!qMGGxMDWw^f;$X%dloJZBtiSQ8 zzjrYh3IrJY#!!y}@!J<+oiA)W;UhqdrIe;l?x+oHbiSZ-t4 z-sqmo2`4Xk`%j;Ainn?Om@fCc*A>0gz-a;abdaGK@WIAog~+}NrYI}hACd&+*))+h zrcBO3_zhNiTFs{$~w z`_~a=Y}gL*2a-0-Xi}eDCUVgEIw2HO%tRF}jEZXwx$H=fBEh3Acg33PRGwPhS=yBs za*Fl0=6`(x*puTL}yhL+LXk5btz%axu7M-fQxer{`>q(#jG; z9=N(}x&_sE2F{d5O+YAR2-QsNII0o=eaT|2&`J2l9Y8Z=v0aOsTIzyW02v)x9AF`! z^s_`VCkBD6PxLY{qAF&%dgK{Ij+6wZDf7;PVzEd2cAsLoPkWIO(~DEPcjd% z@-;(97+@ydzO(n$G*rME?q(~$)E@rSsm5u0cu(8ji|Slyw;bFzZ=CGKFdG({cYl;& zyfZ3pC#||S5sGCRmU1%_8dGc>#$cA^2&f)1JLuw&A*%*BrpYlaS%qGuDt&(UsOdG% zCB#0*!~4u4zu6n@Kc4SV^vPlBbd~p!dyb2qT?`YTp8%8!A&qtPKSA>$)$D;Y{Jn}{ zM<{ntAe;a2?p@^3X5+k*stfCyNpkvb(;Je`-!4U-rdnOO7(Z_se0C(mRz~Z}WO127 zeU-;j&8ly)n%jixRC+_on635Yh6ZwFKmfC=tUprwFtCdzQRUl+AV_s{7ptk<#+~T7 zj_8-@e|cs@)j7~>@-+Y*U%WE*L+#1*u%<4RrvqIH>O{wBi;bKbVhdI-;|>5O_8lvm zT8DQoDEqdclra+ZQTtE&LM7a9g202?=a{;z45R?N2gQqX4GGau;$`Z?G|(cGigBFX zquvX3wR~+7-J(Z7Nj^}0_K}n0aX9~>hpfimCx?8D`(O6KTvnR8-oYPY&lFzFo$5PF zOndGS7r@%eGls1ov>100hkkNIx&i>hjOh~;l=tV1XUVI&CXSU$ zy8639WDXqMFJ%ezrw=4?Cp2prQ&FVmT7=1r6YKR>2GuIM2DGm)k3f$!4#~Q}JAqBU zW+;~K6VHuBlh$F}(1?7e|&*WbO7lf&G6njB7J;JqPc83poFd1*!q z+A1zF#IzfU?FWugeyHMl5re=N%R|>j#!)W<<;Ywa)Jivm&O7(__dEh) za>sW9ALycGj6lir8s#(lBX}MgPA1BOfw{qQlP#!_PNXnBW)>cAHD-oFg6G_p+B42uDk7bFt{Q?KK#C!Xn@N;|Or#yl!$f8{eHGETzs&k0tim8ph${tjcfjR_|otJO;UkUvq2Piu>=* zm-$xH?sw)WF+IZ1*d$;i7_y}FVbdMw4oawGs#CgJpHjEluYkin^K#deEyHLU)7JDU^93zr^|EEUi~3uS~>PlY4IlpqoxRX8UEsUI8Rx zD0>XI2eAh@?lzDhoh6gfI@a0uJdrIh$g|JBQ+N9K8n3=eDeAds)M?Zo{mZ@k>(v{g zrKx8%G!XmCapx=NjccduAqpT5${3lzxJTER<*K93wn2o-SD0oq7J6ft--pPEEOPWQ z&0a^rXE%yCz)BLY?x()2ff9al(3;0IgNvBPquR>$lQ5A&fcNrV%rdEV>wGP1nR0-1 ze&=?iOn$XTS@LKjhJ31^xu^#D$!x=YXDGT=kk+dz{I8|jfC0Z!LWP) zOhHe@6|=SHm}adV2etxh=W#7K$GMIgF{nO)T7}?C>nMg zIYhJH*^^pwkh@0WD8YFLtfgMaP@xa^ACpv8y=a`CVx8Vg?TOk4Tn;0C5;D?OgplYCQ?75jyFpnoD(-J(it5Va3xVXGd|<%M!hNtkqH;@!sksfyfQO#T$o5vqf0X zn}wO0)P*wYkRhdX7Z;AWlKvj8{+mTm8dj^?+2tx#V#VbeoikdvNL}Z$2ic^irl}+> ziDa%oYpTCwbmt*~mWc@X;m;|LYd&sVp5=*rIEG_?L{~tfAYP!OLHMCgh$xD*Zx8{R zo?z;|g8}Tlc5zma{q^u3qg?M3={tdZ*gZxnn}K94h90{Y_g;-GrL^KTjT`4CnZ{|J zo+egU2bHvoD^tD$4i6QQ&kPjW2OKVes%oWL6H4FprX9+c+f8aSorwB~u5<<7 z$7jgEwFkeN+EjbOt*0Q!JhjU2ZGJWG+&le?RU`I()-*301}4LR$)`3AxXVGfV3}Pj z5)7a3L_tj*Qj^veuW?JD15YD`ou`!x$~HD!wPz1o#TRk-as~2REh3%yJpZLXlpIx{qv(3NZCszQVxma2>bk=d8@ z_`f;qQO&!3&+4uZ2bN*F`rxF&Yhp{o$(d@JPlEbg``_`V`FU5|YrKZ;{HQVwRe0(V za?@T;K_xh!JbE!gKOI|jOH9oqn79CmCITz)>2Agfbq0f1qg`QDDfh?Oz#roUsM#6P zVXK?+1fJkq#~&unfBXE}2qM#}&BHGbl^t7BYZFE}!}(DynnsFSgJ7Ua72S8Zg9|$KJE@Q68pym^>qxxtdC< zT8u*J+Un`fO{~JpfWX=Z`I8TtDh?%*XsjNy`h44hf^m6%?qvs8Q4Ib zduS`ATlOn!_%BMuXvQUkAb_05vECrS6nXY>(-jomScMUKiE(EI<;GCTWFY#L9>Ke| z0~JH{?$8;OD)x!ME|4Hom_5k`L~Bp2+B51+X&DoUq?*udm$<(5ZPh-4AJ)(Da`z8t zE{X>S!%Q#$yd>;39Yr&wJ2Unpqz9Suq@Nto1N0CBs#J5>Kv0T&iEa3ysnB6)W3{xiGa48aUp zA7!&I{L=OnRsOfm+xiZ>ch(%ZTNo&6f^`i@&Ce?|2;Q}^X%Z{b>$Es6?pexD2B7c)+v?aCe4=aE{EuEK=wPx(H8@$ZLK2q+mT!Hwzj7GmPMYKK&`B;bxpiLR@c8B zl+cu4^yXR{#)RXlEbFKmvo%S;J{tq381+AG=BCSI+^g_Q_{b90OTh%sHv;hkcE)l< ztyw$ay{mh*mcdfZmX7O5k;wfB1qzXQe36zmvZ{G3Z&?KJD`qR)a~A=}DpkJ#o7G}% z32rYPUzO9_%E>+X`|3W-joht)_-`d${J#0>%xb;L=ju@L%pARtfvu_)R=1J$mctK5 z!=)b7bRM|Upe<7lF=zFKa+BbPUkOyPi3pcuLs`CCXRJIQ zpGYwjme8f4>8}2Hh%@vA2pI%y3Y~N~sBO03n-So$gk4$8nJ`j`Xif1dhdU)MIfd9q z+)Vr)m)xUD!g|_69ObHPWk)K%KX)0lnow;%vAvTT!P>eaUs7mkV@ZX#UWLKY-zr%5>0Muf9EbT$3LGAZ9hs}7TCRO zB-Nf=?kiy}b^@z4VbBzMi~;B!T5dH9BlfZy*|N+aYEsx1*%pAy`%G`wHGMr(g$?O& zX;iZ`uQoj&-7V^DxN&}eypAUaQaZOL!M$^I=`)U^oXR{?YETuoz}}WX(PmSVX3vKD z0XxVcbyDBHnKkk;YTT@MD#l?MA`I9*xr^8=oo_o|^`Rc}!TM%OSFO-jIcMGTcZKfU zq(d1_>~0jG40TRA%MeO*fKr#~G#)4_(+(MDI9dWb zP&$Gaa6Rf!dZNumSD@h9Gr=wBFr-wHRpQ{TaYzE(=7YOhU*P#8?@J3Wdg+DMB`02$ zD{f~hvTBk1bZPdXDj$X)U=l^$pM5-|E3>w`KD4Qn+l-+#Xm?<&_tF7u_{CLmZ>}Q; zXCaCM79v#%hQrJG^T<^@ERMbBM0&Tp!oiHDTX$*ZW|r$oDrEps)!j^&4()`F|s$(@8b@1Q{yuP+vdrq_-? z4&|BUYNGIvGMLA*m5w2M9E7OYh|M@$!e}5;Xhi#z-Bo-oHgNwn{icK7n$NFa2=?Fu z#JKvB%=Sf6|3n+Djs;-zPN-w{^g>zyy{st6NKpM zrF|QhkiNtoMAf>I)frHa+ABD+AT{tdRbr{)`4D+7OcVz5WGxsf3|>x4;&^Z0&T;V6 zVcE-_u@MSl#U(3aRnKh*GlK`^3C0eqG9P*~O@_y2haT<>nTDp#5o`*}$^t?!%;E?@ z8E*)~l&Loa2seIm;7g{}I$)?6alMkDtm_o}g;!JHv2w2gGpFa@&VNX7x~u1W^EdsA zU5caHM^Pjgkvuw@XOYn+MT1IBTx{bViY9Bz|6?YIZABOWVsYW|Z_LE69n%oQ* zREsw1_g)37F4X(LR!9uKtG!IuG_%c!>e|szrtV1D^v$u##ETxcv^Jbw*)2F>_a_6HZ?YQ0lV(-19n%us1VH6b=73m#R zItYl;TWo-UfFea|R78YO1f)qw6h)*92q*}VCeo#ZNR3FBCLjb7NJvl+A&>xu7gP3q z_qpfZyMOx|cc1Z%^WE`{JI477_#=!rYpr*#IiKg5&n%mnwX(L1KK*d`L=D2CU%g+y zHvLB_Rbd_KRw^BCsiUTWuk2u(H5MuqCpTwdb4T=Iw!%GHWbe2mW>D|@RwtMy@Uy@* z=03O~kRL|TOlYwjYdc4&O>~xcfPR|$G2uj0YIoKx@=Nd7=a&M88`a@xnlq&@(R2^X zokr>n+H36PNb5xhm0z!Fo?aJv)TC>m`cYW!gJN@{N^j{UC&z2sS=HZt!n~WPSY5)c z7hZ<8d9FsJk!2-hhV_^{;?Z3aMu{a5NMgL5Kn7aZK17PE!^3~iy7pF+lhoK+jcPIH zQhl1^lB&Ch#2PD-y)58?`%5160M49)Dm3oymhIlr$D~G!PhdmI3Y3SV9=WmJ%{W{* z928XZLoY=uvgX8*MUj|To!dUD2gAZnR?}02jfp>Ft+Ny}mhXUWs61kg+fJ@Os^Q}i z0YC8pzXDX$p}8+=nj&Im)=-UQV45{wFi6|z1Jjzi^-n?1QYv-J7}eIjBtf0%;PCgW z1crXKzuW5f16@1Gda?Vz$(W!RX<*1mMhuYzO?BZa>_$^*)){&UQivrPT&$VU2C22Y z12+i`xSe|4tv{~DcH57T z?zbC*gJCU!YkzR*Y|PxvfS4Qef(Z!-f5cvc>$B@68B1fPM_Ko=^z8CVcj8Z7!)nIM z`)m!jm-#-qllC`HQa9_XLNC1&9+}dv-1r_T5lb!B@G`SBR2x`@6Ucd>$1ux$5?3BSvK) zbvyh;(6;4H*evtHf*ngJX`4$f-l(QCDA2l|2U4Hz+{KXSJBj_pBvn6-r|+=-?7ek44^EIUgWL5h*Ow zh%Y-A{JLLc5^sq=buadE#%bP^A-k^oPFa3d^(a03BDRDO;+eWW>@ibxx7KTLkl`Qz z65#?@5#shH^AjbUW z-_0p@jf204|Bs;|d}(a6QFasvO}~*?R4e=IU&^X~!qQj%>S^(x_OCg{sMcuc!CA- zbI|bsCyw2^=2X4s&oP{T+a;UI;mSFW(>&?bhOT3Vwd3** zrS@0V2FX7Q>F<)P-~a813goWcOwvNmY9(b*lN%1FsYN24zG{E?C26huRlSCnVAP_P z86;Pc-`@p0+9map0!v;yJa9%tWK!RzkJ!IsDt4bO(GmDyq^?7G5&4`)~J?X%;~BqhGW6^T>c_5y) zk3zB>BX6Qz8rczcU*#K<$}=ui2g;{kIbxlKFU~kC{?7C$Sh1Y>^Il1V9B#xWp$;Mr zTU10M-8QlHL6SX&9<8%G_Kmh8Dr@%c@#gLU1AXFq1e8BJ`v$;vps?RFgfHQKxE0JR zvXIjjl9z=b33>rKnsICDtgDJmEoaBpb-Pqa+C}`lQBPE5PsI%$P!zmC2% znQQHX(Oi;Kb{bF?;!j>m9KZU)&EBbr<664Y*zW3CYut;o;^`^!sq z|NW|LU|pCtE@NNj)dqOAXx2-9R8$z=KUC3Dtt{@}U+=J2J0PU`0hOF{WhS`zk$ z?^i6%@K2GIpsXnJ%S1VH{yu8KrSZzX9G0S~2B-rpvj>HA%Mfr*$z`|)s1&pXKlx}J znQ~|BtOS(y5@_W-&9?@nf+hc^wbP<8AH;FAZ?e~ywd3?xG~pP^|=H0U5LMy)IcZ0hb9 zIqQ$UJoBjikct20X5Y$oqnL7YUc^QQ)TmwX_UEgq9As<&=Rg67p8oH@ohwNaA%*<( z8W^RlKYNZ`WaPITTKYF^WtzmK^7aLBJ=an*GD)S+gx zUR%w7UOUfW(D7kn;VP(l_G0RL0-0U9xmyK1;G_bas9w$qTvs;orrt=-n);xb>V<}o zqW;2CvqP5pn@~~sL7;rzF0Mcbz)?_#V)D9V^fPvhH7j_3$WnX9uL}3AO%A26hVZNl zM})bj!Ys|N2AHB2aZ4gO;rUHMUPGB4$N_LCEPZzrU&a5^0=P6fJo-=XKMXDcXwo$q z@c^oXB>|X_YpH1hu#C0`o_UP^02bpC-bv>6T6zt?7;DJTt9*BJYpcs@U`c&Tn*a0u zffL`PPU*{~J%H4%(2h7w{238E8O&Ac52h%V{Fg%ns@nc?jA6QoT;urPkU zi2#&_rGP4U*<~cJsW4!_?oQu_4*ll)z$5W#M%1b6k21J+ox9cj@QuJFuH1i*gMz_{ ztt$We%KYuH;wlkeA@6LJmaT*Qkal>B{~PF4(j+F@dN(1@BFXtuICOd zf^#5;?nS{oG*(}rA{Q*WWOpGyMVu)E2{+luA~z#;%*EK_3T;;jpZ5f)Y)qEk?b5T| z@3n-GV5cMRLPR)UByv`JidiOk9KpjP8$S>G^+rFV#M`=sz;~ANr@`Sm`z{Z4o-#i$ zd&WMw_*(jUEg8nfIa8;)D-Gc*0T4;TI*3)>y$8bS{}dk9MX)s6l!zXQl)fh%0mKw? zFFcs?(jf`CAMokHKm)$Yb1SM@v@|@$|Fk_Kpz^ZG)MM61kO79H*a*%fw8`R`#um5_ zyHj~hG#zY=Tye%1BC|zY114VY_x3dn&(W80xVv#XEhks*z}K9Uj=x#0Bv{mwYO%TB zaOQ&@8MA*qIDcEj1X={c5J1!W7!Ri)KFED@Ki>b8kq$U-cNCWUwkTk${q)p8;;g5Q zk%s-=KH|)WHE52Ka53`|ryFt<=>y^V0TFek*u@%0%#-+`HaEQ~qwy_YbDFM_F6x<- zyuE%i!=MRHwz^S!?6s7SxVeLuBP85Xn^lnTTdycuuLyU32Wpgpwki9Wh5u#kgt7KW zQ~k$dUwf6EhrNY-hH6AU)>%*VU0B}-$aZ!}wmhA%2W_tp`>x*Kj8Yy7Pk%|tw!EXZ z8Q`GrX(=wg5`>-4#x_=$^}%Fg@BQTPH8*}WmVvtj(07x%P3m0DgitebfJ~Nby_!&JWO%B`*s)D;B_mZ_@R(@NWE2!@Ka}l-3pOC zn9^LR9!xXW_cyHRP1bks8EnQFd(_TD54=eKdf)y1F{0?-S`4+37Y*|+7RTjUN&v-zI*)s9lKYT>`T1Tn?vpGlcNeqi>s*O2TBbO0{PuH z8j+Q1*j!gaQ>%>8Kb=vJrPWTR4Cjk%lW1a)u{uqu(;Do@_wJFxPnAZ+2v=vn;;nPc zj#~6~;5qy#V;J33$)6Yx&hn_FM}L%Uq=Ft_2}iPyv@cj|9!(K3GTCjBZPZ$SmRIo7 zyGsMip$e`6eQxcL!CbAT`t}^>JDHdmSI?G%^zScPEF#7{pwJ9#Atx)1RW+n=7;BrZM%d|8Hv+&yKo`WNg+XgwkNz#{^i|SsT)3% zZ9ZTwR!E0-1%T54LlXUdQmj==0-;tuixbOhK+i(-}n@vcoF)y+(q_pfeBP0_&{a|lnAN~-L-Fi z`%{cAF~DlWKq>d%fxj!k_y07#;Y|vAB!&S%iJFOcDD6Xfmxaa5OC}tg)crVNFvgr8z<_DjIULYyNOlz&*%{ucN@C&O-!crg7eA7O>{@#;5T9p z{&%1KfhwIghJpv&k3~S8DHo6t#a~mBV^KuL9>f`lfSBHgf zIeUz4V*mDX|2;#DwpaxT@%JHRjZAa)bED` zE_LT*-s{T|=wFgMcy3=a_A#ms*HfDcX*^QRG>SaEZWe!q#`NQ(91eB(+A&f;%N7X0W}HQ5B+fPFRQhW6 z6b~W)`sM%MW?0p=Nkl%tV}97#vJtpOPk{TvqR1<5!}fGI#5A9sk36OblWq|3-gw46 z0!`oC*eV5tY1R~3sx&?HJRnCayW~bib~|J5Opr5fN_l-hxnWcw%rBgu=6wxU>foi~ z@XfWAu$bQ%tus?CF=-??EPNyaUAuwic;;0XyjA*-&YbhV(ZdWNjm8Z+*lVzj7C=+R zXP%-MIuAp!u7agUm(Pv$b?)Jqfn^c@ux7WcU#tx-@!AmdnB^iX zkzD_|VvgJKlR&wG*e_o=;i~IutzyQeuh?X@ZL-wjYDUnv%*=_1+j$d3{-6T&A9m>j z`#sX97Vzf7d-cjTU|0%ZcMXY_@Dt_5ndXc#HSyT+H0w)!a%|i)!k^e&3W=He!!g-Fnhd zXXaQ|<&hh+-o%EQVY8oRrZv1Ht51UFOq?~Q49La*HU0kAEXsoiOqU-b1+jM^NrsqC zXwq+qX;`lDGo?#DE`_;z=j21pPJF+eGM1GU?=`ajSa4&phWC8~v!0pU|ERFk`cIdh zLc9LC0z$8lnvkm?A9yI9u4V>Af!~wFl7|pv4ve>*V~nn1>!Tn6@xvRsQT2f{6A1IQ zR_9Uyc%6N;Zc)4IiwtJ562X=#I4tWsFg47|OblAjV6t8<{&N`0Gutb1q1RMH3Vge- z{r5`TWA8*vu>(5$3a?ENOuj8<@$U0FmZcKCMz>W3vcT!$w5?*dF5VZE^Gj4CawL$Q zT980UGW4)E7Bs}-><4LryAqR)nag@tfxOG9ZYAd40naT%8U(~I5gL@<8wg`gzILxJ zT46sp9oYQhK}US-RVQ?{s0(eXE{wd+@2jUP5tq_MAWjp{j@bmMYB{BhJyiXCZttZ% z{KFn!jCU=Jirme`B($l|=R@r$?u!Y;L|mEJnz{4XHf6veYEGz1wfiXV^8;eSdhVE= z)M2a9nB+v|npO(*BPtQg)2PV{7u=m12+JeVPw)r z37f?-%G_znZ=%TiMl@k*u*GusXD)BKK@Im)%3@Nu*A82DEiId_m9=VRwVB#4yrpqY z9ey~^ik~aP|2x(89>dtm>qFw9%qB?b%~?NDyz|qwp!a6Z1ynHZ8BDP+v<$O#};26{KQTdv`< zKp-e*6p^QfDe^C=RYSU}adIQVt)0@7{wWN(G}?1p|6{)2aQDq&&Ho_x8ZLUM{hx#; zl>h57{wLsAh5xVB_+Rkrf33z}vxxtjR^v#;;q%*$v^n%zX_!Lyr;SL~^2-L{1N>Z> z1D#$wU$uQ@HoRK*;cL{RZ7ZYVb*n1*$hkfDk8Rf^tDBj( zsY2=}nE6AM6JhT@^H#vtEmlXVuzBb%&KD^9a9_9PGYm*s`LJ_YH`&#cm#=!4+l(~Q zWXku=Ta0q@18H&MJKj3otZNhZA$T6jS{5Cwd$EV^W2FI{E&KUun==`?_vaMEAN^Iw zvh39?`fcd_x}7rq(ATM_h0=y>+!nBXhaWKACv`@XJJi}*=w?;nM8yxSbm5^4KUy!> zr5cylug1=bInVCfXL#)xK&DsVx?S~>s0dA<$i%HH_rdkZXos|JQMKSwd{LHlbQJem ztb)@G{{2_P9vWyb=vSDIOs(Q94MU%l)J|d!AQRQs2r(L0w{zWQAlhZ(C9KBR$WP-< z39_Z6y{3EM;-Kp$-y_hTk)z4^j5tJFPc-(Rt@mJLGyo)62)+()fe+r+@{VQ~tTfH# zTLyd6R ze!Tltwis?v{{6|a#rwbJ*w!#)M-l|{n9xJ_i zUw*7+_2{J@SHOk7-h} zfn51r$2uZMO1BcnNptLlOc-Y_9FJQLI1+7jDjXNR1G>d!;!3i%U0q1It4w?!S?_TN z1TIR`C}i4k`iO@CyXZ>9_!L4K%$c4bKX!GE&-y}cr?|vvq;fIfu^SIx!+~zFo_(@b#x#~*dj1jN52g7sk%CseSQkgL)SbHJ`|pH z7WiHj8Erqokyu6?e#P>oND}nYE@$^K59*w1tm<%&AK4iBXvv<@-?0H9cy87i+G9`9 z-Rri8S09oGp#)Sc*wCGtgWp)p?@cLe46fNX_n=y^`K+Uuf5w?7nJ1$WNMMsu%zoRU z0z|Ro=thi0I_}xlD``&~O;36l^?U2-*X3G+YAVMbT1ZJ`cB0S`R8WQeiNVMEn@R{um5N72wTS|7jFDP{PM)k@r7*w-P-8@16q2z|ZU>Nccm zjaLe4%td%oo}$7?F`^fveW(ID$O9m`e6zL&aUv39-By5GP(+2k^J~(IDVRLLbQj>u zdew&2I4xX1bk2NG#wNy+Oo~GZ{K@0)J;IA`}_`cdsB=C=ZU%GeN47FgV0M1vrvPGdVq>h~5WwJ=3g99jD?! zw2T1XJ=M~!+j4pPi+-+Tblay*@9!56dfhk^cf8^8H*BL#PH$Q=NUU5QJ?i&>)D^u* z4_KnwRC=uZmPsocG;(p5jB5LO@KK(h0U?t*sza+L^`s>}czl-+N!RQa)QjU6{6y7l zFhY7&d-ixq8KI#w_M*nGJgu zmo{vgJ&zvd@u2lq>c&w#MAq#(Fvr|oNN$a%yD#n8XU>%z%O_V@kyXB+DH%BmDkKBj zeCa$rEpOYapr_Gm)m5Z{u+V#s=T)L^-|;!_=y3Zr7tcADFw{H9vA?T9DrAm>cMgby z)D-VXU>%GvfVy3f4E3diM5ZE_TzfYfBa>4N|Gt z)31Hx_UzV3vGcz6iUC_svfh+h7`7>12a!zLRatylAM`zj%0ox?c4$w8+3~~A;M(*- z1m%|+_Rw@Tt(7!4>SN@x>&S6ai~g6g$CShdYA*s;tF4(9KT!LS{>UVR^f=3f?rg(G zv0|!y^_=mSLv+zqzM>RqgT*)p_3m`J{-0X;gC9bQWnUts04m-26ZBA<2Q8wDsKSIi zWku;E6ICY=UEJ*E)kWXx(U<+VlWwODGn=l=bltw;go{VQM)8nO2WV^%#ci<0fQ>{9232K)m%TL4J;}URMd5}xx;sb3S5DewPUnL z<7$xoRmR9wPwM(-1}xt?YrWWNYErFTA`ldbAV#oK9Va=n$cB9l^b3sUNzv{HeO;(z z;=!PJ&gqT`a^kXL``2-!VFOQj8+w%6?Twv-R!yfwWwPjJ7==I&J(@veS3+(hpBc{O z|H0K2qe(_31>Pqe$XA?Gudbm6WZbR!TETN>r?up?$Vr!k)ekH-fCb|LAG;1=G)mq< zD6($B`dRALigiUU*MI1W=)Naa?sLnIo!U>yy<$O3cb|X%qgw{a0Tn@vM2HB>gFe9# zk!3l08jr6xt_%M}&FG?*r!eU|5n4M4=Nyq=VsjFenvSYbHLl}f8X5J$@2ba|ua)h` zEJZdkJzUpTBcsey?vA+P9Z0B?J_c4szwDjX*7CE`+QazpnhO@IC_0Q`&3*~FQ|)^A z47o4KSe9&J=h}ezawA()$kR_RvZEkW-hYHGbZ9M!E2U(&Ah-^-3#94I`LdoMyePwC zN^Z;;Mj6F7bU)BcYV+{*I)ux1x+0oQ?74kENI^Q`MJlfhpkL$6kY!^`!S*n~jkZQ` z1+S4TAgSwtY@FCEIN1VGPAd;n+ffkI&LH@@=AH#fB+LhoI`Z3RZ{1(-`?%ANoi71L zc0V#TU|9p@G@icD$RKMVg)%tob%n-ebOxncaV^}{@+CD>6; zb==Cvz@TxeM&)a%jwChk`sah=Sha{`r?f+c-@AHO0&TP>E5dFO2}CP9vzqZ}RFumy z-lVAzd^Nto#fu57`$02Dg2eMp?!VNZ+S~sqY`wvMW(l0df^ZM(AJyq+9by-o>TxDW z_3NwKbiRe9q*5IEB{G02@>$xI(yQ!UFn4mnn>bdqQ|dBzq3IHr#=SRuPmZx$ATU@E zUXvs7Su@oT%Q|_u6hc1coq!E%@JatBv;j|Pi!y~~^U!b?7S;h3EVZ3(#NkKNQN1rd zq;+ymqUoAX1FBh?rGyJ*KeOkbm8I$jq@U8$(t7T7%hFqZ5#32CC)4@M6^dR!Rnf)% z7b+vEwQ>#&SB2`v6As^3XQOJUuy)c~mPx?GD}%LPnJeXt{4}a0sF5%Dvy*Ur#t7`z zI@SjGkVyxC-rrr;tuz+@1#)whhS)UmLcLDdb1A8{IhC01j8LdD;xj%c1shn42Pat9 zQcWmflWk|f`*=BmqBfw-jFfAjjid;Ue$!9jcX4|b(d7QB*Rm#pLShMlr+fuiqW!_; z1l$DM%f9z8Qfg0we%BX*3YQs~eg~_Yy>cl;qCsi0OnSo$Zr)@rHKVI+@Qu3L9^Hvh zq{S!d#Aw>*brX3ejHMNu6*Hbguip(n6E!ydaf;)*=Q-KiSHL3d3h$viAKrbwuda`M zpq1$Hno-l+FlB(&?`x2SBqyghIAr9M=)kbDO1bKVBQBwK@@zNM;03WqhN|IaqkZV3zPrZh|S1kMhOb^*bRY;#{@J(q& zJ_FUV`;8@X2&-EO+N~BDBMT#z+npg}lF!bls%52`*@r$432l-ol`_uw-sYtWuVgk7 z@u1NByJ^#lTwI8s!Plf{E2{|DPMJszwrj0#*qr$Tk;s_@74jcTlNNBR-{}#I3>+L< zIs+gb-_uZ^#5jAAJ}!VNXNECt7Z9Ea$$tL4?p3&IfBl;L?p<3RZeYU&2+;F|12CqP zCB@CfR1C=bXn5aLffm!70#m4|s{avkX>kGWT`J!v@eOnEk%c(VCP=Wegf_t=QA=Cg zCPULqAw*AK!?!5u)GGQ9hVFJtTs_wwXVLc`F=q<7_6b;Z_8o3jY@WdeLhu<#yr4O| zLIEgj?JJP2dpddvhpqERj*%1Rs?*^pr2+qoL(RA4m*g{ty~J%b42dJgB%+m$VEcOb zEUufF6mxWOr&z<$XHX3phOwzMIhi9jqwbmH6q7@9X1oP@n70rke{e}|)uy%dWY^uC zhl&Hbpen72x5TYeHr~}HdX*|&_9F3C+CX=72;yog73D?e0|_VWf)Y!Fo8q%7NIxGP z<2Fw$_o*bnJcXLa)Ti*DX0+e7c%0QwHoUB~pA)U6P$IQ-2cm`GMu7U7qaDJ2IYiM$ zdd{@*nT5kamU(@kuER_dPi|;;dpB}9Kt5VllUY>SB9*H4BMng2WC^D&EcFDXUx&ViBpEN7b3h)qBSqGJEx z+KrY?c1?=BVDXe`UO!evPMlIXxwm@w<5Q@LaM^B0XBpp+{qu?IU^@|?tQ*L3*GKg7 z5hB3OZX$Xf?DhSf(_Iml(ux+(C z7jx&aYHwc^wV6;zl3S1I^`0`}TDkg}klx^?O7CG&QS67tqy}hVhYVPuNckCB^lIXb z829O6Q*{eAdJJz&W;a5AvW+X(YNe%0BD)`b)kirJf1YdbI}WbKo^{TFyMv4Plru$? z1b@QdGVHRgpoF>$bhU0%jj2WtXdiak$-?2oM1X?k;a4xaP-@Zpy!(b6LkmLbxMaxu z8*Gzk+B(be9niI4Hn|x&+NDCCLx^j)YVj`LB~ML>W%Emy+3e+}Pvg8=6l`CJi(%yf>-udtWG$G>ny~)~sVDw)4Va<$$4;MR*jy$okuvB&2pWzSI|q$M>u>szEa9%Q6|$loa*?g`CLmH@O3$3H zF3nD(DA2H7F`hi*ItUA@>|a`toGpjO;9WVXlrT&?Gk#yc6rnpvy+$836fVTebJX*oqaC2J)OJL0BU|JO(C2~ z&hZJB9etA`kEix#-Z*=1OXHT^7?U`Faz32Jl0b^7Ho8ZJiaKr^YsY@@L z$U_4mJb7G8U>;mtBaCfXG8k1~L*5f;ZEz=i)W{S{7o`f*lX{vEJQFNSO8@#XAoxyG z!QrPK8n}QbY6c(npH16d7*@c>U=2F^DeZYK;Q8tSi;VMaW=O@#TGov(K{apt^24IQ z{mHllh>72s7|`cB(!STn)WsabHqNrZOusI{Z-m%o+ZDCf;Df&xi(e}Q_G z(YQX$>3`lJmX5c+N6!xWB`J=QOzZ#CLwp{jOq-TI2JLZW8GtE6bJbRW=})&5jS*%S zJ`Btz?q}#O>5hg4$q~HkrxTv!q0TA-*C`)8!3=QgxUR{u%iB z2_fQ7gd|<3F?GzZReZ8W_(^Jma`16?A)|+*7rkvu@6O$=eVe#E@*d~s5UHv{s(OWEb?P+w_SpQ{k^|*T`5vmG4Q%alcHz@Nql4cJ03Q z$b>MhKLyTfO3p4~%_k$C?kPA|MGI?BHO%*&+xV=`Dz?#Wi5}6g->mOQj{J-u@EYD5 z8?e;CH{+S;&$-sol^so{pV%24gApKDgC7eh+|;qIeZtYy)v}Pe9XWBu>4he_F-!XF zk6?H8*8<=zK)V=?n^OOl0#+ebqGR~WkCbirvz;#g;+hvY)8FSugT_M}(|SQ@4F$TV z7IsLo&bN-SZs2gDAuy3(^FtZ7*M}rdyj8L|Ig|3dkVi7OC)^VP9`cww5jq~2e_?+Bzl3wS3<6E%%v>#%0m-!Q7U779c z>iTc*e(E;0uir*#MsMjcQuPzFZed=0tHl+dPS~L_*!CZ?^^i{46f8PmuJ0qLy7E|j zOe2}SYO`KQv2ghM)`RctQ+NFbVpDlCDZ4~{&L&MCJG0>CV+|^HIEjk zDcnh8QcB~h5c+hX-1WrbHkxO8BxZXpLc2;MK>pyF{)_lTOVwhQzg`3;a;LL$?%-P=%-{!RHe-C|C4**2J){Qg>P{H*%yRBj z3Jqh!uGDUYN-jf=vR?hNvA&*lQzeY?^7=W27W|@|zy+C!!N3ui9VI@ArNneaj6>0O zt5iCQVF4h?085gL5?sMUQnay$l43$WZ`$R+MV+0$z0wewKkDL6z423MFQr3}{RS-J zk@yHkY2En!v=ow%{MRk^5sMtl@m1|S6WtNKGjlvCTKU$qe&kZ2{j|K#9^5(l8O}jx z<~{gLz%7^tqiFUGQZJnAK*tiUrQB~-4n*(2DchR*b4}T4@w>U9wcJvNFGV%l&)x|~ z#IW0KUki4uWOe1LsB2{S^^YeP+ujQw3&AW68dz3_XXL0w{28BAX#EfmqhFk}Jl|1Q`$+>$^ugkxgq-YxTz{~gQQUMQm#uE_J&?Cma zO)Duo)+4t{_-$-xW^SFG04^ZWymM^p` znh16y`L{%3rO!|Omh+*J&Z5(mn({S{2g{2nFZkCLdxeV~t~!`;uzWxjp0FHqf3j4q zC#Y;wXUfUBKG3D}!(iT^o#KKo#ANmw$HTSN%G8Z^#{TOu08NfL&AXFdD_oJ-yQBf^R%9<{-X+M7JtEPI8v5jtg*}!r0<~9#qkMu&R zc(u0O2GSNMum-F!dIKe>yEa)AE5m|OpiPktSElxrM^z+=o!Hdq+9wcowW!^&PgL9R7wd{xD@;t@LbFE_Lc=WKzC_Ox>}*pRK(GgO#Mt{yCpp0Fqp4_`S=tqelrFd7x3dp}jm&rVOHa3a6S;BP z4HU@1q4XeXA@gqJV}>%j6><~$)KI20hHTVo69oOjI#mbjkjfpre40Q6o7%;_!_U@r zzY*2Siu~CB8QYC)w4hSK*JKhQji$x-*(HVe;cW`uY}1#U9++h3@5%Ak%}cN!5zF=s zelGv~%%P_Jv!R$;WTzcAa9xn4@c}TYMSO9_NT@F+wwQcNDVa_=zu3)XI;sFX^yq(b z=;(NU*W>3l4yEGP-c{2TtH-c+ib{yf@ zaQl6m0rSt)U&5OP{Rr6wFuV0~B*If5PgrtAK!DSD)JaY0%TpRtpVNYcl8YY5$B~yxcvqXLqN6ExEZ@DMwx7}?5yrs%FPoT1T zEqIPSzk@kh{-HW>ZGCEdF|~yNMYv(qHE+*S(pr_9e`M4*wPDgu=DI@Xw!P}VPyPh$ zWdJ8Z=5b`_>0eNpAscK8@^0mhwuk8V?rfq^{d36~3n|{b{O8XR8;a*vJRdWy@BU_B zn9hhEXH${74+Tc+Pq2K2$-Tcuc8tU5-4j+S=bPL${OUhG}&K{7zkpZjFf7V-^)p+em5w>-&{yWm@W@xC@ zKuv_2`sGr)+_VPH-2ux#xE|Q5w}x4LR;8LcO5d+rcMW=WQb!ZeKj6>Oi8?ioBo~#W z2Oz$<%7thiv{sgUHV_v0V1YaNhV1*e_VzR?mT4YI=(Up~a(`h-E{G!(e6m5rf2`1)iV@EwH|>p?RS zoOS4~qwOsOlyZ@o`1#WW&M&uXm2fDyG4+7nywWPwd!BvaJfK;Ub~rM`PSUsD)Awpu zsq5$MmgFY7A-Wso%e?$Uh_$i5q1PtT1H%%&#^`SW^2o?UQ(e$3jG~sdmtAAW`(qn_ zxV<2+Y|i~WU9tx~F@-;KFZTR^-0llpw&v&PX>osWiJL03M1j0AmN($B0HezGNH{Kd zTwl>0=T^P+@u||i<6Zl_y>B=^K6T^ViI!r=n46YF+~Ut)SFXf6unCqkI^GIG6NxYb z%{d)u>fnUK;*!P+G}xo8%FS=M>~~P*3i2={06W72HvjWb)vDn)&|g3ZPLp@}IWX8w z;=4&(&Gjz*^{Fc&C~(Z(YLvU1kci1?_-1sDJLnv(i}9Xa+;$B_!Fd5DQ!z5{N}4SY zHBXA?oNSC+E9wF3bt;J1KcYVXgHn3jn}g!M*D2CdgfAd~W7asPT5E|ww5c>h}qkE;ZH@L^aS6VdJ9WSPd!vKbVTgv$5V?H`Bpk_P~9aNKX%@I z$_*-ORUW98Y$RgZ8O54D_J>ynm0N#VI=q;5B#c{GnmE6l(# zh^#+dwA)6{{yjarn4RN?Y*b$#37irM7KHM>C!n?2Wt_dGtpqpOGMuU26hZ>=MMe=E6*TSt?W;BfQ1U4Kl}MT? z?KZvdd7&_JRyh3vSNQv5+k2cpV;jq;2k1Tw6!>1a1DXrlz3W1{=!F#Sg{OsNDx}9I zNJ_8RCPvjLGtg7Pz4qmd%)?!t+~u4(S+r?gxt~NwG2LS5!=$Ms9~ab;op7roDE=&$ z%Z;;K%;N2j2R<-=^;y%)D7V3rLS`3u(>36-K@=bQ9z)19c_&O1;}(t@o>_d|T^KGp z(;L2&`?J@%EP;`2=e9vAj(p`9G|&?AJs_+F2s5}>mnCtZ@>@Q?1^?paru*mLTeuj$ zYKz1+(b6AS9?1M_&?Dp}Z8SxRj!e*&6=0d;(97SlyF76D57Vp*bX4tor={ypJB)BMiIzi+PK57=79X_(_v~&EcRg0mo4P}pH7$#*P2%l{Oy-T z&uMYD&(jMP@{}SLbGkM0J`1QG*=M=3Jt#4N<7;d|&f}Fd;c`!N0LEX9Z z@h)vYJV^d_25f=@l8>F&kwNQ;#KTh@*~rZW65)Q3fN$t^*wg{ChpG_v>Dj`e0>_H% zoc$m2O#L>|y|z(xrybu<7D_8XV1b|MS4&vU0v?i1PFa(4SMAGGBOX{}25eVM)oEy=#JO!_vQIQzNQ(&0_j#nD( zY~?!&cg3wApM>0n<%?c@x?rE4y=04yj%Y&Pvl|xjPyAdKr>X_j2Dmu~ao`3X0H9UXokecfXb)K$XjaJhpXCZmSj)kT-(vP=9bG$auAZb|6Q7C^!FU^rJ}gn%114s-DMBS1DS>tkS6Fm91?FerCkhL|xoG*J{eQve%{$_Te+NQZ@+gMbqm6 zN5I>yF4Nr>az3Gwb1_LQBq)DXdU`*fmm>SDm}%QUUf=IA%`PIEU`%f|-pLUePUc33 zKRKq#kZrInuYh~eH9sQpnUw7G0MYJs8I~jv=R+|9{OyS`2;zvKaMo&F(Yq*DUA4ts zIb1SluRsj`w4>b1&8}nZqJ!~M%GijGa|jZM?1gCd=sn0nw{IC1@wGI#x%bH*IePD5 z-!t43yne-R5S5%`x&e6$oOI?@n5?9ZBE9#KgjwOrQ9|dz>*p)_k3S{qgXF8~$f5J6 zQra;pv!S6^tF7)Y&b=*Z-B3AyWg^gLJydV4Tu%{q#$M^tI~UEcvPl)R{;-F~Mk!3b zxvE&w_kPSd=05qyoCB><$IbC1H1zSOCVhFaP*&fP=MJ5l@f;`vi6I8N^d!r&-1m1O zz%!5Hk9<78{FBjT*U1^EAi-tJNsa{F0CZ2wr zfwMWe9?hTZJ7MWJk(M=HZXc3FvQ&B3F8!-zow2>jOZTCmSVGPVe4p5Q3?kqyo6?Bl z0|@px7C=tr-HLIKS+kPiFquckQ}{Km4W$G=@wb-FGhMk=4kmAC=T1^GXug_ee1NXU zsG2f871=V{jdvu)uEEV{mwz~Mj(iZ!)3_1kT1$UKBMuR!!o< zUqki0l>*Z{l86CK{Oq@A68YY7b>-(=o{%eBiz`#IKU*e2l~ixQ_1v>hSV*5-sQ> z_P`XQt6Rc*CsWk0w=nd6YmLv@Uh@?B>#_G916cW$A9hcnG)D+weSZDn7UU^7iR~_| zRa&VlxXM*xxNvz}Pvl-@{FFzlS3x}giB^qxksZ`GOu9&}e)|tRY zS5G*#PqZ{TB$pm>pq6CBT!S~kYO;S!Y?{6TI_XNiB$}P(G!Y`m=@HceoR~dGnKrl5 z$gb{ek$X15dnCdLJ!Q-OvN&~Plg#tf zrzO=WEY8USee&aphwo0?edgkR!!7&`b?{G^nABv~>0#01n$wk*jPwHWy$SaipYH4& zPuYoe^}sNm5Nb&Fw#deXJ#l&K7oXh|y6?DKR_ITUZ*cV_fWB_%QDbL%qBYy6r{I7o zKV76SxM(`3eXO60fLS{wHh;%^w|x{Tmz-r_m7?72(bEaiRpH6yGf`Fnx?2-YuQ9k+ z(LM@Ae!hfS9Y<52C9yK0rf3iKwmXRoK7Irdi$*4HdBD2x+dcBRqur*5-_zdK?Wb`H z3J__xho+`xuJ5vmOV|`jkOW@6SL<7`ga@d%n6`H0Yd6gO#Lp-$>V0=6(PqLXs;3C@ zzh{JJz-mgCA^U5|8_Wmf{+|sq*t4dpa1~&QevP5cPVw*96=~u2HLTTXN`|;;QJ-P= z-kM#wE7ez8=$YfCx%OvVDoPJwo1E75Bb-Sjn(vA6alWqg1DtUg)A23INLMj!6Qf?y z_bz>s0xlv#FOJz;%I}J`{8jT=XHu+Me^d8raR zxh!s-9T(cl0;E^=iJ+%DO97~*KzRq=nah2Zr>(UH-@+-MiF^KOrR`9`5eucM#%io@ z8s2oYR}^xT3b`vQ*+bzSHt`PvRTs{Ym`r?)7Wa@maV+`JaRqZ8DQDvxUD+9RlRi;z zq6o7&BMa*=+fwf6@Y4Vta}BD}L&9b0W2UI9t5_=tm@Uqzk!@>fL7foZ4mH*hT6iH} zlIfAzl}+dm@Fx3S5XtJ#y;O6DE`>3A(=tMuH4~YXSN^C9bNh&pZ3p5@IRjXpHXE>< zf%VB8pxb@YuZBBPQed6bDAV+#7%yfXG21K>o~(7!U}P5I73l@8ZW)}P+zQZ7K8nxA*y#5CDSo_+H&G7tZL-C);H+ z!u{CS5TlNpj}i6j;eT*lgxny_M3c=?^P}7|k!fVjSeEmf$Q8=IW-nhj>A-($@4cg% zTGw^)AR-G8uz)lnE_xAA1W_qbS%`pu)F>?~A_77Lqz7UHG?WO4xB!XLd!$QCq)V6H zq=R%wr~#62KkwP=H_r2qsv;8Aul0oL2Uwyx~Jn!=&YT&&weuXu!#&xsx zbzfq&&!@jUd8wb#pGDT#zX_cmUFoD;4N7dT5&O%k9nCafLW{DC6P0t5%@1W961a7P0r`P_7#71K-o1!q+n3RALk8mV+#b5Z`LS+O?$ zb6fxXsMbg56KH->&^XOv!=)2tl{q)Ut&}ZO=i!5{%AE)-u(0TTtR}~DyEI_IG~sH4 zOJRT0K9RS`*C2lFBwytNrE)JCXkO{^fY;r5@m=ydF$V*BJ;AJu=o+v;DBe+p#(;dy*f(YVXkE>Q|UaeYC zFmr9@@lr~c@0^WMc?I9+?y7C;sv%U8O=R)!!WE1>M5#EAaqjVN_g86u5PRfKZpRvq z$9m9W@Kx)0c)g^Fgqt12&ShOG#<9;;ZHvp_e%Wl$@i|`N!xM(MM!S_Exf6Vr zcFQYY7+yfK)ELL=7p8Yis8Xc5R5IJB!9yw!N9>NV#%M|z$r%%4VL9`)KhEMyV|J<>%SCq=+NUoo-3LSogwk1EQJ<&F%8IF=yv_4h>Z|`okG=H&Gyx(Wb*KIiM z3rd%Q^&Io29(13eIqMynH#?WzgB8y_W!{1=Mh*-J5Ar*edp~uq=gW?|OS2i!QMPO~ zTiJLK2X8zXhhCiSm{#KTRfXjt7bH`A=&e^>w;JjY8*?k_ApZS0!pmmVESjWS&(HB@ zM+V`Awj{NMy)7bbK37CMnjgy)5O7@xb#(KIc4I%Us^N3R)bn%?gc;)R-D?FhL9n|J zLHhB#J@JA-JH^)yi+3)Fj@a0Ya~`s?*0?w5u@ovE9>p=N0GYr{I=(vT66rL&K|O>B z#Z!ug`U|G`%o_*kvc#$lD)$RRP43@7`r-LMJ_ix#`j;c?4a6w77$Oy;4Ba?X45}Qt z^=kP6NUSlsSDbFz3V4=QB)_2hbVfi{N}KVqvwb$+cdmtdo;tyrTH)V@66spEzz+yq zr9GspqWnA7f4NDqa&sJqKBTiz^o!_R?Nzh49`vUfxZbgU`Fd*g=@oOWkG7-o;}p@O zm~D&8V0vFzdoH?pjpsw6*psh{&lC{Oa;C4#Uwtx}so%%_79T9|L zY@q?Typ%+apfU8bcxYiyxvjfn@*n_rROw|}BAz*CFI~wkd2uoJ7E3(iBW#q*0<@5) z-rzaV191T`Cr%8MS@pM4*fUwe87~h3!Rzt>sumuDKq*SLLPTM@BOl+=e=sZ06^CLNT*s zBL@Pt_7;fCqNUiI!M9cV7)y_Z5UWgFto$15XHv4w zS%C24I%G}Sksdi=)1$yl6fVk)PDnp-4kHtt5O(8Vb!j6XmhV4!s_pkU|9!bLiLV)J z%*FGwEN1g(&zaVCXx(oA)I-W&K%O(J{CMWf4K#lXu&iK!=1#@|L1C1jm_>1mxq%e! zAixO`-~@6KAV2|Tg^h6nsyx<#XgZ{U&Yi5u&{(e_yYZ`nsaSQVC{LABb2 zTr5fkR16B}0DHspKO6INWPYxhpS$V*zMM&{9F|i>SIPc|e6nI1i1jn-;d^ElINWpA zdnYSb_&xO(5mJWYRq@tDMYy~s{6ts+W(tT{j(^Q1_^Pc1U+_`?#h}@1@FP5>sewz! z3kJ32#CPr;@;>qIj`X3c`pgnc(W_}`Nqv7)L<^UMjQk)?p+89Vj)aF_Poe)T+PTnw z7V0uO7{=E>oDYWI3-xSiNe&z3?+3>r^d!um3Wz~=b@KFg~RH0L?yoc-RtldF;xlPvmD#w@239qnv%i@P0HIYSDKNaIwrTMy}ca zQa}2Z=GfGnpH(a!O6ES~cc{l;YP&+Utz>kWozjGrah>A5uFuln<-d4lyJgm$nz6Eg zWlkW}^_I(%a367;Iax|h996wqVSDmrE+)r?&$*gkba~S73FLt{%zwzEi4gN8u8)` zlBY9|KD;o)tmYVs&xG0XzJfjRa89JzPE{)tTea5kZ^lub2VdF}1_DarB6=;Xm)Bs{ zB&|oTxC36DJ1PpU8z+*_g=+Q}#odZpSisAaIVNLY1AyA1MODmHTabGbLVT%1FH-Bn zQE1xSFO?alb0bB9Pfz2xZA`>C4yKa!pS0D~a(ImxV414C<~F`d&x8g{Po+X>m%+&*;`fJfLd{E)&-K@M;p> zc|r>W`tOlvIM2)w?Xdly9HltJ2*<8N^WxNTsh5fK6{7diPukJJ=@WeGMBsowQZ7M? z)VjWYXH`zr^1A)|1438OGt#hfueFA8f`RI|&q|G-hKyymP?)ZTdQ)<**%~5xIi8my z@yfW7hnrl}eU!^6&c5NpYEDFY_a$@JO5e`Xe#KRetPnjP7)AiKnd-Q8V; zNftXE-gex3$#)bUO}#{WU(lkit=JZH?pk@cD{(;iVb=NWjQcI?qJHe&%r&@R|C5w= zX|ebNh^S&S@ezZk;rlgazW@xH_cn*j>qME+MhC>T=A=0jpF&S$?63i8o#&{Z2)QGX z7FqeyjFXM2F|~>NG_gd$wG-=fv~*Zr!?6x=pxkz1r>%&RZyhs}dFM>uVi;`m>P@Yw znA!x)j*p4`)s%Po(o**#@^-?hO=0yD`Kl(lXBzX;jr3PuPELta2c6yn$))k)pLG`h zJKZn!UEv|zcbsYrZNP2J|3|z`Pz*S%U;k0c3cz-|Kn$rjZe*Jw=T@oLcV8bT02#vc z$BqB&m52JhH@lJ4OAY9ye*o@*gqXs+;@_O;e^bT&quu|?E4&+*7c#3{nR%u&3+~A} zf;fSj)I_BsF41cT0=kAdy4U&zPE@94)-G7>TdtmhW~0zYjW&K4h+b)wUqz(T*w<|8 zwOGcV+AC2Vlx~z~Hv#zhy|d84vo2%-J>>S|W4n+~9o@u!;)Wl6lHb>y^jv{?|{JdZHbOY68^>?ypu?jSskbXu}|@S4-z zgy3aFsR=1ns+#gVmRx+~Og+;j)Y^osjmkw(5#6Fzxrx_dT8%$X=PLCEh4>C7_SwJl z{t>^6?ji>7%_`k!U)L^t*_@G?ByxLYT9H%AV9&}mQN28H_E&di67$j)65r=c=zye< z$cdg}i4gZ|s;`$~UAmO^*YjF8@vqdLAH8AIwTZvjj=t5#rU8&yRhkom7sn08cew0X zvB=kIzGt2Ep=0LGN*U>JG>`Px;!V>c-PV?+ZLzI3{u@+t@&q4$zsJ4@uAfvoO!-ri z+f5=O^<5q9xFsun(}x<3wt6tzZ1spd=BI0IY{L$OBjh6q#b&RT6_VG&%Uzu;7q<*O zrUhNkuiU)6o6a6c3-2cw~O}y-tVO z3!ROx=ZC+l7n((D%3`V`M^U8^w4S`J6btT~DXOb|D9~{;EC3HN%IyQBsPA4wu9aOPwq~t`p~e z^wFG*9MFDqQlL+*C1bdwa_&tWFX>x3J+*Ph`25jA?w-GD&yT&j$}FMjj{BiOKXi(r zq20>vy9Qx@=n=&A0UQtod_O*k-*@T!(Kr8Sd+N!`PuCHwdR*q=&!0A4L9!i671TQB zgMl>tZ(mD=LfeKBCCc4VusJ3$lJWARkW-f0C2C=PpV~ghMAP|X#$mL51qRe#K;SXd z)KxckTNEWm7IrbZZfoV8yjr7FN{(A(^Hag>9~04SRH!+nMga<%9h5wZ+D zAj*G=ZWnE6od{^vqsUPD6LSgrUNE6`X&^I0hXNMMh3vzC)dbA>go&%}`~OLt~Y`k*AK zpsfGy5Z>kpM!F{`(Lr6LCyT0xkR@sAIp{4R?2orGN(o(OW^= zm67N+N<53E?+8_;cmhFV7diss*7G>JRw7++kc_7XV%gB6?rpmek#>3lh?xKHp8nVC z=q!}ZGDI#s_&Z8>%;T7y!-(bW9XBTEobr#u)Z328y#^&==JiH)F2ZPg2Cm1CBX>Y^B(k0`v8pn$`8QLuF16D%PFeUoz0xcV^D5 z@>6}XKeA@aLq_mrSG5tA=$_blC#SG~8&~KhUwa+KObK|}a_a1d&pIwIBV4DZpC%;V zO&I`GLe2w88|oj*J{)-k*zj*hHiqJw0+dy5*s-ca_Q3^ik`e}M)TNQnV26IyonP9A zOZntEI7<%0Fl$3gZ0dYC7;;jpV}^>KqhPkr*gr+P^Zw5EjPMYsgpWANOmhVlS*ye?U=2Wh?xiB=TiaewNZ3Zu#ZQu%+72+y?FnY$`IvjvH;X{A{)Qi4G|Q8X3RDQ&q-M0P9!QtLQ289dt{b4ZlK?S_yZ$;U-o+tzya|!FSenzX>)! zC26~;;!tqZa$!N9Up=pm{;;`sSu)bfEU4PVs5HPeW9;FXFC~?mUn7zt11Mk$PK@k0 z0m3vmn^kWeZYvPvKOt!mAIu>#Lo!wKL*FVGZwt^_9+6bWkc;d)*Jc4!&Hn`D%Dj*0 zfb4or4502DL4{Xc=b#84y|KZ}OmNhBFrvH)wBR17vR3+xuG0=fz$gg5((2 z!vGENz~QlEB3212*?v4(`qzUnQuKK6m|VMi#dnC-Pqt_y>GlFiD^D99}akz-v- zcS{~v`8c5)vNvbl-gP=yMsMOB-G_S@9cLeGJ37g)R&cMIVyTDZC#H7n&)q}w61eNL zy`Egenv#Hu=8UouHGh@LR%1K3pVOJ`1mv;)fdl^c_Gq@CM>Qir3ao;v+J-^E5s`7G z`g)cEKIg=aTlCKGr$%q{6#`a&Sv@bHY;*spX{nO%)R987&dklO;}rtEbe0fXK3Amz zJYH8)$8#$U3?*bs9J6guPbBFg2ADq*4)m5^;0#lT&JPp^C{7W`@W)h@@o=}S*#q~6 z+f;?j(+0|4s0(lF(`U@}>MD-=yh^Ol zV7qqgE_19)AoH!0&_xsNGeZPi_Ts#+iiJnamohcgU5GBCqZhvLW<%XSfe=OJp&lY` zJR^-fU6(aN@=`eFYhq46q2*?w&UI3+ij$e%q;%i$EIPQjW%}rhTinC4=MZYQj`c!` zHQ-vBU)A$TIf{?c1xoM3U5Ge=l*2P&K&?hE7SkK7y6+SD(O&@-ofC0GXYc(2LrsWZ zt|k}!CcTu2d)SS~7yh^Qk0PhiE1hDV3{$1)SB>$jHoFM8mDy$!B9UX2TofhE-(E0a9;hGf2)svCYZMfiju@re|Gy!vPcbr zKWB{v|E~RJkZHw>1~iw4YpcoS^WipDVSPrKok(t}w6;iZD;f75OX8FEtr^}hwXwdQ zL<3H9CGWWmBbSH*dHy_OrXEXRL!nZVSL2!DbgW`EXy-v=gX@NchS^8ctp6 z8l|@udg%BZ56I+-JrC-&A0q;P@ zmU_tMO5D73+x;cNp1gFfg@KucH!(ih{0=)QG3{^h@i0fkmgELvV=pkdwDb@fy=~A! zJoTlo{LUUNP^BRyJ)MNZ(uC2I0{|wC2N~F>z1`hmjOfWi3XER&1{m5pHaX^{xJSel zb1E?DZS--Vu=L5EegrjS1|0_5HiEUG5IflhB;qF;6sR{lcd17u@u@_>x0EkYg~x`H z*=lzohg6|yUR4v7>PIaW1wNj$PTI(K%!kFUY=z@aNWawFIyx+w~lSLghOt%;+ zGn&8>?xaxA_H4NR7=r^8Qzcyl8}ROFh<_LesNcBRxq%&iu8KXiEQp({Z{~D%7^~@L z(s6dFxzuoaeU|&k$dDvau@nAVlT>q}99(;N)~TCdQh`jgI@h-~huJ=fJ=7_NTy^7UTjm_cwgyTh!<(B93F#} zM)Y7co9^iZo5zX)yiKn+GLKm9Kk`u(TC+@%h^||PT&E!5B>eMo=)|IO?ZC=Rj6Qx8 zdcd!=cjrRbk)g@kAtFbG{AXBQHF>QiKjprhX;g~X$Th;e3Txe{*dWRjZsr%Zoa9r# z8JKRQ5U`~#UT7h)nrB~jFFy52J3_~+iO%9pj;-9*Pt8oNT@Ligqj(w>=98cDD`RfQ zAUIf(Sf;JhAEDA-OqK{>GR{`A_C?cKnRYl(Fj_=G8}qz11Euh0mR#ApfhKgy7e^_z zi8kR+EuMSC%54@TZkTw86(1EUFdPrT9>gRECBkD&1#}uJi~xzIT#Um`s{7mI$gf

      eC89++W43E61|x}otJ=BxWFngSipY!Z>r6w>UWsag8i6ICn(IYz#(D|meTIqp`d2Y}OC8!o>*?(0&H2Y|Ss%D?r=Br3 zdul7*#RJS#%!(QCHW!@vX%_v1&h~!?^T=J89X-CFoKK!`< z3L0&DvW^c%7l;)vF1{Te@TwZ0o30`VP|)Kx>WLYJU)tpR3nd{!CTwNwAKrgFTUmvB zi+02VdSquB9yTUN3t5K+`yXy!T%^Ko=6K1}U!|mQbt0ASCa5ere?8=F#rk%?Hm}WQ z6qElo!)uN3>I|r@-;O>0!J=HRws|jMxWl@0z}=JBk~!O-?C4$LQ4sBs*KgHid+Ji# z{*aK*&3V5bo0zf{yXJG?vf2gV!~_h^7^d-e8B_RF*l2jXDoLvvJE*KjR<3~_1?Oxh z{6g0)Cu57Qgo0vi{ykiLqPADHXIl*%w!$zSZw%~Ywv;x(teq>MWf}P$MbP(j(m1n0 zl>!dHu&OmC^^V*N7>mcSp#?o%i#7g2$goq0Bi<6%A`GPOi|m1&@;!S@SfT7{qRB$R<59`&txVi-ige4Eoo*h=yGW@^0A6SjPotuu`biz9n|XsYOcu&E?kR-U#U- zr8$?5gjYwnrijuZ1d}QK5jk&__0KfE&q|1gh0rW&rbtvp3BG2xbA}6=K&l=!Z9x9;! z3Rw2_`BDlZ`0h=fxROy*GkK}n@u8P`AVDpm1TcO{o}qm;NCxV?xryZOcNFTcO9(!n^@BI5JIBc@p{Z-sT8Nca0wP_yZyow#p8;jYoFG zJWZ>p_PdbRNLmq~DUcK$yPJT4?A!uXORH%Q)WMuShN3P~oJi9f+2qrJ9BUjAgp#sJ zL!InCF1v1Uc>YA+puls9f_~`lr=*vTog7fOY7d{ zdwN`}Mm{(mDkRvxh7RNc!HZuHxUM&KK5JMXJrVM!`SV#Gm>sCw%?LWhX;XZM&<2QHFdBO)u@>+!J(8 zT8TQlm&C>`3J+NWcv}vll+)+=4HjiGy@G0Egr0a19SZYHV@*c9ihhfIHU_0e4-`CVM8^ z;kCHBoF_--nE@T!1ux$!0vn}$0u6{=3V0T#CsGI#a6)X*KK1hJMYBm zdx@6%itRHHK62^HkhWAV!b@q(SM$oAmfT?x@1T^p8}+o^j*6gNrM)Mp*$*>Qw8@D^6h{z=+|Z&|lBZs76rF}~ ztcgfqR5jR}Lsy1rF@}?^&yQoLFN+$BYqNX^-$H0|&9<8qtsul`=#T38Pd}IivEG=z z#I2SXtJn1Eq;q?S>6T}QO3`qUnYJkW2cr!CZhjg&&`Z}*i>5si0Xf~B#=uOA_4^l_ zX`5|*=xW$6RBhO^u*@A@2Lvl!*xWpczyO$!Kfmut@<;VKryPvF68iSQ+==?2x}I&v z30Td@BOzgm25EV0da-TiH!mJQH7rbdjufkZrpovrTDbb+mxQ}Za!%bGJy0(uv$IBw zyvpCj_pwGr=z3Z!?`=RsFEMRK6V7A*@O5K9Twx=(~oT^zUp!Ad(Q>+nTL}=M3zBcZyRZVXbFGl8H>IZsW#-y_p-^Mox!Fh)C#9F!w-9ASjGTSI8 zr6eXrmCD^oim^H?#x*f(v$k0^Qean&4Mwo2AELC471w}8s@Yxs>)Za>?KL#-y{mHr zsy$UFzs^qPl|3{m4UlFT1eFmGf$GOlS4c!G@m?7o1LIm+8*;l?O78MJx8C|ZwTY=H z@m4XbSi~8t5RB+^U8my~vb`1FdfanUM`Z#U$lMObv8XxiyOEfeB{5&kD?HZVWnE)+ zce-<5pSd}i-PDvlTpm7U?&J%q^X9Z~ukS+GZ*+W{!T=W?m+zT)G3*p{L-D%ErfDsvc28Pf68XY(aL+ zw=XB_NY|IG=abs|3_ojO%fh^*lemQtnm4PdBDz8It@pF0_%yYmk|GMDm0rblm8ncEH^zGb;2b z*$Q>3unVN#1~87Tx}1LbJ|rit7TU-mXlN}Q5ThPKkwW0Q;6l)cBrl(rN%P7Lyjs_4 zNBV~@WTr%FC#~7{tBCjaT0B3=9c57|=P?{QGsVs4-mQp7nk*H-G|-NMHX9z~;*V|5 zti>st6C;lZlH^;j2giD!(|Lxa=Lh2YrSa(+2St_^hFK(uXCT}f)&Lj5B-`UJL^UI6 zRiQ)B9CUe#0X(qx<2mOieq%ebwg|KQl2EbmVaFS%xNMf3Z*h$8J8=OI%3L)UKTUkq zlW3$gNsEisX^N6yV&)c1c!OU8@g&iknAT*>bcJF`!uZgjPwS~NB;1ZGYH8882%y*e z9*yDRphtApUlsJapV#Cv1zCB#Yp$8sFoRlN3*CAKTe4d`;^!x+dKmSU;S2arAj%R6g0suh&<0d;B@qOLr$ISZqduKGwacEHB&Q|#y{ zByqU|O@4r`8Y8t)DI@5SB%nymx6HidybShs^%!o842pLWwE=5n`+wG&bMnuG6!OTo zdlIU8u1yrfw^BadvJiZv9$(nnt_k6u`Aoe<+6vICd*hYowAFo(^~r)R=ajXZCdB85 zcK^_1?+Px4*&o{dU6b9vu3cqL`o7%&AMt&Ydt=+r3x)sK?!@m0&>HyP04Xt1xLV7dS`fbT(mz~C?2^>Ef}zqn*OkKgw6;gPQBwaMsg!UhAu8sgWuZH1!54tst$hn;|mJV)u7VI zF66CTF^HXf1~9RKt#OQ6(v$y^cNR{L@cRq*q4dZ;j-^&1JsYI{F454&N(Oa7{E_8e~ayVh=RJYMY5x2l@Xy)j+nF`hS*k!3OwEb7B}`CAApQm*c-gfhZJbmF=qY;I?Fulr zkDzw|@TZ2rivElT43iAN_?g7O#>Np$uo*bnfDRc%uV|udHKAng4`o|m_8-cxa;|HL zFUnJY*-@qoiII%y0cbA3GRO|*N)#MzoQEh}F@qgwrc)kZAEE4tEPo11D3UUPbc8jj#I)S_xS%hB(mN7<;=w5tteVA1SRZvp6{ z=P2;fcZgaTh0$pj(!hoOu@jU=3~XG+#d8&`JP6_|bS_YD06{spfuySHj;7LB>7bP# z1(5X1iGS4#c%2F8$U%!>VhohB2ZV%oAtnmW9pLxaeDn`v1N~1%8cV@^v7&-?`;iAg zo!&)yMAP^B0kQhy&`3e)tP&(k5nd4Z4!nnYm$mp%VtzV?()y>CU-)C9_~Xxzej7d3}qivPAXE-Q9_!>%{ zf_O`Km+8Q{lH*ao-)31?7}%1E!A%a1;ErP^LUxp_;Y zm~pQ1`T9ghxsXU};)^NQnt_#4Lo2Y2L}RzE#kfm$r1O~tzjV%t1nk+`17;rccFxTU z>VoJ>m277Miv#Xxxkk3d+>vu?D+AU8w3KU>pXv_o6q-!AopZg-{N&?=GF1!&t9C$b zHqL#N#9C|4yANKMOQq8CwvxKU<%RD>kuXiiY@S&>hNn%ZL$A?Wa0d(9o)U9|g4K^v zTzh&PTVS;s4Po1-@5XxNhD^#x%}n!(#QDjf$MA~+6KD`s-0KhaRh4bBy&17zojZB~ zI8$Ee#Fh^_W)BvB+5$BvKh&LzuOJH1M_OfW{c3itBwcYR(m~Bf-ZP~Krqe`$2j(h# z%;^4_(Oun`nUXLNX_&E9k*Y97Q5S;yThSI_$JI~KTM&o*S?|Wkhpf{S+s43FWg+Gk zrtxgL78t1_4+9nBEW<^Q_zYK;%KG@;Ug#l|gwq6q$$_7#=0f~szU)}2t0|wx7X4}1 z`ih!=VkK2Wb%#OTf#|K@XzgjP+qmK54UN%B=6|)};?Q8dwCMr&l>y0BJx#i0Rwd|e zgI$PqK6<7o=T50D$U}tDe1Jeo7$}L^9{WZN#R^oVznx(Bcl<`4;z+*;G;vEHqTBV% z3!}bM&^})QI{Dide_4Cq*5A+1f1@$@dvlbdwi&>tat5AbGAn(#+FFXVgv+Q+p7Hd} zc9&6nbFk$LM-F!-Wc(6j7gDYUh-xcDHg18k0pk9Rbd}gTH2eA!2V@q#K3!|WD{1wH z9R6d}b&Y*jFVy*jjK*v&i8rRk+7en>SDwC%Sn6;Xn9Xn=_E57HtRGz|U*!z0z0msR zthJ%`>7LT-1-O>PwfT)GingCO*+!4V9JHK5GN_(k}2xb2q;bHd1H1T0$ zoyr5IzSCE%?kAKWI8cWO6hAUg^*OsLSg@Pd$ZtJLnO^0#$gxkl=G6}3Ax;(7?nLpQ zJvhx9&1!mkPT5Ae22C=AJ%JT4hb%mx$giv5gFN|N@z2WTU64rjwN2@cb0=gZ!_T`o z`(HPK%6>TZ;`1D?u>K?V(eSbMb>yR0rP!wh*YOi*0gJgnzS~_+6AvWAy*qU@_BuXV zc`5p-JZ=y1*{u`9ZM?IM>^d8TF@QC!#b0F$n*8+|fdwDeU00RmZK`Q6rDuvM_Zv{` z+%QVSmw%m*Iad_y61uZYk?eh{&WAcqVc-lwogLLXto>@l(%|%jLC4smA*RBndtWdt zOi^A-=Qr@5__u@UtUN%~W$OX3olxibkLnCv%Lx=T_Zp9fhfhGrK|RrieO205idq(B zAePhjMfXG0t?+#xv?S7Bjm?>53SBpG)NfQSqz(-hYdX$9K-mf1`P~dzQ|LI=UMTv~ zG(vl2=&Wd|?t`INi=?%q#5thy;ja_dEa0cC6m}sQIC{l5`2mbaKbMt*-^{pga%0cG z;KRmmx-#3_Eth1?Z(+$TpK6 z&^T>?Hke31qz9uvGDeSrypM4iAq-RF-~J6_lmL_zVZRGmV+G38o_Zknwf^c|%+jY} zW1^h^wa%?fXTs8je|&Y8k0gi5J#>{e7^lzDNGcojTYky+kG-~b^=MijAYzLIvi_~f z2;~Tj0<_{kKQ?#f?O8+6KNfL-fH|K|BppY8OJ@1=Q*GMMyC&Lv*HfSgfA`G#gojg? z>c8&SI8oWHEbpDX820_5km`a_calsSKvoj(QgUk<^ar`31I z?$4wAKh&q6dd^QJ@TZ3SXH(^;`S8=W`YYq~e}LgBtQ_`yCz5wry zq0?9c^QMG{dB7>~DBv%pB)+G`nflJZIU7wg*@djnE7OA=zTTDo6%f^2{Z|su{CpM{ yl^sZ_F+ODbtmE_2zErmCIZbB6BPE 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 u& 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 _ZQQn$0*59VUO2%a9mUz(HA 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⪙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 kgQfyhG~oOG2Si_@% diff --git a/projects/rocprofiler-compute/docs/data/install/grafana_workload_selection.png b/projects/rocprofiler-compute/docs/data/install/grafana_workload_selection.png deleted file mode 100644 index 3ecdc35e72f235ebc71b8561c46a14d11cbfb6a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64950 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 F{|~{@GJ603 diff --git a/projects/rocprofiler-compute/docs/data/install/import_dashboard.png b/projects/rocprofiler-compute/docs/data/install/import_dashboard.png deleted file mode 100644 index 29be7ea5848e403f6bf260d9454c9ee3bdc53408..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58539 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­vwkSy4 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 IvGdpd0Yn>6hyVZp diff --git a/projects/rocprofiler-compute/docs/data/install/install-decision-tree.png b/projects/rocprofiler-compute/docs/data/install/install-decision-tree.png deleted file mode 100644 index 6fe99b01b9b9878d66dbb15541ca675f7951b0d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 360324 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

    1. BkQl|8Od7KR>kMP&0|3EB82&0L?!l`ya3r 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 Zwx&fdNWs#869N1u^;AwQPej-I{{alF*GT{X diff --git a/projects/rocprofiler-compute/docs/data/install/omniperf_server_vs_client_install.png b/projects/rocprofiler-compute/docs/data/install/omniperf_server_vs_client_install.png deleted file mode 100644 index 8c43dba9e26cfe3d685f6c376b3efd7c2dbdc37f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176046 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 diff --git a/projects/rocprofiler-compute/docs/data/install/opening_dashboard.png b/projects/rocprofiler-compute/docs/data/install/opening_dashboard.png deleted file mode 100644 index 5e6c7ea625391ab621d93c11204a13e016b89bba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59014 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 diff --git a/projects/rocprofiler-compute/docs/how-to/analyze/grafana-gui.rst b/projects/rocprofiler-compute/docs/how-to/analyze/grafana-gui.rst deleted file mode 100644 index 105bc0fefb..0000000000 --- a/projects/rocprofiler-compute/docs/how-to/analyze/grafana-gui.rst +++ /dev/null @@ -1,1076 +0,0 @@ -.. meta:: - :description: ROCm Compute Profiler analysis: Grafana GUI - :keywords: Omniperf, ROCm Compute Profiler, ROCm, profiler, tool, - Instinct, accelerator, Grafana, panels, GUI, import - -******************** -Grafana GUI analysis -******************** - -.. warning:: - - Grafana and MongoDB functionality is deprecated and will be removed in a future release. - -Find setup instructions in :doc:`../../install/grafana-setup`. - -The ROCm Compute Profiler Grafana analysis dashboard GUI supports the following features to -facilitate MI accelerator performance profiling and analysis: - -* System and hardware component (hardware block) - -* Speed-of-Light (SOL) - -* Multiple normalization options - -* Baseline comparisons - -* Regex-based dispatch ID filtering - -* Roofline analysis - -* Detailed performance counters and metrics per hardware component, such as: - - * Command Processor - Fetch (CPF) / Command Processor - Controller (CPC) - - * Workgroup Manager (SPI) - - * Shader Sequencer (SQ) - - * Shader Sequencer Controller (SQC) - - * L1 Address Processing Unit, a.k.a. Texture Addresser (TA) / L1 Backend Data - Processing Unit, a.k.a. Texture Data (TD) - - * L1 Cache (TCP) - - * L2 Cache (TCC) (both aggregated and per-channel perf info) - -See the full list of :ref:`ROCm Compute Profiler's analysis panels `. - -.. _analysis-sol: - -Speed-of-Light --------------- - -Speed-of-Light panels are provided at both the system and per hardware component -level to help diagnosis performance bottlenecks. The performance numbers of the -workload under testing are compared to the theoretical maximum, such as floating -point operations, bandwidth, cache hit rate, etc., to indicate the available -room to further utilize the hardware capability. - -.. _analysis-normalizations: - -Normalizations --------------- - -Multiple performance number normalizations are provided to allow performance -inspection within both hardware and software context. The following -normalizations are available. - -* ``per_wave`` - -* ``per_cycle`` - -* ``per_kernel`` - -* ``per_second`` - -See :ref:`normalization-units` to learn more about ROCm Compute Profiler normalizations. - -.. _analysis-baseline-comparison: - -Baseline comparison -------------------- - -ROCm Compute Profiler enables baseline comparison to allow checking A/B effect. Currently -baseline comparison is limited to the same :ref:`SoC `. Cross -comparison between SoCs is in development. - -For both the Current Workload and the Baseline Workload, you can independently -setup the following filters to allow fine grained comparisons: - -* Workload Name - -* GPU ID filtering (multi-selection) - -* Kernel Name filtering (multi-selection) - -* Dispatch ID filtering (regex filtering) - -* ROCm Compute Profiler Panels (multi-selection) - -.. _analysis-regex-dispatch-id: - -Regex-based dispatch ID filtering ---------------------------------- - -ROCm Compute Profiler allows filtering via Regular Expressions (regex), a standard Linux -string matching syntax, based dispatch ID filtering to flexibly choose the -kernel invocations. - -For example, to inspect Dispatch Range from 17 to 48, inclusive, the -corresponding regex is : ``(1[7-9]|[23]\d|4[0-8])``. - -.. tip:: - - Try `Regex Numeric Range Generator `_ for help - generating typical number ranges. - -.. _analysis-incremental-profiling: - -Incremental profiling ---------------------- - -ROCm Compute Profiler supports incremental profiling to speed up performance analysis. - -Refer to the :ref:`profiling-hw-component-filtering` section for this command. - -By default, the entire application is profiled to collect performance counters -for all hardware blocks, giving a complete view of where the workload stands in -terms of performance optimization opportunities and bottlenecks. - -You can choose to focus on only a few hardware components -- for example L1 -cache or LDS -- to closely check the effect of software optimizations, without -performing application replay for *all* other hardware components. This saves -a lot of compute time. In addition, prior profiling results for other hardware -components are not overwritten; instead, they can be merged during the import to -piece together an overall profile of the system. - -.. _analysis-color-coding: - -Color coding ------------- - -Uniform color coding applies to most visualizations -- including bar graphs, -tables, and diagrams -- for easy inspection. As a rule of thumb, *yellow* means -over 50%, while *red* means over 90% percent. - -Global variables and configurations ------------------------------------ - -.. image:: ../../data/analyze/global_variables.png - :align: center - :alt: ROCm Compute Profiler global variables and configurations - :width: 800 - -.. _grafana-gui-import: - -Grafana GUI import ------------------- - -The ROCm Compute Profiler database ``--import`` option imports the raw profiling data to -Grafana's backend MongoDB database. This step is only required for Grafana -GUI-based performance analysis. - -Default username and password for MongoDB (to be used in database mode) are as -follows: - -* **Username**: ``temp`` - -* **Password**: ``temp123`` - -Each workload is imported to a separate database with the following naming -convention: - -.. code-block:: shell - - rocprofiler-compute___ - -For example: - -.. code-block:: shell - - rocprofiler-compute_asw_vcopy_mi200 - -When using :ref:`database mode `, be sure to tailor the -connection options to the machine hosting your -:doc:`server-side instance `. Below is the sample -command to import the *vcopy* profiling data, assuming our host machine is -called ``dummybox``. - -.. _grafana-gui-remove: - -.. code-block:: shell-session - - $ rocprof-compute database --help - usage: - - rocprof-compute database [connection options] - - - - ------------------------------------------------------------------------------- - - Examples: - - rocprof-compute database --import -H pavii1 -u temp -t asw -w workloads/vcopy/mi200/ - - rocprof-compute database --remove -H pavii1 -u temp -w rocprofiler-compute_asw_sample_mi200 - - ------------------------------------------------------------------------------- - - - - Help: - -h, --help show this help message and exit - - General Options: - -v, --version show program's version number and exit - -V, --verbose Increase output verbosity (use multiple times for higher levels) - -s, --specs Print system specs. - - Interaction Type: - -i, --import Import workload to ROCm Compute Profiler DB - -r, --remove Remove a workload from ROCm Compute Profiler DB - - Connection Options: - -H , --host Name or IP address of the server host. - -P , --port TCP/IP Port. (DEFAULT: 27018) - -u , --username Username for authentication. - -p , --password The user's password. (will be requested later if it's not set) - -t , --team Specify Team prefix. - -w , --workload Specify name of workload (to remove) or path to workload (to import) - --kernel-verbose Specify Kernel Name verbose level 1-5. Lower the level, shorter the kernel name. (DEFAULT: 5) (DISABLE: 5) - - -ROCm Compute Profiler import for vcopy: -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. code-block:: shell-session - - $ rocprof-compute database --import -H dummybox -u temp -t asw -w workloads/vcopy/mi200/ - - __ _ - _ __ ___ ___ _ __ _ __ ___ / _| ___ ___ _ __ ___ _ __ _ _| |_ ___ - | '__/ _ \ / __| '_ \| '__/ _ \| |_ _____ / __/ _ \| '_ ` _ \| '_ \| | | | __/ _ \ - | | | (_) | (__| |_) | | | (_) | _|_____| (_| (_) | | | | | | |_) | |_| | || __/ - |_| \___/ \___| .__/|_| \___/|_| \___\___/|_| |_| |_| .__/ \__,_|\__\___| - |_| |_| - - - Pulling data from /home/auser/repos/rocprofiler-compute/sample/workloads/vcopy/MI200 - The directory exists - Found sysinfo file - KernelName shortening enabled - Kernel name verbose level: 2 - Password: - Password received - -- Conversion & Upload in Progress -- - 0%| | 0/11 [00:00` - - - Kernel time histogram - - - Top ten bottleneck kernels - -- :ref:`System Speed-of-Light ` - - - Speed-of-Light - - - System Info table - -- :ref:`Memory Chart Analysis ` - -- :ref:`Roofline Analysis ` - - - FP32/FP64 - - - FP16/INT8 - -- :ref:`Command Processor ` - - - Command Processor - Fetch (CPF) - - - Command Processor - Controller (CPC) - -- :ref:`Workgroup Manager or Shader Processor Input (SPI) ` - - - SPI Stats - - - SPI Resource Allocations - -- :ref:`Wavefront Launch ` - - - Wavefront Launch Stats - - - Wavefront runtime stats - - - per-SE Wavefront Scheduling performance - -- :ref:`Wavefront Lifetime ` - - - Wavefront lifetime breakdown - - - per-SE wavefront life (average) - - - per-SE wavefront life (histogram) - -- :ref:`Wavefront Occupancy ` - - - per-SE wavefront occupancy - - - per-CU wavefront occupancy - -- :ref:`Compute Unit - Instruction Mix ` - - - per-wave Instruction mix - - - per-wave VALU Arithmetic instruction mix - - - per-wave MFMA Arithmetic instruction mix - -- :ref:`Compute Unit - Compute Pipeline ` - - - Speed-of-Light: Compute Pipeline - - - Arithmetic OPs count - - - Compute pipeline stats - - - Memory latencies - -- :ref:`Local Data Share (LDS) ` - - - Speed-of-Light: LDS - - - LDS stats - -- :ref:`Instruction Cache ` - - - Speed-of-Light: Instruction Cache - - - Instruction Cache Accesses - -- Constant Cache - - - Speed-of-Light: Constant Cache - - - Constant Cache Accesses - - - Constant Cache - L2 Interface stats - -- :ref:`Texture Addresser and Texture Data ` - - - Texture Addresser (TA) - - - Texture Data (TD) - -- L1 Cache - - - Speed-of-Light: L1 Cache - - - L1 Cache Accesses - - - L1 Cache Stalls - - - L1 - L2 Transactions - - - L1 - UTCL1 Interface stats - -- :ref:`L2 Cache ` - - - Speed-of-Light: L2 Cache - - - L2 Cache Accesses - - - L2 - EA Transactions - - - L2 - EA Stalls - -- :ref:`L2 Cache Per Channel Performance ` - - - Per-channel L2 Hit rate - - - Per-channel L1-L2 Read requests - - - Per-channel L1-L2 Write Requests - - - Per-channel L1-L2 Atomic Requests - - - Per-channel L2-EA Read requests - - - Per-channel L2-EA Write requests - - - Per-channel L2-EA Atomic requests - - - Per-channel L2-EA Read latency - - - Per-channel L2-EA Write latency - - - Per-channel L2-EA Atomic latency - - - Per-channel L2-EA Read stall (I/O, GMI, HBM) - - - Per-channel L2-EA Write stall (I/O, GMI, HBM, Starve) - -Most panels are designed around a specific hardware component block to -thoroughly understand its behavior. Additional panels, including custom panels, -could also be added to aid the performance analysis. - -.. _grafana-panel-sys-info: - -System Info -^^^^^^^^^^^ - -.. figure:: ../../data/analyze/grafana/system-info_panel.png - :align: center - :alt: System details logged from the host machine - :width: 800 - - System details logged from the host machine. - -.. _grafana-panel-kernel-stats: - -Kernel Statistics -^^^^^^^^^^^^^^^^^ - -Kernel Time Histogram -+++++++++++++++++++++ - -.. figure:: ../../data/analyze/grafana/Kernel_time_histogram.png - :align: center - :alt: Kernel time histogram panel in ROCm Compute Profiler Grafana - :width: 800 - - Mapping application kernel launches to execution duration. - -Top Bottleneck Kernels -++++++++++++++++++++++ - -.. figure:: ../../data/analyze/grafana/top-stat_panel.png - :align: center - :alt: Top bottleneck kernels panel in ROCm Compute Profiler Grafana - :width: 800 - - Top N kernels and relevant statistics. Sorted by total duration. - -Top Bottleneck Dispatches -+++++++++++++++++++++++++ - -.. figure:: ../../data/analyze/grafana/Top_bottleneck_dispatches.png - :align: center - :alt: Top bottleneck dispatches panel in ROCm Compute Profiler Grafana - :width: 800 - - Top N kernel dispatches and relevant statistics. Sorted by total duration. - -Current and Baseline Dispatch IDs (Filtered) -++++++++++++++++++++++++++++++++++++++++++++ - -.. figure:: ../../data/analyze/grafana/Current_and_baseline_dispatch_ids.png - :align: center - :alt: Current and baseline dispatch IDs panel in ROCm Compute Profiler Grafana - :width: 800 - - List of all kernel dispatches. - -.. _grafana-panel-system-sol: - -System Speed-of-Light -^^^^^^^^^^^^^^^^^^^^^ - -.. figure:: ../../data/analyze/grafana/sol_panel.png - :align: center - :alt: System Speed-of-Light panel in ROCm Compute Profiler Grafana - :width: 800 - - Key metrics from various sections of ROCm Compute Profiler’s profiling report. - -.. tip:: - - See :doc:`/conceptual/system-speed-of-light` to learn about reported metrics. - -.. _grafana-panel-memory-chart-analysis: - -Memory Chart Analysis -^^^^^^^^^^^^^^^^^^^^^ - -.. note:: - - The Memory Chart Analysis support multiple normalizations. Due to limited - space, all transactions, when normalized to ``per_sec``, default to unit of - billion transactions per second. - -.. figure:: ../../data/analyze/grafana/memory-chart_panel.png - :align: center - :alt: Memory Chart Analysis panel in ROCm Compute Profiler Grafana - :width: 800 - - A graphical representation of performance data for memory blocks on the GPU. - - -.. _grafana-panel-roofline-analysis: - -Empirical Roofline Analysis -^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. figure:: ../../data/analyze/grafana/roofline_panel.png - :align: center - :alt: Roofline Analysis panel in ROCm Compute Profiler Grafana - :width: 800 - - Visualize achieved performance relative to a benchmarked peak performance. - - -.. _grafana-panel-cp: - -Command Processor -^^^^^^^^^^^^^^^^^ - -.. tip:: - - See :doc:`/conceptual/command-processor` to learn about reported metrics. - -Command Processor Fetcher -+++++++++++++++++++++++++ - -.. figure:: ../../data/analyze/grafana/cpc_panel.png - :align: center - :alt: Command Processor Fetcher panel in ROCm Compute Profiler Grafana - :width: 800 - - Fetches commands out of memory to hand them over to the Command Processor - Fetcher (CPC) for processing - -Command Processor Compute -+++++++++++++++++++++++++ - -.. figure:: ../../data/analyze/grafana/cpf_panel.png - :align: center - :alt: Command Processor Compute panel in ROCm Compute Profiler Grafana - :width: 800 - - The micro-controller running the command processing firmware that decodes the - fetched commands, and (for kernels) passes them to the Workgroup Managers - (SPIs) for scheduling. - -.. _grafana-panel-spi: - -Shader Processor Input (SPI) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. tip:: - - See :ref:`desc-spi` to learn about reported metrics. - -SPI Stats -+++++++++ - -.. figure:: ../../data/analyze/grafana/spi-stats_panel.png - :align: center - :alt: SPI Stats panel in ROCm Compute Profiler Grafana - :width: 800 - -.. - TODO: Add caption after merge - -SPI Resource Allocation -+++++++++++++++++++++++ - -.. figure:: ../../data/analyze/grafana/spi-resource-allocation_panel.png - :align: center - :alt: SPI Resource Allocation panel in ROCm Compute Profiler Grafana - :width: 800 - -.. - TODO: Add caption after merge - -.. _grafana-panel-wavefront: - -Wavefront -^^^^^^^^^ - -Wavefront Launch Stats -++++++++++++++++++++++ - -.. figure:: ../../data/analyze/grafana/wavefront-launch-stats_panel.png - :align: center - :alt: Wavefront Launch Stats panel in ROCm Compute Profiler Grafana - :width: 800 - - General information about the kernel launch. - -.. tip:: - - See :ref:`wavefront-launch-stats` to learn about reported metrics. - -Wavefront Runtime Stats -+++++++++++++++++++++++ - -.. figure:: ../../data/analyze/grafana/wavefront-runtime-stats_panel.png - :align: center - :alt: Wavefront Runtime Stats panel in ROCm Compute Profiler Grafana. - :width: 800 - - High-level overview of the execution of wavefronts in a kernel. - -.. tip:: - - See :ref:`wavefront-runtime-stats` to learn about reported metrics. - -.. _grafana-panel-cu-instruction-mix: - -Compute Unit - Instruction Mix -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Instruction Mix -+++++++++++++++ - -.. figure:: ../../data/analyze/grafana/cu-inst-mix_panel.png - :align: center - :alt: Instruction Mix panel in ROCm Compute Profiler Grafana - :width: 800 - - Breakdown of the various types of instructions executed by the user’s kernel, - and which pipelines on the Compute Unit (CU) they were executed on. - -.. tip:: - - See :ref:`instruction-mix` to learn about reported metrics. - -VALU Arithmetic Instruction Mix -+++++++++++++++++++++++++++++++ - -.. figure:: ../../data/analyze/grafana/cu-value-arith-instr-mix_panel.png - :align: center - :alt: VALU Arithmetic Instruction Mix panel in ROCm Compute Profiler Grafana - :width: 800 - - The various types of vector instructions that were issued to the vector - arithmetic logic unit (VALU). - -.. tip:: - - See :ref:`valu-arith-instruction-mix` to learn about reported metrics. - -MFMA Arithmetic Instruction Mix -+++++++++++++++++++++++++++++++ - -.. figure:: ../../data/analyze/grafana/cu-mafma-arith-instr-mix_panel.png - :align: center - :alt: MFMA Arithmetic Instruction Mix panel in ROCm Compute Profiler Grafana - :width: 800 - - The types of Matrix Fused Multiply-Add (MFMA) instructions that were issued. - -.. tip:: - - See :ref:`mfma-instruction-mix` to learn about reported metrics. - -VMEM Arithmetic Instruction Mix -+++++++++++++++++++++++++++++++ - -.. figure:: ../../data/analyze/grafana/cu-vmem-instr-mix_panel.png - :align: center - :alt: VMEM Arithmetic Instruction Mix panel in ROCm Compute Profiler Grafana - :width: 800 - - The types of vector memory (VMEM) instructions that were issued. - -.. tip:: - - See :ref:`vmem-instruction-mix` to learn about reported metrics. - -.. _grafana-panel-cu-compute-pipeline: - -Compute Unit - Compute Pipeline -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Speed-of-Light -++++++++++++++ - -.. figure:: ../../data/analyze/grafana/cu-sol_panel.png - :align: center - :alt: Speed-of-Light (CU) panel in ROCm Compute Profiler Grafana - :width: 800 - - The number of floating-point and integer operations executed on the vector - arithmetic logic unit (VALU) and Matrix Fused Multiply-Add (MFMA) units in - various precisions. - -.. tip:: - - See :ref:`compute-speed-of-light` to learn about reported metrics. - -Pipeline Stats -++++++++++++++ - -.. figure:: ../../data/analyze/grafana/cu-pipeline-stats_panel.png - :align: center - :alt: Pipeline Stats panel in ROCm Compute Profiler Grafana - :width: 800 - - More detailed metrics to analyze the several independent pipelines found in - the Compute Unit (CU). - -.. tip:: - - See :ref:`pipeline-stats` to learn about reported metrics. - -Arithmetic Operations -+++++++++++++++++++++ - -.. figure:: ../../data/analyze/grafana/cu-arith-ops_panel.png - :align: center - :alt: Arithmetic Operations panel in ROCm Compute Profiler Grafana - :width: 800 - - The total number of floating-point and integer operations executed in various - precisions. - -.. tip:: - - See :ref:`arithmetic-operations` to learn about reported metrics. - -.. _grafana-panel-lds: - -Local Data Share (LDS) -^^^^^^^^^^^^^^^^^^^^^^ - -Speed-of-Light -++++++++++++++ - -.. figure:: ../../data/analyze/grafana/lds-sol_panel.png - :align: center - :alt: Speed-of-Light (LDS) panel in ROCm Compute Profiler Grafana - :width: 800 - - Key metrics for the Local Data Share (LDS) as a comparison with the peak - achievable values of those metrics. - -.. tip:: - - See :ref:`lds-sol` to learn about reported metrics. - -LDS Stats -+++++++++ - -.. figure:: ../../data/analyze/grafana/lds-stats_panel.png - :align: center - :alt: LDS Stats panel in ROCm Compute Profiler Grafana - :width: 800 - - More detailed view of the Local Data Share (LDS) performance. - -.. tip:: - - See :ref:`lds-stats` to learn about reported metrics. - -.. _grafana-panel-instruction-cache: - -Instruction Cache -^^^^^^^^^^^^^^^^^ - -Speed-of-Light -++++++++++++++ - -.. figure:: ../../data/analyze/grafana/instr-cache-sol_panel.png - :align: center - :alt: Speed-of-Light (instruction cache) panel in ROCm Compute Profiler Grafana - :width: 800 - - Key metrics of the L1 Instruction (L1I) cache as a comparison with the peak - achievable values of those metrics. - -.. tip:: - - See :ref:`desc-l1i-sol` to learn about reported metrics. - -Instruction Cache Stats -+++++++++++++++++++++++ - -.. figure:: ../../data/analyze/grafana/instr-cache-accesses_panel.png - :align: center - :alt: Instruction Cache Stats panel in ROCm Compute Profiler Grafana - :width: 800 - - More detail on the hit/miss statistics of the L1 Instruction (L1I) cache. - -.. tip:: - - See :ref:`desc-l1i-stats` to learn about reported metrics. - -.. _grafana-panel-sl1d-cache: - -Scalar L1D Cache -^^^^^^^^^^^^^^^^ - -.. tip:: - - See :ref:`desc-sl1d` to learn about reported metrics. - -Speed-of-Light -++++++++++++++ - -.. figure:: ../../data/analyze/grafana/sl1d-sol_panel.png - :align: center - :alt: Speed-of-Light (SL1D) panel in ROCm Compute Profiler Grafana - :width: 800 - - Key metrics of the Scalar L1 Data (sL1D) cache as a comparison with the peak - achievable values of those metrics. - -.. tip:: - - See :ref:`desc-sl1d-sol` to learn about reported metrics. - -Scalar L1D Cache Accesses -+++++++++++++++++++++++++ - -.. figure:: ../../data/analyze/grafana/sl1d-cache-accesses_panel.png - :align: center - :alt: Scalar L1D Cache Accesses panel in ROCm Compute Profiler Grafana - :width: 800 - - More detail on the types of accesses made to the Scalar L1 Data (sL1D) cache, - and the hit/miss statistics. - -.. tip:: - - See :ref:`desc-sl1d-stats` to learn about reported metrics. - -Scalar L1D Cache - L2 Interface -+++++++++++++++++++++++++++++++ - -.. figure:: ../../data/analyze/grafana/sl1d-l12-interface_panel.png - :align: center - :alt: Scalar L1D Cache - L2 Interface panel in ROCm Compute Profiler Grafana - :width: 800 - - More detail on the data requested across the Scalar L1 Data (sL1D) cache <-> - L2 interface. - -.. tip:: - - See :ref:`desc-sl1d-l2-interface` to learn about reported metrics. - -.. _grafana-panel-ta: - -Texture Address and Texture Data -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Texture Addresser -+++++++++++++++++ - -.. figure:: ../../data/analyze/grafana/ta_panel.png - :align: center - :alt: Texture Addresser in ROCm Compute Profiler Grafana - :width: 800 - - Metric specific to texture addresser (TA) which receives commands (e.g., - instructions) and write/atomic data from the Compute Unit (CU), and coalesces - them into fewer requests for the cache to process. - -.. tip:: - - See :ref:`desc-ta` to learn about reported metrics. - -.. _grafana-panel-td: - -Texture Data -++++++++++++ - -.. figure:: ../../data/analyze/grafana/td_panel.png - :align: center - :alt: Texture Data panel in ROCm Compute Profiler Grafana - :width: 800 - - Metrics specific to texture data (TD) which routes data back to the - requesting Compute Unit (CU). - -.. tip:: - - See :ref:`desc-td` to learn about reported metrics. - -.. _grafana-panel-vl1d: - -Vector L1 Data Cache -^^^^^^^^^^^^^^^^^^^^ - -Speed-of-Light -++++++++++++++ - -.. figure:: ../../data/analyze/grafana/vl1d-sol_panel.png - :align: center - :alt: Speed-of-Light (VL1D) panel in ROCm Compute Profiler Grafana - :width: 800 - - Key metrics of the vector L1 data (vL1D) cache as a comparison with the peak - achievable values of those metrics. - -.. tip:: - - See :ref:`vl1d-sol` to learn about reported metrics. - -L1D Cache Stalls -++++++++++++++++ - -.. figure:: ../../data/analyze/grafana/vl1d-cache-stalls_panel.png - :align: center - :alt: L1D Cache Stalls panel in ROCm Compute Profiler Grafana - :width: 800 - - More detail on where vector L1 data (vL1D) cache is stalled in the pipeline, - which may indicate performance limiters of the cache. - -.. tip:: - - See :ref:`vl1d-cache-stall-metrics` to learn about reported metrics. - -L1D Cache Accesses -++++++++++++++++++ - -.. figure:: ../../data/analyze/grafana/vl1d-cache-accesses_panel.png - :align: center - :alt: L1D Cache Accesses - :width: 800 - - The type of requests incoming from the cache front-end, the number of requests - that were serviced by the vector L1 data (vL1D) cache, and the number & type - of outgoing requests to the L2 cache. - -.. tip:: - - See :ref:`vl1d-cache-access-metrics` to learn about reported metrics. - -L1D - L2 Transactions -+++++++++++++++++++++ - -.. figure:: ../../data/analyze/grafana/vl1d-l2-transactions_panel.png - :align: center - :alt: L1D - L2 Transactions in ROCm Compute Profiler Grafana - :width: 800 - - A more granular look at the types of requests made to the L2 cache. - -.. tip:: - - See :ref:`vl1d-l2-transaction-detail` to learn more. - -L1D Addr Translation -++++++++++++++++++++ - -.. figure:: ../../data/analyze/grafana/vl1d-addr-translation_panel.png - :align: center - :alt: L1D Addr Translation panel in ROCm Compute Profiler Grafana - :width: 800 - - After a vector memory instruction has been processed/coalesced by the address - processing unit of the vector L1 data (vL1D) cache, it must be translated - from a virtual to physical address. These metrics provide more details on the - L1 Translation Lookaside Buffer (TLB) which handles this process. - -.. tip:: - - See :ref:`desc-utcl1` to learn about reported metrics. - -.. _grafana-panel-l2-cache: - -L2 Cache -^^^^^^^^ - -.. tip:: - - See :doc:`/conceptual/l2-cache` to learn about reported metrics. - -Speed-of-Light -++++++++++++++ - -.. figure:: ../../data/analyze/grafana/l2-sol_panel.png - :align: center - :alt: Speed-of-Light (L2 cache) panel in ROCm Compute Profiler Grafana - :width: 800 - - Key metrics about the performance of the L2 cache, aggregated over all the - L2 channels, as a comparison with the peak achievable values of those - metrics. - -.. tip:: - - See :ref:`l2-sol` to learn about reported metrics. - -L2 Cache Accesses -+++++++++++++++++ - -.. figure:: ../../data/analyze/grafana/l2-accesses_panel.png - :align: center - :alt: L2 Cache Accesses panel in ROCm Compute Profiler Grafana - :width: 800 - - Incoming requests to the L2 cache from the vector L1 data (vL1D) cache and - other clients (e.g., the sL1D and L1I caches). - -.. tip:: - - See :ref:`l2-cache-accesses` to learn about reported metrics. - -L2 - Fabric Transactions -++++++++++++++++++++++++ - -.. figure:: ../../data/analyze/grafana/l2-fabric-transactions_panel.png - :align: center - :alt: L2 - Fabric Transactions panel in ROCm Compute Profiler Grafana - :width: 800 - - More detail on the flow of requests through Infinity Fabric™. - -.. tip:: - - See :ref:`l2-fabric` to learn about reported metrics. - -L2 - Fabric Interface Stalls -++++++++++++++++++++++++++++ - -.. figure:: ../../data/analyze/grafana/l2-fabric-interface-stalls_panel.png - :align: center - :alt: L2 - Fabric Interface Stalls panel in ROCm Compute Profiler Grafana - :width: 800 - - A breakdown of what types of requests in a kernel caused a stall - (e.g., read vs write), and to which locations (e.g., to the accelerator’s - local memory, or to remote accelerators/CPUs). - -.. tip:: - - See :ref:`l2-fabric-stalls` to learn about reported metrics. - -.. _grafana-panel-l2-cache-per-channel: - -L2 Cache Per Channel -^^^^^^^^^^^^^^^^^^^^ - -.. tip:: - - See :ref:`l2-sol` for more information. - -Aggregate Stats -+++++++++++++++ - -.. figure:: ../../data/analyze/grafana/l2-per-channel-agg-stats_panel.png - :align: center - :alt: Aggregate Stats (L2 cache per channel) panel in ROCm Compute Profiler Grafana - :width: 800 - - L2 Cache per channel performance at a glance. Metrics are aggregated over all available channels. diff --git a/projects/rocprofiler-compute/docs/how-to/analyze/mode.rst b/projects/rocprofiler-compute/docs/how-to/analyze/mode.rst index dc8dc11d06..9516645e5a 100644 --- a/projects/rocprofiler-compute/docs/how-to/analyze/mode.rst +++ b/projects/rocprofiler-compute/docs/how-to/analyze/mode.rst @@ -1,7 +1,7 @@ .. meta:: :description: How to use ROCm Compute Profiler's analyze mode :keywords: ROCm Compute Profiler, ROCm, profiler, tool, Instinct, accelerator, AMD, - Grafana, analysis, analyze mode + analysis, analyze mode ************ Analyze mode @@ -12,15 +12,10 @@ profiling. Your level of familiarity with the profiled application, computing environment, and experience with ROCm Compute Profiler should inform the analysis method you choose. -While analyzing with the CLI offers quick and straightforward access to ROCm Compute Profiler -metrics from the terminal, Grafana's dashboard GUI adds an extra layer of -readability and interactivity you might prefer. - See the following sections to explore ROCm Compute Profiler's analysis and visualization options. * :doc:`cli` -* :doc:`grafana-gui` * :doc:`standalone-gui` * :doc:`tui` diff --git a/projects/rocprofiler-compute/docs/how-to/analyze/standalone-gui.rst b/projects/rocprofiler-compute/docs/how-to/analyze/standalone-gui.rst index 5454080951..7f7bf38f40 100644 --- a/projects/rocprofiler-compute/docs/how-to/analyze/standalone-gui.rst +++ b/projects/rocprofiler-compute/docs/how-to/analyze/standalone-gui.rst @@ -8,9 +8,7 @@ Standalone GUI analysis ROCm Compute Profiler's standalone analysis GUI is a lightweight web page that you can generate straight from the command line. The standalone analysis GUI is an -alternative to the CLI if you want to explore profiling results visually, but -without the additional setup requirements or server-side overhead of ROCm Compute Profiler's -detailed :doc:`Grafana interface ` option. This analysis +alternative to the CLI if you want to explore profiling results visually. This analysis option is implemented as a simple `Flask `_ application that lets you view results from your preferred web browser. @@ -90,6 +88,4 @@ particular kernels or dispatches. You should see the web page update with metrics specific to your selected filters. Once a filter is applied, you'll see several additional sections become -available with detailed metrics specific to that area of AMD hardware. These -detailed sections mirror the data displayed in ROCm Compute Profiler's -:doc:`Grafana interface `. +available with detailed metrics specific to that area of AMD hardware. diff --git a/projects/rocprofiler-compute/docs/how-to/use.rst b/projects/rocprofiler-compute/docs/how-to/use.rst index 0154a06b6d..94d269c6b8 100644 --- a/projects/rocprofiler-compute/docs/how-to/use.rst +++ b/projects/rocprofiler-compute/docs/how-to/use.rst @@ -99,25 +99,6 @@ workload path. See :doc:`analyze/cli` for more detailed information. -.. _basic-analyze-grafana: - -Analyze in the Grafana GUI --------------------------- - -To conduct a more in-depth analysis of profiling results, it's suggested to use -a Grafana GUI with ROCm Compute Profiler. To interact with profiling results, import your -data to the MongoDB instance included in the ROCm Compute Profiler Dockerfile. See -:doc:`/install/grafana-setup`. - -To interact with Grafana data, stored in the ROCm Compute Profiler database, enter -``database`` :ref:`mode `; for example: - -.. code-block:: shell - - $ rocprof-compute database --import [CONNECTION OPTIONS] - -See :doc:`/how-to/analyze/grafana-gui` for more detailed information. - .. _modes: Modes @@ -160,10 +141,6 @@ Analyze mode To generate a lightweight GUI interface, you can add the ``--gui`` flag to your analysis command. - This mode is a middle ground to the highly detailed ROCm Compute Profiler Grafana GUI and - is great if you want immediate access to a hardware component you’re already - familiar with. - .. code-block:: shell $ rocprof-compute analyze --help @@ -179,26 +156,6 @@ Analyze mode See :doc:`analyze/mode` to learn about these modes in depth and to get started with analysis using ROCm Compute Profiler. -.. _modes-database: - -Database mode -------------- - -``database`` - The Grafana analyzer GUI is built on a MongoDB database. ``--import`` - profiling results to the DB to interact with the workload in Grafana or - ``--remove`` the workload from the DB. - - Connection options need to be specified. See :doc:`/how-to/analyze/grafana-gui` for - more details. - - .. code-block:: shell - - $ rocprof-compute database --help - -See :doc:`/install/grafana-setup` to learn about setting up a Grafana server and -database instance to make your profiling data more digestible and shareable. - .. _global-options: Global options @@ -249,14 +206,6 @@ The following table lists ROCm Compute Profiler's basic operations, their - ``profile`` - ``--name``, ``--roof-only``, ``--roofline-data-type ``, ``-- `` - * - :ref:`Import a workload to database ` - - ``database`` - - ``--import``, ``--host``, ``--username``, ``--workload``, ``--team`` - - * - :ref:`Remove a workload from database ` - - ``database`` - - ``--remove``, ``--host``, ``--username``, ``--workload``, ``--team`` - * - :doc:`Launch standalone GUI from CLI ` - ``analyze`` - ``--path``, ``--gui`` diff --git a/projects/rocprofiler-compute/docs/index.rst b/projects/rocprofiler-compute/docs/index.rst index 8545866109..7ea63dac79 100644 --- a/projects/rocprofiler-compute/docs/index.rst +++ b/projects/rocprofiler-compute/docs/index.rst @@ -27,7 +27,6 @@ ROCm Compute Profiler is open source and hosted at `` - * :doc:`Grafana server for ROCm Compute Profiler ` .. grid-item:: @@ -48,8 +47,6 @@ in practice. * :doc:`how-to/analyze/cli` - * :doc:`how-to/analyze/grafana-gui` - * :doc:`how-to/analyze/standalone-gui` * :doc:`how-to/analyze/tui` diff --git a/projects/rocprofiler-compute/docs/install/core-install.rst b/projects/rocprofiler-compute/docs/install/core-install.rst index d2ef8df773..f1da77f91f 100644 --- a/projects/rocprofiler-compute/docs/install/core-install.rst +++ b/projects/rocprofiler-compute/docs/install/core-install.rst @@ -1,15 +1,13 @@ .. meta:: :description: ROCm Compute Profiler installation and deployment :keywords: Omniperf, ROCm Compute Profiler, ROCm, tool, Instinct, accelerator, AMD, - install, deploy, Grafana, client, configuration, modulefiles + install, deploy, client, configuration, modulefiles ********************************************** Installing and deploying ROCm Compute Profiler ********************************************** -ROCm Compute Profiler consists of two installation components. - -* :ref:`ROCm Compute Profiler core installation ` (client-side) +* :ref:`ROCm Compute Profiler core installation ` * Provides the core application profiling capability. * Allows the collection of performance counters, filtering by hardware @@ -17,20 +15,6 @@ ROCm Compute Profiler consists of two installation components. * Provides a CLI-based analysis mode. * Provides a standalone web interface for importing analysis metrics. -* :doc:`Grafana server for ROCm Compute Profiler ` (server-side) (*optional*) - - * Hosts the MongoDB backend and Grafana instance. - * Is packaged in a Docker container for easy setup. - -Determine what you need to install based on how you would like to interact with -ROCm Compute Profiler. See the following decision tree to help determine what installation is -right for you. - -.. image:: ../data/install/install-decision-tree.png - :align: center - :alt: Decision tree for installing and deploying ROCm Compute Profiler - :width: 800 - .. _core-install: Core installation diff --git a/projects/rocprofiler-compute/docs/install/grafana-setup.rst b/projects/rocprofiler-compute/docs/install/grafana-setup.rst deleted file mode 100644 index 3753081e01..0000000000 --- a/projects/rocprofiler-compute/docs/install/grafana-setup.rst +++ /dev/null @@ -1,219 +0,0 @@ -.. meta:: - :description: ROCm Compute Profiler Grafana server installation and deployment - :keywords: ROCm Compute Profiler, ROCm, profiler, tool, Instinct, accelerator, AMD, - install, deploy, Grafana, server, configuration, GUI - -*************************************************** -Setting up Grafana server for ROCm Compute Profiler -*************************************************** - -.. warning:: - - Grafana and MongoDB functionality is deprecated and will be removed in a future release. - -A Grafana server is *not required* to profile or analyze performance data -from the CLI. It's a supplementary mechanism to help you import performance -data and examine it in a detailed -`Grafana `_ dashboard GUI. - -Learn about installing and configuring the main ROCm Compute Profiler tool in -:ref:`core-install`. - -Setting up a Grafana instance for ROCm Compute Profiler requires the following basic software -dependencies. - -* `Docker Engine `_ - -The recommended process for enabling the server-side of ROCm Compute Profiler is to use the -provided ``Dockerfile`` to build the Grafana and MongoDB instance. - -.. _grafana-mongodb-setup: - -Set up Grafana and MongoDB -========================== - -Once you've decided where to host the Grafana and MongoDB instance, complete the -the following setup instructions. - -Install MongoDB utilities -------------------------- - -ROCm Compute Profiler uses the -`mongoimport `_ -utility to upload data to your Grafana instance's backend database. - -Use the following commands to install MongoDB utilities for Ubuntu 20.04. - -.. code-block:: bash - - $ wget https://fastdl.mongodb.org/tools/db/mongodb-database-tools-ubuntu2004-x86_64-100.6.1.deb - $ sudo apt install ./mongodb-database-tools-ubuntu2004-x86_64-100.6.1.deb - -.. note:: - - Find installation instructions for other distributions in - `MongoDB Database Tools Downloads `_. - -.. _grafana-persistent-storage-setup: - -Set up persistent storage -------------------------- - -Bind MongoDB to a directory on the host OS to create a local backup in case of a -crash or reset. This is called *creating a persistent volume*. - -.. code-block:: bash - - $ sudo mkdir -p /usr/local/persist && cd /usr/local/persist/ - $ sudo mkdir -p grafana-storage mongodb - $ sudo docker volume create --driver local --opt type=none --opt device=/usr/local/persist/grafana-storage --opt o=bind grafana-storage - $ sudo docker volume create --driver local --opt type=none --opt device=/usr/local/persist/mongodb --opt o=bind grafana-mongo-db - -.. _grafana-docker-container: - -Build and launch the Docker container -------------------------------------- - -You're now ready to build your ``Dockerfile``. Navigate to your ROCm Compute Profiler install -directory to begin. - -.. code-block:: bash - - $ cd grafana - $ sudo docker-compose build - $ sudo docker-compose up -d - -.. note:: - - To troubleshoot Docker container build failures related to certificate verification, try - disabling any network proxy services on the host system. These proxy services can interfere - with OpenSSL's ability to retrieve a correct certificate chain when the container accesses - external websites. - -The TCP ports for Grafana (``4000``) and MongoDB (``27017``) in the Docker -container are mapped to ``14000`` and ``27018``, respectively, on the host side. - -.. tip:: - - In the event that either your Grafana or MongoDB instance crashes fatally, - just restart the server. Navigate to your install directory and run: - - .. code-block:: - - $ sudo docker-compose down - $ sudo docker-compose up -d - -.. _grafana-dashboard-setup: - -Set up the Grafana dashboard ----------------------------- - -Once you've launched your Docker container you should be able to reach Grafana -at ``http://:14000``. The default login credentials for your first-time -Grafana setup are: - -* **Username**: ``admin`` -* **Password**: ``admin`` - -.. figure:: ../data/install/grafana_welcome.png - :align: center - :alt: Grafana dashboard welcome screen - :width: 800 - - Grafana's welcome screen. - -.. _grafana-datasource-setup: - -Configure the MongoDB data source ---------------------------------- - -You must configure your MongoDB data source in Grafana before first-time use. -Navigate to Grafana's **Configuration** page to add the "Omniperf Data" -connection. - -.. figure:: ../data/install/datasource_config.jpg - :align: center - :alt: Grafana data source configuration - :width: 800 - - Grafana's Configuration page. - -Configure the following fields in the data source settings. - -.. list-table:: - :stub-columns: 1 - - * - HTTP URL - - ``http://localhost:3333`` - - * - MongoDB URL - - ``mongodb://temp:temp123@\:27018/admin?authSource=admin`` - - * - Database Name - - ``admin`` - -After configuring these fields, click **Save & test** to make sure your -connection is successful. - -.. figure:: ../data/install/datasource_settings.jpg - :align: center - :alt: Grafana data source settings - :width: 800 - - Grafana data source settings. - -.. note:: - - To avoid potential DNS issues, you might need to use the actual IP address - for the host node in the MongoDB URL. - -.. _grafana-import-dashboard-file: - -Import the ROCm Compute Profiler dashboard file ------------------------------------------------ - -From the **Create** → **Import** page, upload the dashboard file, -``/dashboards/Omniperf_v{__VERSION__}_pub.json`` from the -:doc:`ROCm Compute Profiler tarball `. - -Edit both the dashboard **Name** and the **Unique identifier (UID)** fields to -uniquely identify the dashboard. Click **Import** to complete the process. - -.. figure:: ../data/install/import_dashboard.png - :align: center - :alt: Grafana's import dashboard - :width: 800 - - Grafana's Import dashboard. - -.. _grafana-select-workload: - -Select and load the ROCm Compute Profiler workload --------------------------------------------------- - -Once you have imported a dashboard you're ready to begin. Start by browsing -available dashboards and selecting the dashboard you have just imported. - -.. figure:: ../data/install/opening_dashboard.png - :align: center - :alt: Opening your ROCm Compute Profiler dashboard in Grafana - :width: 800 - - Opening your ROCm Compute Profiler profiling dashboard in Grafana. - -Remember that you need to upload workload data to the MongoDB backend before -analyzing in your Grafana interface. See a detailed example of this in -:ref:`grafana-gui-import`. - -After a workload has been successfully uploaded, you should be able to select it -from the workload dropdown located at the top of your Grafana dashboard. - -.. figure:: ../data/install/grafana_workload_selection.png - :align: center - :alt: ROCm Compute Profiler workload selection in Grafana - :width: 800 - - Selecting your ROCm Compute Profiler workload in Grafana. - -For more information on how to use the Grafana interface for analysis see -:doc:`/how-to/analyze/grafana-gui`. diff --git a/projects/rocprofiler-compute/docs/reference/faq.rst b/projects/rocprofiler-compute/docs/reference/faq.rst index 2ec10debf3..caf8d34272 100644 --- a/projects/rocprofiler-compute/docs/reference/faq.rst +++ b/projects/rocprofiler-compute/docs/reference/faq.rst @@ -9,18 +9,6 @@ FAQ Frequently asked questions and troubleshooting tips. -How do I export profiling data I have already generated using ROCm Compute Profiler? -==================================================================================== - -To interact with the Grafana GUI, you must sync data with the MongoDB -backend. You can do this using :ref:`database ` mode. - -Pass in the directory of your desired workload as follows. - -.. code-block:: shell - - $ rocprof-compute database --import -w -H -u -t - python ast error: 'Constant' object has no attribute 'kind' =========================================================== diff --git a/projects/rocprofiler-compute/docs/sphinx/_toc.yml.in b/projects/rocprofiler-compute/docs/sphinx/_toc.yml.in index 483bf1c0f5..4d360072d4 100644 --- a/projects/rocprofiler-compute/docs/sphinx/_toc.yml.in +++ b/projects/rocprofiler-compute/docs/sphinx/_toc.yml.in @@ -12,8 +12,6 @@ subtrees: entries: - file: install/core-install.rst title: Installation and deployment - - file: install/grafana-setup.rst - title: Grafana server setup - caption: How to entries: @@ -24,7 +22,6 @@ subtrees: - file: how-to/analyze/mode.rst entries: - file: how-to/analyze/cli.rst - - file: how-to/analyze/grafana-gui.rst - file: how-to/analyze/standalone-gui.rst - file: how-to/analyze/tui.rst diff --git a/projects/rocprofiler-compute/docs/what-is-rocprof-compute.rst b/projects/rocprofiler-compute/docs/what-is-rocprof-compute.rst index ce96499f46..cb95e95d10 100644 --- a/projects/rocprofiler-compute/docs/what-is-rocprof-compute.rst +++ b/projects/rocprofiler-compute/docs/what-is-rocprof-compute.rst @@ -35,30 +35,11 @@ Counters are stored in a comma-separated-values format for further micro-benchmarks to acquire hierarchical roofline data. The roofline model is not available on accelerators pre-MI200. -Grafana server for ROCm Compute Profiler ----------------------------------------- - -* **Grafana database import**: All raw performance counters are imported into - a :ref:`backend MongoDB database ` to support - analysis and visualization in the Grafana GUI. Compatibility with - previously generated data using older ROCm Compute Profiler versions is not guaranteed. - -* **Grafana analysis dashboard GUI**: The - :doc:`Grafana dashboard ` retrieves the raw - counters information from the backend database. It displays the relevant - performance metrics and visualization. - ROCm Compute Profiler standalone GUI analyzer --------------------------------------------- ROCm Compute Profiler provides a :doc:`standalone GUI ` to -enable basic performance analysis without the need to import data into a -database instance. Find setup instructions in :doc:`install/grafana-setup` - -.. image:: data/install/omniperf_server_vs_client_install.png - :align: center - :alt: Architectural design of ROCm Compute Profiler - :width: 800 +enable basic performance analysis. Features ======== @@ -70,51 +51,13 @@ Additionally, ROCm Compute Profiler provides in-depth memory chart analysis, roo analysis, baseline comparisons, and more, ensuring a thorough understanding of system performance. -ROCm Compute Profiler supports analysis through both the :doc:`command line ` or a -:doc:`GUI `. The following list describes ROCm Compute Profiler's features at a -high level. +ROCm Compute Profiler supports analysis through both the :doc:`command line `. +The following list describes ROCm Compute Profiler's features at a high level. * :doc:`Support for AMD Instinct MI300, MI200, and MI100 accelerators ` * :doc:`Standalone GUI analyzer ` -* :doc:`GUI analyzer via Grafana and MongoDB ` - - * :ref:`System Info panel ` - - * :ref:`Kernel Statistic panel ` - - * :ref:`System Speed-of-Light panel ` - - * :ref:`Memory Chart Analysis panel ` - - * :ref:`Roofline Analysis panel ` (Supported on MI200 and above architectures only) - - * :ref:`Command Processor (CP) panel ` - - * :ref:`Workgroup Manager (SPI) panel ` - - * :ref:`Wavefront Launch panel ` - - * :ref:`Compute Unit - Instruction Mix panel ` - - * :ref:`Compute Unit - Pipeline panel ` - - * :ref:`Local Data Share (LDS) panel ` - - * :ref:`Instruction Cache panel ` - - * :ref:`Scalar L1D Cache panel ` - - * :ref:`L1 Address Processing Unit or Texture Addresser (TA) `; - and :ref:`L1 Backend Data Processing Unit or Texture Data (TD) ` panels - - * :ref:`Vector L1D Cache panel ` - - * :ref:`L2 Cache panel ` - - * :ref:`L2 Cache (per-channel) panel ` - * :ref:`Filtering ` to reduce profiling time * Filtering by dispatch diff --git a/projects/rocprofiler-compute/grafana/.dockerignore b/projects/rocprofiler-compute/grafana/.dockerignore deleted file mode 100644 index 21e7f702ff..0000000000 --- a/projects/rocprofiler-compute/grafana/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -/dashboards diff --git a/projects/rocprofiler-compute/grafana/Dockerfile b/projects/rocprofiler-compute/grafana/Dockerfile deleted file mode 100644 index 19ee5efbd0..0000000000 --- a/projects/rocprofiler-compute/grafana/Dockerfile +++ /dev/null @@ -1,73 +0,0 @@ -# ----------------------------------------------------------------------- -# NOTE: -# Dependencies are not included as part of ROCm Compute Profiler. -# It's the user's responsibility to accept any licensing implications -# before building the project -# ----------------------------------------------------------------------- - -FROM ubuntu:22.04 -WORKDIR /app - -USER root - -ENV DEBIAN_FRONTEND noninteractive -ENV TZ "US/Chicago" -ENV NVM_DIR /usr/local/nvm -ENV NODE_VERSION 20.12.2 - -ADD plugins/rocprofiler-compute_plugin /var/lib/grafana/plugins/rocprofiler-compute_plugin - -# Install Grafana and MongoDB Community Edition -# Note: Grafana install is stubbed to 10.4.3 -RUN apt-get update && \ - apt-get install -y adduser libfontconfig1 musl wget && \ - wget -q https://dl.grafana.com/enterprise/release/grafana-enterprise_10.4.3_amd64.deb && \ - dpkg -i grafana-enterprise_10.4.3_amd64.deb && \ - apt-get install -y gnupg curl && \ - curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor && \ - echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-7.0.list && \ - apt-get update && \ - apt-get install -y mongodb-org - -RUN mkdir /usr/local/nvm && \ - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash && \ - . $NVM_DIR/nvm.sh && \ - nvm install $NODE_VERSION && \ - nvm alias default $NODE_VERSION && \ - nvm use default - -ENV NODE_PATH $NVM_DIR/v$NODE_VERSION/lib/node_modules -ENV PATH $NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH - -RUN npm --version && \ - node --version - -# Install Grafana plugins -RUN apt-get install -y tzdata systemd apt-utils npm vim net-tools && \ - /usr/sbin/grafana-cli plugins install michaeldmoore-multistat-panel && \ - /usr/sbin/grafana-cli plugins install ae3e-plotly-panel && \ - /usr/sbin/grafana-cli plugins install natel-plotly-panel && \ - /usr/sbin/grafana-cli plugins install grafana-image-renderer && \ - /usr/sbin/grafana-cli plugins install aceiot-svg-panel && \ - chown root:grafana /etc/grafana && \ - cd /var/lib/grafana/plugins/rocprofiler-compute_plugin && \ - npm install && \ - npm run build && \ - apt-get autoremove -y && \ - apt-get autoclean -y && \ - sed -i "s/ bindIp.*/ bindIp: 0.0.0.0/" /etc/mongod.conf && \ - mkdir -p /var/lib/grafana && \ - touch /var/lib/grafana/grafana.lib && \ - chown grafana:grafana /var/lib/grafana/grafana.lib - -# Overwrite grafana ini file -COPY grafana.ini /etc/grafana - -# Switch Grafana port to 4000 -RUN sed -i "s/^;http_port = 3000/http_port = 4000/" /etc/grafana/grafana.ini && \ - sed -i "s/^http_port = 3000/http_port = 4000/" /usr/share/grafana/conf/defaults.ini - -# Starts mongo and grafana-server at startup -COPY docker-entrypoint.sh /docker-entrypoint.sh - -ENTRYPOINT [ "/docker-entrypoint.sh" ] diff --git a/projects/rocprofiler-compute/grafana/dashboards/RocProfCompute_v1.0.3_pub.json b/projects/rocprofiler-compute/grafana/dashboards/RocProfCompute_v1.0.3_pub.json deleted file mode 100644 index aecf5d7ccf..0000000000 --- a/projects/rocprofiler-compute/grafana/dashboards/RocProfCompute_v1.0.3_pub.json +++ /dev/null @@ -1,13325 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 0, - "id": 1, - "iteration": 1667231289239, - "links": [], - "liveNow": false, - "panels": [ - { - "collapsed": true, - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 217, - "panels": [ - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [] - }, - "gridPos": { - "h": 23, - "w": 13, - "x": 0, - "y": 1 - }, - "id": 159, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.sysinfo.aggregate([\n {\"$project\": {\n \"_id\": 0,\n \"date\":1,\n \"host_name\": 1,\n \"host_cpu\": 1,\n \"host_distro\": 1,\n \"host_kernel\": 1,\n \"host_rocmver\": 1,\n \"gpu_soc\": 1,\n \"name\": 1,\n \"numSE\": 1,\n \"numSQC\": 1,\n \"numCU\": 1,\n \"numSIMD\": 1,\n \"waveSize\": 1,\n \"maxWavesPerCU\": 1,\n \"maxWorkgroupSize\":1,\n \"L1\":1,\n \"L2\":1,\n \"L2Banks\": 1,\n \"sclk\":1,\n \"mclk\":1,\n \"cur_sclk\": 1,\n \"cur_mclk\":1,\n \"hbmBW\":1\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\":\"Date\",\n \"Value\": \"&date\"\n },\n {\n \"Metric\":\"Host Name\",\n \"Value\": \"&host_name\"\n },\n {\n \"Metric\":\"Host CPU\",\n \"Value\": \"&host_cpu\"\n },\n {\n \"Metric\":\"Host Distro\",\n \"Value\": \"&host_distro\"\n },\n {\n \"Metric\":\"Host Kernel\",\n \"Value\": \"&host_kernel\"\n },\n {\n \"Metric\":\"ROCm Version\",\n \"Value\": \"&host_rocmver\"\n },\n {\n \"Metric\":\"GFX SoC\",\n \"Value\": \"&name\"\n },\n {\n \"Metric\":\"GFX ID\",\n \"Value\": \"&gpu_soc\"\n },\n {\n \"Metric\":\"Total SEs\",\n \"Value\":\"&numSE\"\n },\n {\n \"Metric\":\"Total SQCs\",\n \"Value\":\"&numSQC\"\n },\n {\n\n \"Metric\":\"Total CUs\",\n \"Value\":\"&numCU\"\n },\n {\n \"Metric\":\"SIMDs/CU\",\n \"Value\": \"&numSIMD\"\n },\n {\n \"Metric\":\"Max Wavefronts Occupancy Per CU\",\n \"Value\":\"&maxWavesPerCU\"\n },\n {\n \"Metric\":\"Max Workgroup Size\",\n \"Value\":\"&maxWorkgroupSize\"\n },\n {\n \"Metric\":\"L1Cache per CU (KB)\",\n \"Value\":\"&L1\"\n },\n {\n \"Metric\":\"L2Cache (KB)\",\n \"Value\":\"&L2\"\n },\n {\n \"Metric\":\"L2Cache Channels\",\n \"Value\":\"&L2Banks\"\n },\n {\n \"Metric\":\"Sys Clock (Max) - MHz\",\n \"Value\":\"&sclk\"\n \n },\n {\n \"Metric\":\"Memory Clock (Max) - MHz\",\n \"Value\":\"&mclk\"\n },\n {\n \"Metric\":\"Sys Clock (Cur) - MHz\",\n \"Value\":\"&cur_sclk\"\n \n },\n {\n \"Metric\":\"Memory Clock (Cur) - MHz\",\n \"Value\":\"&cur_mclk\"\n },\n {\n \"Metric\":\"HBM Bandwidth - GB/s\",\n \"Value\":\"&hbmBW\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.sysinfo.aggregate([\n {\"$match\": {\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(System Info)\"}}\n }},\n\n {\"$project\": {\n \"_id\": 0,\n \"date\":1,\n \"host_name\": 1,\n \"host_cpu\": 1,\n \"host_distro\": 1,\n \"host_kernel\": 1,\n \"host_rocmver\": 1,\n \"gpu_soc\": 1,\n \"name\": 1,\n \"numSE\": 1,\n \"numSQC\": 1,\n \"numCU\": 1,\n \"numSIMD\": 1,\n \"waveSize\": 1,\n \"maxWavesPerCU\": 1,\n \"maxWorkgroupSize\":1,\n \"L1\":1,\n \"L2\":1,\n \"L2Banks\": 1,\n \"sclk\":1,\n \"mclk\":1,\n \"cur_sclk\": 1,\n \"cur_mclk\":1,\n \"hbmBW\":1\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\":\"Date\",\n \"Value\": \"&date\"\n },\n {\n \"Metric\":\"Host Name\",\n \"Value\": \"&host_name\"\n },\n {\n \"Metric\":\"Host CPU\",\n \"Value\": \"&host_cpu\"\n },\n {\n \"Metric\":\"Host Distro\",\n \"Value\": \"&host_distro\"\n },\n {\n \"Metric\":\"Host Kernel\",\n \"Value\": \"&host_kernel\"\n },\n {\n \"Metric\":\"ROCm Version\",\n \"Value\": \"&host_rocmver\"\n },\n {\n \"Metric\":\"GFX SoC\",\n \"Value\": \"&name\"\n },\n {\n \"Metric\":\"GFX ID\",\n \"Value\": \"&gpu_soc\"\n },\n {\n \"Metric\":\"Total SEs\",\n \"Value\":\"&numSE\"\n },\n {\n \"Metric\":\"Total SQCs\",\n \"Value\":\"&numSQC\"\n },\n {\n\n \"Metric\":\"Total CUs\",\n \"Value\":\"&numCU\"\n },\n {\n \"Metric\":\"SIMDs/CU\",\n \"Value\": \"&numSIMD\"\n },\n {\n \"Metric\":\"Max Wavefronts Occupancy Per CU\",\n \"Value\":\"&maxWavesPerCU\"\n },\n {\n \"Metric\":\"Max Workgroup Size\",\n \"Value\":\"&maxWorkgroupSize\"\n },\n {\n \"Metric\":\"L1Cache per CU (KB)\",\n \"Value\":\"&L1\"\n },\n {\n \"Metric\":\"L2Cache (KB)\",\n \"Value\":\"&L2\"\n },\n {\n \"Metric\":\"L2Cache Channels\",\n \"Value\":\"&L2Banks\"\n },\n {\n \"Metric\":\"Sys Clock (Max) - MHz\",\n \"Value\":\"&sclk\"\n \n },\n {\n \"Metric\":\"Memory Clock (Max) - MHz\",\n \"Value\":\"&mclk\"\n },\n {\n \"Metric\":\"Sys Clock (Cur) - MHz\",\n \"Value\":\"&cur_sclk\"\n \n },\n {\n \"Metric\":\"Memory Clock (Cur) - MHz\",\n \"Value\":\"&cur_mclk\"\n },\n {\n \"Metric\":\"HBM Bandwidth - GB/s\",\n \"Value\":\"&hbmBW\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "System Info", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true - }, - "indexByName": {}, - "renameByName": { - "Value 1": "Current", - "Value 2": "Baseline" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "System Info", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 1 - }, - "id": 108, - "panels": [ - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto", - "filterable": false - }, - "decimals": 0, - "links": [], - "mappings": [ - { - "options": { - "match": "false", - "result": { - "index": 0 - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text" - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Percent of Peak - PoP" - }, - "properties": [ - { - "id": "unit", - "value": "percent" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "transparent" - }, - { - "color": "orange", - "value": 50 - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - { - "id": "custom.displayMode", - "value": "color-background" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.displayMode", - "value": "color-text" - }, - { - "id": "custom.width", - "value": 252 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit 1" - }, - "properties": [ - { - "id": "custom.displayMode", - "value": "color-background" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 137 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 110 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 125 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg" - }, - "properties": [ - { - "id": "custom.width", - "value": 161 - } - ] - } - ] - }, - "gridPos": { - "h": 29, - "w": 15, - "x": 0, - "y": 2 - }, - "id": 110, - "interval": "2h", - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"valu_flops_val\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }] }] }\n ]}\n ,{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }]\n }},\n \n \"valu_intOps_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] }] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n },\n \n \"mfma_flops_f16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_bf16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f32_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f64_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_i8_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \n \n \"salu_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU] }] }\n },\n \n \"valu_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU] }] }\n },\n \n \"mfma_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU, 4] }] }\n },\n\n \n \"lds_bconf\": {\n \"$avg\": {\"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n } \n },\n \n \n \"lds_bw\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]}, \n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]}\n },\n \n \"lds_bw_pop\": {\n \"$avg\": {\"$divide\": [\n {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]}, \n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]}, \n {\"$multiply\": [$sclk, $numCU, 0.00128]}\n ]}\n },\n \n \"unpredthreads_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \n \"ipcIssue_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\", \"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"eaWriteLat_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\" , 0]},\n { \"$divide\": [\"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\"] },\n null \n ]\n }\n },\n \"eaReadLat_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\" , 0]},\n { \"$divide\": [\"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\"] },\n null \n ]\n }\n },\n \"eaWriteBW_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64] }, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n }, \n \"eaReadBW_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32] }, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] }] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n },\n \"l2_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }, 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }] },\n null \n ]\n }\n },\n \"vecl1_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]},\n { \"$subtract\": [100, { \"$divide\": [{ \"$multiply\": [100, { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }] }, \"&TCP_TOTAL_CACHE_ACCESSES_sum\"] }] },\n null\n ]\n }\n },\n \"vecl1_BW_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \"l1k_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\"]} , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\"]}] },\n null\n ]\n }\n },\n \"l1i_hitRate_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\"]}] }\n },\n \"l1i_BW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQC_ICACHE_REQ\",{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }, 64] }\n },\n \"l1k_BW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQC_DCACHE_REQ\", { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }, 64] }\n }\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"VALU FLOPs\",\n \"Value\": \"&valu_flops_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 64, 2 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&valu_flops_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 64, 2 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"VALU IOPs\",\n \"Value\": \"&valu_intOps_val\",\n \"Unit\": \"GIOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 64, 2 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&valu_intOps_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 64, 2 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (BF16)\",\n \"Value\": \"&mfma_flops_bf16_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 512 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_bf16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 512 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F16)\",\n \"Value\": \"&mfma_flops_f16_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 1024 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 1024 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F32)\",\n \"Value\": \"&mfma_flops_f32_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 256 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f32_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 256 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F64)\",\n \"Value\": \"&mfma_flops_f64_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 256 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f64_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 256 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA IOPs (Int8)\",\n \"Value\": \"&mfma_flops_i8_val\",\n \"Unit\": \"GIOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 1024 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_i8_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 1024 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"Active CUs\",\n \"Value\": $numActiveCUs,\n \"Unit\": \"CUs\",\n \"peak\": $numCU,\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, $numActiveCUs] }, $numCU]}\n },\n \n {\n \"Metric\": \"SALU Util\",\n \"Value\": \"&salu_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&salu_val\"\n },\n {\n \"Metric\": \"VALU Util\",\n \"Value\": \"&valu_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&valu_val\"\n },\n {\n \"Metric\": \"MFMA Util\",\n \"Value\": \"&mfma_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&mfma_val\"\n },\n {\n \"Metric\": \"VALU Active Threads/Wave\",\n \"Value\": \"&unpredthreads_val\",\n \"Unit\": \"Threads\",\n \"peak\": 64,\n \"Percent of Peak - PoP\": { \"$multiply\": [\"&unpredthreads_val\", 1.5625]}\n },\n {\n \"Metric\": \"IPC - Issue\",\n \"Value\": \"&ipcIssue_val\",\n \"Unit\": \"Instr/cycle\",\n \"peak\": 5,\n \"Percent of Peak - PoP\": {\"$divide\": [{ \"$multiply\": [100, \"&ipcIssue_val\"] }, 5] }\n },\n {\n \"Metric\": \"LDS BW\",\n \"Value\": \"&lds_bw\",\n \"Unit\": \"GB/sec\",\n \"peak\": {\"$multiply\": [$sclk, $numCU, 0.128]},\n \"Percent of Peak - PoP\": \"&lds_bw_pop\"\n },\n {\n \"Metric\": \"LDS Bank Conflict\",\n \"Value\": \"&lds_bconf\",\n \"Unit\": \"Conflicts/access\",\n \"peak\": \"32\",\n \"Percent of Peak - PoP\": {\"$divide\": [{ \"$multiply\": [100, \"&lds_bconf\"] }, 32] }\n },\n {\n \"Metric\": \"Instr Cache Hit Rate\",\n \"Value\": \"&l1i_hitRate_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l1i_hitRate_val\"\n }, \n {\n \"Metric\": \"Instr Cache BW\",\n \"Value\": \"&l1i_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numSQC]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&l1i_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numSQC]}] }\n },\n {\n \"Metric\": \"Scalar L1D Cache Hit Rate\",\n \"Value\": \"&l1k_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l1k_cacheHits_val\"\n },\n {\n \"Metric\": \"Scalar L1D Cache BW\",\n \"Value\": \"&l1k_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numSQC]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&l1k_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numSQC]}] }\n },\n\n {\n \"Metric\": \"Vector L1D Cache Hit Rate\",\n \"Value\": \"&vecl1_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&vecl1_cacheHits_val\"\n },\n {\n \"Metric\": \"Vector L1D Cache BW\",\n \"Value\": \"&vecl1_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numCU]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&vecl1_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numCU]}] }\n },\n {\n \"Metric\": \"L2 Cache Hit Rate\",\n \"Value\": \"&l2_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l2_cacheHits_val\"\n },\n {\n \"Metric\": \"L2-Fabric Read BW\",\n \"Value\": \"&eaReadBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": \"$hbmBW\",\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&eaReadBW_val\"] }, $hbmBW] }\n },\n {\n \"Metric\": \"L2-Fabric Write BW\",\n \"Value\": \"&eaWriteBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": \"$hbmBW\",\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&eaWriteBW_val\"] }, $hbmBW] }\n },\n {\n \"Metric\": \"L2-Fabric Read Latency\",\n \"Value\": \"&eaReadLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n },\n {\n \"Metric\": \"L2-Fabric Write Latency\",\n \"Value\": \"&eaWriteLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_LEVEL_WAVES\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"waveOcc_val\": {\n \"$avg\": { \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\"] }\n },\n \"waveOcc_pop\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\"] },{ \"$multiply\": [$maxWavesPerCU, $numCU] }] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave Occupancy\",\n \"Value\": \"&waveOcc_val\",\n \"Unit\": \"Wavefronts\",\n \"peak\": { \"$multiply\": [$maxWavesPerCU, $numCU] },\n \"Percent of Peak - PoP\": { \"$multiply\": [100, \"&waveOcc_pop\"] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n ]\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_IFETCH_LEVEL\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"instrFetchBW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQ_IFETCH\", { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }, 32] }\n },\n \"instrFetchLat_val\": {\n \"$avg\": { \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\"] }\n }\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Instr Fetch BW\",\n \"Value\": \"&instrFetchBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 32] }, $numSQC]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&instrFetchBW_val\"]}, { \"$multiply\": [$numSQC, { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 32] }] }] }\n },\n {\n \"Metric\": \"Instr Fetch Latency\",\n \"Value\": \"&instrFetchLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n ]\n }}\n\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"System Speed-of-Light\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"valu_flops_val\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }] }] }\n ]}\n ,{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }]\n }},\n \n \"valu_intOps_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] }] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n },\n \n \"mfma_flops_f16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_bf16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f32_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f64_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_i8_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \n \n \"salu_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2] }] }\n },\n \n \"valu_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2] }] }\n },\n \n \"mfma_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2, 4] }] }\n },\n \n \"lds_bconf\": {\n \"$avg\": {\"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n } \n },\n \n \"lds_bw\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks2\"}\n ]}, \n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]}\n },\n \n \"lds_bw_pop\": {\n \"$avg\": {\"$divide\": [\n {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks2\"}\n ]}, \n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]}, \n {\"$multiply\": [$sclk2, $numCU2, 0.00128]}\n ]}\n },\n \n \"unpredthreads_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \n \"ipcIssue_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\", \"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"eaWriteLat_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\" , 0]},\n { \"$divide\": [\"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\"] },\n null \n ]\n }\n },\n \"eaReadLat_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\" , 0]},\n { \"$divide\": [\"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\"] },\n null \n ]\n }\n },\n \"eaWriteBW_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64] }, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n }, \n \"eaReadBW_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32] }, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] }] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n },\n \"l2_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }, 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }] },\n null \n ]\n }\n },\n \"vecl1_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]},\n { \"$subtract\": [100, { \"$divide\": [{ \"$multiply\": [100, { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }] }, \"&TCP_TOTAL_CACHE_ACCESSES_sum\"] }] },\n null\n ]\n }\n },\n \"vecl1_BW_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \"l1k_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\"]} , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\"]}] },\n null\n ]\n }\n },\n \"l1i_hitRate_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\"]}] }\n },\n \"l1i_BW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQC_ICACHE_REQ\",{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }, 64] }\n },\n \"l1k_BW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQC_DCACHE_REQ\", { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }, 64] }\n }\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"VALU FLOPs\",\n \"Value\": \"&valu_flops_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 64, 2 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&valu_flops_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 64, 2 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"VALU IOPs\",\n \"Value\": \"&valu_intOps_val\",\n \"Unit\": \"GIOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 64, 2 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&valu_intOps_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 64, 2 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (BF16)\",\n \"Value\": \"&mfma_flops_bf16_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 512 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_bf16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 512 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F16)\",\n \"Value\": \"&mfma_flops_f16_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 1024 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 1024 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F32)\",\n \"Value\": \"&mfma_flops_f32_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 256 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f32_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 256 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F64)\",\n \"Value\": \"&mfma_flops_f64_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 256 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f64_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 256 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA IOPs (Int8)\",\n \"Value\": \"&mfma_flops_i8_val\",\n \"Unit\": \"GIOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 1024 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_i8_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 1024 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"Active CUs\",\n \"Value\": $numActiveCUs2,\n \"Unit\": \"CUs\",\n \"peak\": $numCU2,\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, $numActiveCUs2] }, $numCU2]}\n },\n \n {\n \"Metric\": \"SALU Util\",\n \"Value\": \"&salu_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&salu_val\"\n },\n {\n \"Metric\": \"VALU Util\",\n \"Value\": \"&valu_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&valu_val\"\n },\n {\n \"Metric\": \"MFMA Util\",\n \"Value\": \"&mfma_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&mfma_val\"\n },\n {\n \"Metric\": \"VALU Active Threads/Wave\",\n \"Value\": \"&unpredthreads_val\",\n \"Unit\": \"Threads\",\n \"peak\": 64,\n \"Percent of Peak - PoP\": { \"$multiply\": [\"&unpredthreads_val\", 1.5625]}\n },\n {\n \"Metric\": \"IPC - Issue\",\n \"Value\": \"&ipcIssue_val\",\n \"Unit\": \"Instr/cycle\",\n \"peak\": 5,\n \"Percent of Peak - PoP\": {\"$divide\": [{ \"$multiply\": [100, \"&ipcIssue_val\"] }, 5] }\n },\n {\n \"Metric\": \"LDS BW\",\n \"Value\": \"&lds_bw\",\n \"Unit\": \"GB/sec\",\n \"peak\": {\"$multiply\": [$sclk2, $numCU2, 0.128]},\n \"Percent of Peak - PoP\": \"&lds_bw_pop\"\n },\n {\n \"Metric\": \"LDS Bank Conflict\",\n \"Value\": \"&lds_bconf\",\n \"Unit\": \"Conflicts/access\",\n \"peak\": \"32\",\n \"Percent of Peak - PoP\": {\"$divide\": [{ \"$multiply\": [100, \"&lds_bconf\"] }, 32] }\n },\n {\n \"Metric\": \"Instr Cache Hit Rate\",\n \"Value\": \"&l1i_hitRate_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l1i_hitRate_val\"\n }, \n {\n \"Metric\": \"Instr Cache BW\",\n \"Value\": \"&l1i_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numSQC2]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&l1i_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numSQC2]}] }\n },\n {\n \"Metric\": \"Scalar L1D Cache Hit Rate\",\n \"Value\": \"&l1k_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l1k_cacheHits_val\"\n },\n {\n \"Metric\": \"Scalar L1D Cache BW\",\n \"Value\": \"&l1k_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numSQC2]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&l1k_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numSQC2]}] }\n },\n\n {\n \"Metric\": \"Vector L1D Cache Hit Rate\",\n \"Value\": \"&vecl1_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&vecl1_cacheHits_val\"\n },\n {\n \"Metric\": \"Vector L1D Cache BW\",\n \"Value\": \"&vecl1_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numCU2]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&vecl1_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numCU2]}] }\n },\n {\n \"Metric\": \"L2 Cache Hit Rate\",\n \"Value\": \"&l2_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l2_cacheHits_val\"\n }, \n {\n \"Metric\": \"L2-Fabric Read BW\",\n \"Value\": \"&eaReadBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": \"$hbmBW2\",\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&eaReadBW_val\"] }, $hbmBW2] }\n },\n {\n \"Metric\": \"L2-Fabric Write BW\",\n \"Value\": \"&eaWriteBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": \"$hbmBW2\",\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&eaWriteBW_val\"] }, $hbmBW2] }\n },\n {\n \"Metric\": \"L2-Fabric Read Latency\",\n \"Value\": \"&eaReadLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n },\n {\n \"Metric\": \"L2-Fabric Write Latency\",\n \"Value\": \"&eaWriteLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n }\n \n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_LEVEL_WAVES\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"System Speed-of-Light\"}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"waveOcc_val\": {\n \"$avg\": { \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\"] }\n },\n \"waveOcc_pop\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\"] },{ \"$multiply\": [$maxWavesPerCU2, $numCU2] }] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave Occupancy\",\n \"Value\": \"&waveOcc_val\",\n \"Unit\": \"Wavefronts\",\n \"peak\": { \"$multiply\": [$maxWavesPerCU2, $numCU2] },\n \"Percent of Peak - PoP\": { \"$multiply\": [100, \"&waveOcc_pop\"] }\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n ]\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_IFETCH_LEVEL\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"System Speed-of-Light\"}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"instrFetchBW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQ_IFETCH\", { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }, 32] }\n },\n \"instrFetchLat_val\": {\n \"$avg\": { \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\"] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Instr Fetch BW\",\n \"Value\": \"&instrFetchBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 32] }, $numSQC2]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&instrFetchBW_val\"]}, { \"$multiply\": [$numSQC2, { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 32] }] }] }\n },\n {\n \"Metric\": \"Instr Fetch Latency\",\n \"Value\": \"&instrFetchLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]\n }}\n\n ]);", - "type": "table" - } - ], - "title": "Speed of Light", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Metric 1": 0, - "Metric 2": 7, - "Percent of Peak - PoP 1": 5, - "Percent of Peak - PoP 2": 6, - "Unit 1": 8, - "Unit 2": 9, - "Value 1": 1, - "Value 2": 2, - "peak 1": 3, - "peak 2": 4 - }, - "renameByName": { - "Percent of Peak - PoP": "Pct-of-Peak", - "Percent of Peak - PoP 1": "Pct-of-Peak (Current)", - "Percent of Peak - PoP 2": "Pct-of-Peak (Baseline)", - "Unit": "", - "Value": "Avg", - "Value 1": "Avg (Current)", - "Value 2": "Avg (Baseline)", - "peak": "Theoretical Max", - "peak 1": "Theoretical Max (Current)", - "peak 2": "Theoretical Max (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Dispatch ID" - }, - "properties": [ - { - "id": "custom.width", - "value": 126 - } - ] - } - ] - }, - "gridPos": { - "h": 29, - "w": 4, - "x": 16, - "y": 2 - }, - "id": 175, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Dispatch ID\": \"&Index\",\n \"Kernel Name\": \"&KernelName\"\n }},\n {\"$sort\": {\n \"Dispatch ID\": 1\n }}\n],\n{ allowDiskUse: true }\n);", - "type": "table" - } - ], - "title": "Dispatch IDs - Current", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": {}, - "renameByName": { - "_id": "Dispatch ID" - } - } - } - ], - "type": "table" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Dispatch ID" - }, - "properties": [ - { - "id": "custom.width", - "value": 127 - } - ] - } - ] - }, - "gridPos": { - "h": 29, - "w": 4, - "x": 20, - "y": 2 - }, - "id": 215, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "tlh8EwUnk" - }, - "rawQuery": true, - "refId": "A", - "target": "$Workload2.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Dispatch ID\": \"&Index\",\n \"Kernel Name\": \"&KernelName\"\n }},\n {\"$sort\": {\n \"Dispatch ID\": 1\n }}\n]);", - "type": "table" - } - ], - "title": "Dispatch IDs - Baseline", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": {}, - "renameByName": { - "_id": "Dispatch ID" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "System Speed-of-Light", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 2 - }, - "id": 36, - "panels": [ - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "fillOpacity": 80, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineWidth": 1 - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - } - ] - }, - "unit": "µs" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 24, - "x": 0, - "y": 3 - }, - "id": 157, - "options": { - "bucketOffset": 0, - "legend": { - "calcs": [], - "displayMode": "hidden", - "placement": "bottom" - } - }, - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "u5Z2zJhnk" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"elapsedTime1\": {\n \"$divide\": [{\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}, 1000]\n }\n }},\n\n {\"$project\": {\n \"_id\": 0,\n \"elapsedTime1\": 1\n }}\n]);", - "type": "table" - } - ], - "title": "Kernel Time Histogram", - "transparent": true, - "type": "histogram" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "transparent" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "TotalDuration" - }, - "properties": [ - { - "id": "unit", - "value": "ns" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg Duration" - }, - "properties": [ - { - "id": "unit", - "value": "ns" - }, - { - "id": "custom.width", - "value": 107 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "LDS" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 110 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L1 Cache" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 95 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2 Cache" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 123 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "HBM BW " - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Calls" - }, - "properties": [ - { - "id": "custom.width", - "value": 69 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Name" - }, - "properties": [ - { - "id": "custom.width", - "value": 165 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Total Duration" - }, - "properties": [ - { - "id": "custom.width", - "value": 126 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F16)" - }, - "properties": [ - { - "id": "custom.width", - "value": 143 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (BF16)" - }, - "properties": [ - { - "id": "custom.width", - "value": 155 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F32)" - }, - "properties": [ - { - "id": "custom.width", - "value": 146 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F64)" - }, - "properties": [ - { - "id": "custom.width", - "value": 146 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Throughput" - }, - "properties": [ - { - "id": "unit", - "value": "gflops" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Total FLOPs" - }, - "properties": [ - { - "id": "decimals", - "value": 0 - }, - { - "id": "custom.width", - "value": 141 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "VALU FLOPs" - }, - "properties": [ - { - "id": "decimals", - "value": 0 - }, - { - "id": "custom.width", - "value": 130 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (HBM)" - }, - "properties": [ - { - "id": "custom.width", - "value": 89 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (L2 Cache)" - }, - "properties": [ - { - "id": "custom.width", - "value": 103 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (L1 Cache)" - }, - "properties": [ - { - "id": "custom.width", - "value": 114 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Performance" - }, - "properties": [ - { - "id": "custom.width", - "value": 144 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Peak FLOPs" - }, - "properties": [ - { - "id": "unit", - "value": "gflops" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "HBM" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - } - ] - } - ] - }, - "gridPos": { - "h": 12, - "w": 24, - "x": 0, - "y": 12 - }, - "id": 213, - "interval": "2h", - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [ - { - "desc": true, - "displayName": "L1 Cache (Bytes)" - } - ] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "HV80ot2nz" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n { \"$group\": { \n \"_id\": \"&KernelName\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n\n \"Throughput\": {\n \"$avg\": { \"$divide\": [\n \n {\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]},\n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]}\n },\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"LDS_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 128 ]} \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n },\n \"hbm_bw\": {\n \"$avg\": {\n \"$divide\": [\n {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n },\n {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}\n ]\n\n }\n }\n\n }},\n \n {\"$sort\": { \"TotalDuration\": -1 }},\n \n { \"$limit\": $TopN },\n\n {\"$addFields\": {\n \"ai_L1\": { \"$cond\": [\n {\"$ne\": [\"&L1cache_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"]},\n \"\"\n ]},\n \"ai_L2\": { \"$cond\": [\n {\"$ne\": [\"&L2cache_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"]},\n \"\"\n ]},\n \"ai_hbm\": { \"$cond\": [\n {\"$ne\": [\"&hbm_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"]},\n \"\"\n ]}\n }}\n]);", - "type": "table" - } - ], - "title": "Top Kernels", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "AvgDuration": 5, - "Calls": 1, - "L1cache_data": 16, - "L2cache_data": 17, - "LDS_data": 15, - "Throughput": 2, - "TotalDuration": 4, - "_id": 0, - "ai_L1": 6, - "ai_L2": 7, - "ai_hbm": 8, - "hbm_bw": 3, - "hbm_data": 18, - "mfma_flops_bf16": 12, - "mfma_flops_f16": 11, - "mfma_flops_f32": 13, - "mfma_flops_f64": 14, - "total_flops": 9, - "valu_flops": 10 - }, - "renameByName": { - "AvgDuration": "Avg Duration", - "Calls": "", - "L1cache_data": "Vector L1D Cache", - "L2cache_data": "L2 Cache", - "LDS_data": "LDS", - "Throughput": "Performance", - "TotalDuration": "Total Duration", - "_id": "Name", - "ai_L1": "AI (Vector L1D Cache)", - "ai_L2": "AI (L2 Cache)", - "ai_hbm": "AI (HBM)", - "hbm_bw": "HBM BW ", - "hbm_data": "HBM", - "mfma_flops_bf16": "MFMA FLOPs (BF16)", - "mfma_flops_f16": "MFMA FLOPs (F16)", - "mfma_flops_f32": "MFMA FLOPs (F32)", - "mfma_flops_f64": "MFMA FLOPs (F64)", - "peak_flops": "Peak FLOPs", - "total_flops": "Total FLOPs", - "valu_flops": "VALU FLOPs" - } - } - } - ], - "type": "table" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "transparent" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "TotalDuration" - }, - "properties": [ - { - "id": "unit", - "value": "ns" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg Duration" - }, - "properties": [ - { - "id": "unit", - "value": "ns" - }, - { - "id": "custom.width", - "value": 138 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "LDS " - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 110 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L1 Cache" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 95 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2 Cache" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 87 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "HBM BW " - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Calls" - }, - "properties": [ - { - "id": "custom.width", - "value": 69 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Name" - }, - "properties": [ - { - "id": "custom.width", - "value": 165 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Total Duration" - }, - "properties": [ - { - "id": "custom.width", - "value": 153 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F16)" - }, - "properties": [ - { - "id": "custom.width", - "value": 143 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (BF16)" - }, - "properties": [ - { - "id": "custom.width", - "value": 155 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F32)" - }, - "properties": [ - { - "id": "custom.width", - "value": 146 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F64)" - }, - "properties": [ - { - "id": "custom.width", - "value": 146 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Throughput" - }, - "properties": [ - { - "id": "unit", - "value": "gflops" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Total FLOPs" - }, - "properties": [ - { - "id": "decimals", - "value": 0 - }, - { - "id": "custom.width", - "value": 141 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "VALU FLOPs" - }, - "properties": [ - { - "id": "decimals", - "value": 0 - }, - { - "id": "custom.width", - "value": 130 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (HBM)" - }, - "properties": [ - { - "id": "custom.width", - "value": 89 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (L2 Cache)" - }, - "properties": [ - { - "id": "custom.width", - "value": 103 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (L1 Cache)" - }, - "properties": [ - { - "id": "custom.width", - "value": 114 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "LDS (Bytes)" - }, - "properties": [ - { - "id": "custom.width", - "value": 98 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "HBM" - }, - "properties": [ - { - "id": "custom.width", - "value": 124 - }, - { - "id": "unit", - "value": "decbytes" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Dispatch" - }, - "properties": [ - { - "id": "custom.width", - "value": 108 - } - ] - } - ] - }, - "gridPos": { - "h": 12, - "w": 24, - "x": 0, - "y": 24 - }, - "id": 251, - "interval": "2h", - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "HV80ot2nz" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n { \"$group\": { \n \"_id\": \"&Index\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n\n \"Throughput\": {\n \"$avg\": { \"$divide\": [\n \n {\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]},\n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]}\n },\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"LDS_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 128]\n } \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n },\n\n \"hbm_bw\": {\n \"$avg\": {\n \"$divide\": [\n {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n },\n {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}\n ]\n\n }\n }\n\n }},\n \n {\"$sort\": { \"TotalDuration\": -1 }},\n { \"$limit\": $TopN },\n\n {\"$addFields\": {\n \"ai_L1\": { \"$cond\": [\n {\"$ne\": [\"&L1cache_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"]},\n \"\"\n ]},\n \"ai_L2\": { \"$cond\": [\n {\"$ne\": [\"&L2cache_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"]},\n \"\"\n ]},\n \"ai_hbm\": { \"$cond\": [\n {\"$ne\": [\"&hbm_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"]},\n \"\"\n ]}\n\n }}\n]);", - "type": "table" - } - ], - "title": "Top Dispatches", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "AvgDuration": 5, - "Calls": 1, - "L1cache_data": 16, - "L2cache_data": 17, - "LDS_data": 15, - "Throughput": 2, - "TotalDuration": 4, - "_id": 0, - "ai_L1": 6, - "ai_L2": 7, - "ai_hbm": 8, - "hbm_bw": 3, - "hbm_data": 18, - "mfma_flops_bf16": 12, - "mfma_flops_f16": 11, - "mfma_flops_f32": 13, - "mfma_flops_f64": 14, - "peak_flops": 19, - "total_flops": 9, - "valu_flops": 10 - }, - "renameByName": { - "AvgDuration": "Avg Duration", - "Calls": "", - "L1cache_data": "Vector L1D Cache", - "L2cache_data": "L2 Cache", - "LDS_data": "LDS ", - "Throughput": "Performance", - "TotalDuration": "Total Duration", - "_id": "Dispatch", - "ai_L1": "AI (Vector L1D Cache)", - "ai_L2": "AI (L2 Cache)", - "ai_hbm": "AI (HBM)", - "hbm_bw": "HBM BW ", - "hbm_data": "HBM", - "mfma_flops_bf16": "MFMA FLOPs (BF16)", - "mfma_flops_f16": "MFMA FLOPs (F16)", - "mfma_flops_f32": "MFMA FLOPs (F32)", - "mfma_flops_f64": "MFMA FLOPs (F64)", - "total_flops": "Total FLOPs", - "valu_flops": "VALU FLOPs" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Kernel Statistics", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 3 - }, - "id": 40, - "panels": [ - { - "description": "All transaction units default to Billion, when per-sec norm is used", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 13, - "w": 24, - "x": 0, - "y": 4 - }, - "id": 285, - "options": { - "addAllIDs": false, - "captureMappings": false, - "eventAutoComplete": true, - "eventSource": "options.animateLogo(svgmap, data);\r\nconsole.log(\"Starting render\");\r\nlet buff = data.series[0].fields[2].values.buffer;\r\nlet valueCount = buff.length;\r\nconsole.log(\"The buff is \", valueCount, \" long\");\r\n\r\nsvgmap.wave_life_.text(buff[0]);\r\nsvgmap.active_cu_.text(buff[1]);\r\nsvgmap.salu_.text(buff[2]);\r\nsvgmap.smem_.text(buff[3]);\r\nsvgmap.valu_.text(buff[4]);\r\nsvgmap.mfma_.text(buff[5]);\r\nsvgmap.vmem_.text(buff[6]);\r\nsvgmap.lds_.text(buff[7]);\r\nsvgmap.gws_.text(buff[8]);\r\nsvgmap.br_.text(buff[9]);\r\nsvgmap.vgpr_.text(buff[10]);\r\nsvgmap.sgpr_.text(buff[11]);\r\nsvgmap.lds_alloc_.text(buff[12]);\r\nsvgmap.scratch_alloc_.text(buff[13]);\r\nsvgmap.wavefronts_.text(buff[14]);\r\nsvgmap.workgroups_.text(buff[15]);\r\nsvgmap.lds_req_.text(buff[16]);\r\nsvgmap.il1_fetch_.text(buff[17]);\r\nsvgmap.il1_hit_.text(buff[18]);\r\nsvgmap.il1_l2_rd_.text(buff[19]);\r\nsvgmap.sl1_rd_.text(buff[20]);\r\nsvgmap.sl1_hit_.text(buff[21]);\r\nsvgmap.sl1_l2_rd_.text(buff[22]);\r\nsvgmap.sl1_l2_wr_.text(buff[23]);\r\nsvgmap.sl1_l2_atom_.text(buff[24]);\r\nsvgmap.vl1_rd_.text(buff[25]);\r\nsvgmap.vl1_wr_.text(buff[26]);\r\nsvgmap.vl1_atom_.text(buff[27]);\r\nsvgmap.vl1_hit_.text(buff[28]);\r\nsvgmap.vl1_lat_.text(buff[29]);\r\nsvgmap.vl1_l2_rd_.text(buff[30]);\r\nsvgmap.vl1_l2_wr_.text(buff[31]);\r\nsvgmap.vl1_l2_atom_.text(buff[32]);\r\nsvgmap.l2_rd_.text(buff[33]);\r\nsvgmap.l2_wr_.text(buff[34])\r\nsvgmap.l2_atom_.text(buff[35]);\r\nsvgmap.l2_hit_.text(buff[36]);\r\nsvgmap.l2_rd_lat_.text(buff[37]);\r\nsvgmap.l2_wr_lat_.text(buff[38]);\r\nsvgmap.fabric_rd_lat_.text(buff[39]);\r\nsvgmap.fabric_wr_lat_.text(buff[40]);\r\nsvgmap.fabric_atom_lat_.text(buff[41]);\r\nsvgmap.l2_fabric_rd_.text(buff[42]);\r\nsvgmap.l2_fabric_wr_.text(buff[43]);\r\nsvgmap.l2_fabric_atom_.text(buff[44]);\r\nsvgmap.hbm_rd_.text(buff[45]);\r\nsvgmap.hbm_wr_.text(buff[46]);\r\nsvgmap.lds_util_.text(buff[47]);\r\nsvgmap.vl1_coales_.text(buff[48]);\r\nsvgmap.vl1_stall_.text(buff[49]);\r\nsvgmap.wave_occ_.text(buff[50]);\r\nsvgmap.lds_lat_.text(buff[51]);\r\nsvgmap.il1_lat_.text(buff[52]);\r\nsvgmap.sl1_lat_.text(buff[53]);\r\nsvgmap.gds_req_.text(buff[54]);", - "initAutoComplete": true, - "initSource": "options.animateLogo = (svgmap, data) => {\r\n \r\n}\r\n ", - "svgMappings": [ - { - "mappedName": "wave_life_", - "svgId": "wave_life" - }, - { - "mappedName": "wave_occ_", - "svgId": "wave_occ" - }, - { - "mappedName": "salu_", - "svgId": "salu" - }, - { - "mappedName": "smem_", - "svgId": "smem" - }, - { - "mappedName": "valu_", - "svgId": "valu" - }, - { - "mappedName": "mfma_", - "svgId": "mfma" - }, - { - "mappedName": "vmem_", - "svgId": "vmem" - }, - { - "mappedName": "lds_", - "svgId": "lds" - }, - { - "mappedName": "gws_", - "svgId": "gws" - }, - { - "mappedName": "br_", - "svgId": "br" - }, - { - "mappedName": "active_cu_", - "svgId": "active_cu" - }, - { - "mappedName": "vgpr_", - "svgId": "vgpr" - }, - { - "mappedName": "sgpr_", - "svgId": "sgpr" - }, - { - "mappedName": "lds_alloc_", - "svgId": "lds_alloc" - }, - { - "mappedName": "scratch_alloc_", - "svgId": "scratch_alloc" - }, - { - "mappedName": "wavefronts_", - "svgId": "wavefronts" - }, - { - "mappedName": "workgroups_", - "svgId": "workgroups" - }, - { - "mappedName": "lds_req_", - "svgId": "lds_req" - }, - { - "mappedName": "vl1_wr_", - "svgId": "vl1_wr" - }, - { - "mappedName": "vl1_atom_", - "svgId": "vl1_atom" - }, - { - "mappedName": "sl1_rd_", - "svgId": "sl1_rd" - }, - { - "mappedName": "il1_fetch_", - "svgId": "il1_fetch" - }, - { - "mappedName": "lds_lat_", - "svgId": "lds_lat" - }, - { - "mappedName": "lds_bw_", - "svgId": "lds_bw" - }, - { - "mappedName": "lds_util_", - "svgId": "lds_util" - }, - { - "mappedName": "vl1_hit_", - "svgId": "vl1_hit" - }, - { - "mappedName": "vl1_lat_", - "svgId": "vl1_lat" - }, - { - "mappedName": "vl1_coales_", - "svgId": "vl1_coales" - }, - { - "mappedName": "vl1_stall_", - "svgId": "vl1_stall" - }, - { - "mappedName": "sl1_hit_", - "svgId": "sl1_hit" - }, - { - "mappedName": "sl1_lat_", - "svgId": "sl1_lat" - }, - { - "mappedName": "il1_hit_", - "svgId": "il1_hit" - }, - { - "mappedName": "il1_lat_", - "svgId": "il1_lat" - }, - { - "mappedName": "sl1_l2_rd_", - "svgId": "sl1_l2_rd" - }, - { - "mappedName": "sl1_l2_wr_", - "svgId": "sl1_l2_wr" - }, - { - "mappedName": "sl1_l2_atom_", - "svgId": "sl1_l2_atom" - }, - { - "mappedName": "il1_l2_rd_", - "svgId": "il1_l2_rd" - }, - { - "mappedName": "sl1_l2_rd_", - "svgId": "sl1_l2_rd" - }, - { - "mappedName": "sl1_l2_wr_", - "svgId": "sl1_l2_wr" - }, - { - "mappedName": "sl1_l2_atom_", - "svgId": "sl1_l2_atom" - }, - { - "mappedName": "l2_rd_", - "svgId": "l2_rd" - }, - { - "mappedName": "l2_wr_", - "svgId": "l2_wr" - }, - { - "mappedName": "l2_atom_", - "svgId": "l2_atom" - }, - { - "mappedName": "l2_hit_", - "svgId": "l2_hit" - }, - { - "mappedName": "l2_rd_lat_", - "svgId": "l2_rd_lat" - }, - { - "mappedName": "l2_wr_lat_", - "svgId": "l2_wr_lat" - }, - { - "mappedName": "l2_fabric_rd_", - "svgId": "l2_fabric_rd" - }, - { - "mappedName": "l2_fabric_wr_", - "svgId": "l2_fabric_wr" - }, - { - "mappedName": "l2_fabric_atom_", - "svgId": "l2_fabric_atom" - }, - { - "mappedName": "fabric_rd_lat_", - "svgId": "fabric_rd_lat" - }, - { - "mappedName": "fabric_wr_lat_", - "svgId": "fabric_wr_lat" - }, - { - "mappedName": "fabric_atom_lat_", - "svgId": "fabric_atom_lat" - }, - { - "mappedName": "fabric_hbm_rd_", - "svgId": "fabric_hbm_rd" - }, - { - "mappedName": "fabric_hbm_wr_", - "svgId": "fabric_hbm_wr" - }, - { - "mappedName": "vl1_rd_", - "svgId": "vl1_rd" - }, - { - "mappedName": "vl1_l2_rd_", - "svgId": "vl1_l2_rd" - }, - { - "mappedName": "vl1_l2_wr_", - "svgId": "vl1_l2_wr" - }, - { - "mappedName": "vl1_l2_atom_", - "svgId": "vl1_l2_atom" - }, - { - "mappedName": "hbm_rd_", - "svgId": "hbm_rd" - }, - { - "mappedName": "hbm_wr_", - "svgId": "hbm_wr" - } - ], - "svgSource": "\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Wave Occupancy\r\n \r\n Wave Life\r\n \r\n \r\n \r\n xGMI /\r\n PCIe\r\n \r\n GMI\r\n \r\n HBM\r\n \r\n Fabric\r\n \r\n \r\n SALU:\r\n 00000\r\n \r\n \r\n SMEM:\r\n 00000\r\n \r\n \r\n VALU:\r\n 00000\r\n \r\n \r\n MFMA:\r\n 00000\r\n \r\n \r\n VMEM:\r\n 00000\r\n \r\n \r\n LDS:\r\n 00000\r\n \r\n \r\n GWS:\r\n 00000\r\n \r\n \r\n Br:\r\n 00000\r\n \r\n \r\n cycles\r\n Rd:\r\n 00000\r\n \r\n \r\n cycles\r\n Wr:\r\n 00000\r\n \r\n \r\n cycles\r\n Atomic:\r\n 00000\r\n \r\n \r\n Rd:\r\n 00000\r\n \r\n \r\n Wr:\r\n \r\n \r\n 00000\r\n \r\n \r\n Atomic:\r\n 00000\r\n \r\n \r\n cycles\r\n Lat:\r\n 00000\r\n \r\n \r\n %\r\n Hit:\r\n 00000\r\n \r\n \r\n cycles\r\n Lat:\r\n 00000\r\n \r\n \r\n %\r\n Hit:\r\n 00000\r\n \r\n \r\n cycles\r\n Lat:\r\n 00000\r\n 00000\r\n Rd:\r\n 00000\r\n Wr:\r\n 00000\r\n Req:\r\n 00000\r\n 00000\r\n 00000\r\n Rd:\r\n Wr:\r\n Atomic:\r\n per-GCD\r\n cycles\r\n \r\n \r\n %\r\n Hit:\r\n 00000\r\n \r\n \r\n cycles\r\n Rd:\r\n 00000\r\n \r\n \r\n cycles\r\n Wr:\r\n 00000\r\n Wave 0 Instr buff\r\n Wave N-1 Instr buff\r\n Active CUs\r\n \r\n \r\n %\r\n Hit:\r\n 00000\r\n \r\n \r\n cycles\r\n Lat:\r\n 00000\r\n \r\n \r\n %\r\n Util:\r\n 00000\r\n \r\n \r\n %\r\n Coales:\r\n 00000\r\n Exec\r\n Instr Buff\r\n Instr Dispatch\r\n LDS\r\n Vector L1 Cache\r\n Scalar L1D Cache\r\n Instr L1 Cache\r\n L2 Cache\r\n 00000\r\n Req:\r\n \r\n \r\n %\r\n Stall:\r\n 00000\r\n 00000\r\n Fetch:\r\n 0000000\r\n 00000\r\n 000/000\r\n \r\n Latency\r\n \r\n LDS Alloc:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 00000\r\n \r\n Scratch Alloc:\r\n \r\n 00000\r\n \r\n Wavefronts:\r\n \r\n 00000\r\n \r\n Workgroups:\r\n \r\n 00000\r\n \r\n VGPRs:\r\n \r\n 00000\r\n \r\n SGPRs:\r\n \r\n 00000\r\n \r\n \r\n 00000\r\n Rd:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 00000\r\n 00000\r\n 00000\r\n Rd:\r\n Wr:\r\n Atomic:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 00000\r\n 00000\r\n 00000\r\n Rd:\r\n Wr:\r\n Atomic:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 00000\r\n 00000\r\n 00000\r\n Rd:\r\n Wr:\r\n Atomic:\r\n \r\n \r\n \r\n Latency\r\n \r\n \r\n \r\n \r\n Text is not SVG - cannot display\r\n \r\n \r\n" - }, - "pluginVersion": "8.4.0", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "rawQuery": true, - "refId": "pmc_perf", - "target": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"wave_life\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [\"&SQ_WAVES\", 0] },\n { \"$multiply\": [4, { \"$divide\": [\"&SQ_WAVE_CYCLES\", \"&SQ_WAVES\"] }] },\n null\n ]\n }\n },\n \"salu\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SALU\", \"&denom\" ] }\n },\n \"smem\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SMEM\", \"&denom\" ] }\n },\n \"valu\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_VALU\", \"&denom\"] }\n },\n \"mfma\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_MFMA\", \"&denom\"] }\n },\n \"vmem\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_VMEM\", \"&denom\"] }\n },\n \"lds_instr\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_LDS\", \"&denom\"] }\n },\n \"gws\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_GDS\", \"&denom\"] }\n },\n \"br\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_BRANCH\", \"&denom\"] }\n },\n \"vgpr\": {\n \"$avg\": \"&vgpr\"\n },\n \"sgpr\": {\n \"$avg\": \"&sgpr\"\n },\n \"lds_alloc\": {\n \"$avg\": \"&lds\"\n },\n \"scratch_alloc\": {\n \"$avg\": \"&scr\"\n },\n \"wavefronts\": {\n \"$avg\": \"&SPI_CSN_WAVE\"\n },\n \"workgroups\": {\n \"$avg\": \"&SPI_CSN_NUM_THREADGROUPS\"\n },\n \"lds_req\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_LDS\", \"&denom\"] }\n }, \n \"lds_util\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [ 100, \"&SQ_LDS_IDX_ACTIVE\" ]}, \n {\"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}\n ]}\n },\n \"vl1_rd\": {\n \"$avg\": { \"$divide\": [\"&TCP_TOTAL_READ_sum\", \"&denom\"] }\n },\n \"vl1_wr\": {\n \"$avg\": { \"$divide\": [\"&TCP_TOTAL_WRITE_sum\", \"&denom\"] }\n },\n \"vl1_atom\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"] }\n },\n \"il1_fetch\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n \"il1_hit\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_REQ\"] }\n },\n \"il1_l2_req\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_INST_REQ\", \"&denom\"] }\n },\n \"sl1_rd\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n \"sl1_hit\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQC_DCACHE_REQ\", 0]},\n { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_REQ\"] },\n \"\"\n ]\n }\n},\n \"sl1_l2_rd\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n \"sl1_l2_wr\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n \"sl1_l2_atom\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n \"vl1_hit\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0] },\n { \"$subtract\": [100, { \"$divide\": [{ \"$multiply\": [100, { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }] }, \"&TCP_TOTAL_CACHE_ACCESSES_sum\"] }] },\n null\n ]\n }\n },\n \"vl1_lat\": {\n \"$avg\": { \n \"$cond\": [\n { \"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0] },\n { \"$divide\": [\"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\"] },\n null\n ]\n }\n },\n \"vl1_coales\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_TOTAL_ACCESSES_sum\", 0] },\n { \"$divide\": [{\"$multiply\": [\"&TA_TOTAL_WAVEFRONTS_sum\", 64, 100]}, {\"$multiply\": [\"&TCP_TOTAL_ACCESSES_sum\", 4]}] },\n 0\n ]\n }\n },\n \"vl1_stall\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n \"\"\n ]\n }},\n \"vl1_l2_rd\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_READ_REQ_sum\", \"&denom\"] }\n },\n \"vl1_l2_wr\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"vl1_l2_atom\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }\n },\n \"l2_rd\": {\n \"$avg\": { \"$divide\": [\"&TCC_READ_sum\", \"&denom\"] }\n },\n \"l2_wr\": {\n \"$avg\": { \"$divide\": [\"&TCC_WRITE_sum\", \"&denom\"] }\n },\n \"l2_atom\": {\n \"$avg\": { \"$divide\": [\"&TCC_ATOMIC_sum\", \"&denom\"] }\n },\n \"l2_hit\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [{ \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }, 0] },\n { \"$divide\": [{ \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }] },\n null\n ]\n }\n },\n \"l2_rd_lat\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [{ \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }, 0] },\n { \"$divide\": [\"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }] },\n null\n ]\n }\n },\n \"l2_wr_lat\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [{ \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 0] },\n { \"$divide\": [\"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }] },\n null\n ]\n }\n },\n \"fabric_rd_lat\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [\"&TCC_EA_RDREQ_sum\", 0] },\n { \"$divide\": [\"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\"] },\n null\n ]\n }\n },\n \"fabric_wr_lat\": { \n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [\"&TCC_EA_WRREQ_sum\", 0] },\n { \"$divide\": [\"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\"] },\n null\n ]\n }\n },\n \"fabric_atom_lat\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0] },\n { \"$divide\": [\"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\"] },\n null\n ]\n }\n },\n \"l2_fabric_rd\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_RDREQ_sum\", \"&denom\"] }\n },\n \"l2_fabric_wr\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_WRREQ_sum\", \"&denom\"] }\n },\n \"l2_fabric_atom\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_ATOMIC_sum\", \"&denom\"] }\n },\n \"hbm_rd\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\"] }\n },\n \"hbm_wr\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\"] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave Life\",\n \"Alias\": \"wave_life_\",\n \"Value\": { \"$round\": [\"&wave_life\", 0] }\n },\n {\n \"Metric\": \"Active CUs\",\n \"Alias\": \"active_cu_\",\n \"Value\": {\"$concat\": [\"$numActiveCUs\", \"/\", \"$numCU\"]}\n },\n {\n \"Metric\": \"SALU\",\n \"Alias\": \"salu_\",\n \"Value\": { \"$round\": [\"&salu\", 0] }\n },\n {\n \"Metric\": \"SMEM\",\n \"Alias\": \"smem_\",\n \"Value\": { \"$round\": [\"&smem\", 0] }\n },\n {\n \"Metric\": \"VALU\",\n \"Alias\": \"valu_\",\n \"Value\": { \"$round\": [\"&valu\", 0] }\n },\n {\n \"Metric\": \"MFMA\",\n \"Alias\": \"mfma_\",\n \"Value\": { \"$round\": [\"&mfma\", 0] }\n },\n {\n \"Metric\": \"VMEM\",\n \"Alias\": \"vmem_\",\n \"Value\": { \"$round\": [\"&vmem\", 0] }\n },\n {\n \"Metric\": \"LDS\",\n \"Alias\": \"lds_\",\n \"Value\": { \"$round\": [\"&lds_instr\", 0] }\n },\n {\n \"Metric\": \"GWS\",\n \"Alias\": \"gws_\",\n \"Value\": { \"$round\": [\"&gws\", 0] }\n },\n {\n \"Metric\": \"BR\",\n \"Alias\": \"br_\",\n \"Value\": { \"$round\": [\"&br\", 0] }\n },\n {\n \"Metric\": \"VGPR\",\n \"Alias\": \"vgpr_\",\n \"Value\": { \"$round\": [\"&vgpr\", 0] }\n },\n {\n \"Metric\": \"SGPR\",\n \"Alias\": \"sgpr_\",\n \"Value\": { \"$round\": [\"&sgpr\", 0] }\n },\n {\n \"Metric\": \"LDS Allocation\",\n \"Alias\": \"lds_alloc_\",\n \"Value\": { \"$round\": [\"&lds_alloc\", 0] }\n },\n {\n \"Metric\": \"Scratch Allocation\",\n \"Alias\": \"scratch_alloc_\",\n \"Value\": { \"$round\": [\"&scratch_alloc\", 0] }\n },\n {\n \"Metric\": \"Wavefronts\",\n \"Alias\": \"wavefronts_\",\n \"Value\": { \"$round\": [\"&wavefronts\", 0] }\n },\n {\n \"Metric\": \"Workgroups\",\n \"Alias\": \"workgroups_\",\n \"Value\": { \"$round\": [\"&workgroups\", 0] }\n },\n {\n \"Metric\": \"LDS Req\",\n \"Alias\": \"lds_req_\",\n \"Value\": { \"$round\": [\"&lds_req\", 0] }\n },\n {\n \"Metric\": \"IL1 Fetch\",\n \"Alias\": \"il1_fetch_\",\n \"Value\": { \"$round\": [\"&il1_fetch\", 0] }\n },\n {\n \"Metric\": \"IL1 Hit\",\n \"Alias\": \"il1_hit_\",\n \"Value\": { \"$round\": [{ \"$multiply\": [\"&il1_hit\", 100] }, 0] }\n },\n {\n \"Metric\": \"IL1_L2 Rd\",\n \"Alias\": \"il1_l2_req_\",\n \"Value\": { \"$round\": [\"&il1_l2_req\", 0] }\n },\n {\n \"Metric\": \"vL1D Rd\",\n \"Alias\": \"sl1_rd_\",\n \"Value\": { \"$round\": [\"&sl1_rd\", 0] }\n },\n {\n \"Metric\": \"vL1D Hit\",\n \"Alias\": \"sl1_hit_\",\n \"Value\": { \"$round\": [{ \"$multiply\": [\"&sl1_hit\", 100] }, 0] }\n },\n {\n \"Metric\": \"vL1D_L2 Rd\",\n \"Alias\": \"sl1_l2_rd_\",\n \"Value\": { \"$round\": [\"&sl1_l2_rd\", 0] }\n },\n {\n \"Metric\": \"vL1D_L2 Wr\",\n \"Alias\": \"sl1_l2_wr_\",\n \"Value\": { \"$round\": [\"&sl1_l2_wr\", 0] }\n },\n {\n \"Metric\": \"vL1D_L2 Atomic\",\n \"Alias\": \"sl1_l2_atom_\",\n \"Value\": { \"$round\": [\"&sl1_l2_atom\", 0] }\n },\n {\n \"Metric\": \"VL1 Rd\",\n \"Alias\": \"vl1_rd_\",\n \"Value\": { \"$round\": [\"&vl1_rd\", 0] }\n },\n {\n \"Metric\": \"VL1 Wr\",\n \"Alias\": \"vl1_wr_\",\n \"Value\": { \"$round\": [\"&vl1_wr\", 0] }\n },\n {\n \"Metric\": \"VL1 Atomic\",\n \"Alias\": \"vl1_atom_\",\n \"Value\": { \"$round\": [\"&vl1_atom\", 0] }\n },\n {\n \"Metric\": \"VL1 Hit\",\n \"Alias\": \"vl1_hit_\",\n \"Value\": { \"$round\": [\"&vl1_hit\", 0] }\n },\n {\n \"Metric\": \"VL1 Lat\",\n \"Alias\": \"vl1_lat_\",\n \"Value\": { \"$round\": [\"&vl1_lat\", 0] }\n },\n {\n \"Metric\": \"VL1_L2 Rd\",\n \"Alias\": \"vl1_l2_rd_\",\n \"Value\": { \"$round\": [\"&vl1_l2_rd\", 0] }\n },\n {\n \"Metric\": \"VL1_L2 Wr\",\n \"Alias\": \"vl1_l2_wr_\",\n \"Value\": { \"$round\": [\"&vl1_l2_wr\", 0] }\n },\n {\n \"Metric\": \"vL1_L2 Atomic\",\n \"Alias\": \"vl1_l2_atom_\",\n \"Value\": { \"$round\": [\"&vl1_l2_atom\", 0] }\n },\n {\n \"Metric\": \"L2 Rd\",\n \"Alias\": \"l2_rd_\",\n \"Value\": { \"$round\": [\"&l2_rd\", 0] }\n },\n {\n \"Metric\": \"L2 Wr\",\n \"Alias\": \"l2_wr_\",\n \"Value\": { \"$round\": [\"&l2_wr\", 0] }\n },\n {\n \"Metric\": \"L2 Atomic\",\n \"Alias\": \"l2_atom_\",\n \"Value\": { \"$round\": [\"&l2_atom\", 0] }\n },\n {\n \"Metric\": \"L2 Hit\",\n \"Alias\": \"l2_hit_\",\n \"Value\": { \"$round\": [\"&l2_hit\", 0] }\n },\n {\n \"Metric\": \"L2 Rd Lat\",\n \"Alias\": \"l2_rd_lat_\",\n \"Value\": { \"$round\": [\"&l2_rd_lat\", 0] }\n },\n {\n \"Metric\": \"L2 Wr Lat\",\n \"Alias\": \"l2_wr_lat_\",\n \"Value\": { \"$round\": [\"&l2_wr_lat\", 0] }\n },\n {\n \"Metric\": \"Fabric Rd Lat\",\n \"Alias\": \"fabric_rd_lat_\",\n \"Value\": { \"$round\": [\"&fabric_rd_lat\", 0] }\n },\n {\n \"Metric\": \"Fabric Wr Lat\",\n \"Alias\": \"fabric_wr_lat_\",\n \"Value\": { \"$round\": [\"&fabric_wr_lat\", 0] }\n },\n {\n \"Metric\": \"Fabric Atomic Lat\",\n \"Alias\": \"fabric_atom_lat_\",\n \"Value\": { \"$round\": [\"&fabric_atom_lat\", 0] }\n },\n {\n \"Metric\": \"Fabric_L2 Rd\",\n \"Alias\": \"l2_fabric_rd_\",\n \"Value\": { \"$round\": [\"&l2_fabric_rd\", 0] }\n },\n {\n \"Metric\": \"Fabric_L2 Wr\",\n \"Alias\": \"l2_fabric_wr_\",\n \"Value\": { \"$round\": [\"&l2_fabric_wr\", 0] }\n },\n {\n \"Metric\": \"Fabric_l2 Atomic\",\n \"Alias\": \"l2_fabric_atom_\",\n \"Value\": { \"$round\": [\"&l2_fabric_atom\", 0] }\n },\n {\n \"Metric\": \"HBM Rd\",\n \"Alias\": \"hbm_rd_\",\n \"Value\": { \"$round\": [\"&hbm_rd\", 0] }\n },\n {\n \"Metric\": \"HBM Wr\",\n \"Alias\": \"hbm_wr_\",\n \"Value\": { \"$round\": [\"&hbm_wr\", 0] }\n },\n {\n \"Metric\": \"LDS Util\",\n \"Alias\": \"lds_util_\",\n \"Value\": { \"$round\": [\"&lds_util\", 0] }\n },\n {\n \"Metric\": \"VL1 Coalesce\",\n \"Alias\": \"vl1_coales_\",\n \"Value\": { \"$round\": [\"&vl1_coales\", 0]}\n },\n {\n \"Metric\": \"VL1 Stall\",\n \"Alias\": \"vl1_stall_\",\n \"Value\": { \"$round\": [\"&vl1_stall\", 0]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"$array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"$array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_LEVEL_WAVES", - "target": "$Workload1.SQ_LEVEL_WAVES.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"wave_occ\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\",\"&GRBM_GUI_ACTIVE\"] }, $numActiveCUs]}\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave Occupancy\",\n \"Alias\": \"wave_occ_\",\n \"Value\":{ \"$round\": [\"&wave_occ\", 0] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_LDS", - "target": "$Workload1.SQ_INST_LEVEL_LDS.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"lds_lat\": {\n \"$avg\": { \n \"$cond\": [\n { \"$ne\": [\"&SQ_INSTS_LDS\", 0] },\n { \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\"] },\n null\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"LDS Lat\",\n \"Alias\": \"lds_lat_\",\n \"Value\":{ \"$round\": [\"&lds_lat\", 0] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQC_ICACHE_INFLIGHT", - "target": "$Workload1.pmc_perf.aggregate([\n\t{\"$match\": {\n\t\t\"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \t\t\"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \t\t\"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n \t}},\n\t{\"$lookup\": {\n\t\t\"from\": \"SQ_IFETCH_LEVEL\",\n\t\t\"localField\": \"Index\",\n\t\t\"foreignField\": \"Index\",\n\t\t\"as\": \"SQ_IFETCH_LEVEL\",\n\t\t\"pipeline\": [\n\t\t\t{\"$match\": {\n\t\t\t\t\"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \t\t\t\t\"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \t\t\t\t\"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n \t\t\t}},\n\t\t\t{\"$project\":{\n\t\t\t\t\"_id\": 0,\n\t\t\t\t\"SQ_ACCUM_PREV_HIRES\": 1\n\t\t\t}}\n\t\t]\n\t}},\n\t{\"$unwind\":{\n\t\t\"path\": \"&SQ_IFETCH_LEVEL\"\n\t}},\n\t{\"$group\":{\n\t\t\"_id\": null,\n\t\t\"il1_lat\": {\n\t\t\t\"$avg\":{\n\t\t\t\t\"$cond\":[\n\t\t\t\t\t\t{\"$ne\":[\"&SQC_ICACHE_REQ\",0]},\n\t\t\t\t\t\t{\"$divide\":[\"&SQ_IFETCH_LEVEL.SQ_ACCUM_PREV_HIRES\",\"&SQC_ICACHE_REQ\"]},\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t}\n\t\t} \n\t}},\n\t{\"$set\": {\n \t\t\"array\": [\n \t\t{\n \t\t\t\"Metric\": \"IL1 Lat\",\n \t\t\t\"Alias\": \"il1_lat_\",\n \t\t\t\"Value\": { \"$round\": [\"&il1_lat\", 0] }\n \t\t}\n \t\t]\n\t}},\n \t{\"$unwind\": {\n \t\t\"path\": \"&array\"\n \t}},\n \t{\"$replaceRoot\": {\n \t\t\"newRoot\": \"&array\"\n \t}}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQC_DCACHE_INFLIGHT_LEVEL", - "target": "$Workload1.pmc_perf.aggregate([\n\t{\"$match\": {\n\t\t\"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \t\t\"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \t\t\"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n \t}},\n\t{\"$lookup\": {\n\t\t\"from\": \"SQ_IFETCH_LEVEL\",\n\t\t\"localField\": \"Index\",\n\t\t\"foreignField\": \"Index\",\n\t\t\"as\": \"SQ_IFETCH_LEVEL\",\n\t\t\"pipeline\": [\n\t\t\t{\"$match\": {\n\t\t\t\t\"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \t\t\t\t\"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \t\t\t\t\"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n \t\t\t}},\n\t\t\t{\"$project\":{\n\t\t\t\t\"_id\": 0,\n\t\t\t\t\"SQ_ACCUM_PREV_HIRES\": 1\n\t\t\t}}\n\t\t]\n\t}},\n\t{\"$unwind\":{\n\t\t\"path\": \"&SQ_IFETCH_LEVEL\"\n\t}},\n\t{\"$group\":{\n\t\t\"_id\": null,\n\t\t\"sl1_lat\": {\n\t\t\t\"$avg\":{\n\t\t\t\t\"$cond\":[\n\t\t\t\t\t\t{\"$ne\":[\"&SQC_DCACHE_REQ\",0]},\n\t\t\t\t\t\t{\"$divide\":[\"&SQ_IFETCH_LEVEL.SQ_ACCUM_PREV_HIRES\",\"&SQC_DCACHE_REQ\"]},\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t}\n\t\t} \n\t}},\n\t{\"$set\": {\n \t\t\"array\": [\n \t\t{\n \t\t\t\"Metric\": \"vL1D Lat\",\n \t\t\t\"Alias\": \"sl1_lat_\",\n \t\t\t\"Value\": { \"$round\": [\"&sl1_lat\", 0] }\n \t\t}\n \t\t]\n\t}},\n \t{\"$unwind\": {\n \t\t\"path\": \"&array\"\n \t}},\n \t{\"$replaceRoot\": {\n \t\t\"newRoot\": \"&array\"\n \t}}\n]);", - "type": "table" - } - ], - "title": "Memory Chart (Normalization: $normUnit\")", - "transformations": [ - { - "id": "convertFieldType", - "options": { - "conversions": [ - { - "destinationType": "string", - "targetField": "Value" - } - ], - "fields": {} - } - }, - { - "id": "merge", - "options": {} - } - ], - "type": "amd-custom-svg" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Memory Chart Analysis", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 4 - }, - "id": 241, - "panels": [ - { - "gridPos": { - "h": 28, - "w": 24, - "x": 0, - "y": 5 - }, - "id": 253, - "pconfig": { - "fixScale": "", - "layout": { - "dragmode": "zoom", - "font": { - "family": "\"Open Sans\", Helvetica, Arial, sans-serif" - }, - "hovermode": "closest", - "legend": { - "orientation": "v" - }, - "showlegend": true, - "xaxis": { - "range": [ - -2, - 3.8 - ], - "rangemode": "between", - "showgrid": true, - "title": "Arithmetic Intensity (FLOP/Byte)", - "type": "log", - "zeroline": false - }, - "yaxis": { - "rangemode": "normal", - "showgrid": true, - "title": "Performance (GFLOP/sec)", - "type": "log", - "zeroline": false - }, - "zaxis": { - "rangemode": "normal", - "showgrid": true, - "type": "linear", - "zeroline": false - } - }, - "loadFromCDN": false, - "settings": { - "displayModeBar": false, - "type": "scatter" - }, - "showAnnotations": true, - "traces": [ - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "xrange", - "y": "roofline_hbm" - }, - "name": "HBM-VLAU", - "settings": { - "color_option": "ramp", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#33B5E5", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 15, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "circle" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "xrange", - "y": "roofline_L2" - }, - "name": "L2-VALU", - "settings": { - "color_option": "ramp", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#33B5E5", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 15, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "circle" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "xrange", - "y": "roofline_L1" - }, - "name": "vL1D-VALU", - "settings": { - "color_option": "ramp", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#33B5E5", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 15, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "circle" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "LDSBw_peak", - "x": "xrange", - "y": "roofline_LDS" - }, - "name": "LDS-VALU", - "settings": { - "color_option": "ramp", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#33B5E5", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 15, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "circle" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "cur_ai_hbm", - "y": "cur_perf" - }, - "name": "Cur - HBM", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#F2495C", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "square" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "cur_ai_L2", - "y": "cur_perf" - }, - "name": "Cur - L2", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#5794F2", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "diamond" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "cur_ai_L1", - "y": "cur_perf" - }, - "name": "Cur - vL1D", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "base_ai_hbm", - "y": "base_perf" - }, - "name": "Baseline - HBM", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#F2495C", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "square-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "base_ai_L2", - "y": "base_perf" - }, - "name": "Baseline - L2", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#5794F2", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "diamond-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "base_ai_L1", - "y": "base_perf" - }, - "name": "Baseline - vL1D", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "xrange", - "y": "roofline_hbm_MFMA" - }, - "name": "HBM-MFMA", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "xrange", - "y": "roofline_L2_MFMA" - }, - "name": "L2-MFMA", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "xrange", - "y": "roofline_L1_MFMA" - }, - "name": "vL1D-MFMA", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "LDSBw_peak", - "x": "xrange", - "y": "roofline_LDS_MFMA" - }, - "name": "LDS-MFMA", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - } - ] - }, - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "LJKvMZank" - }, - "rawQuery": true, - "refId": "HBM-VALU", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&FP32Flops\", \"&FP64Flops\"]\n },\n \"then\": \"&FP64Flops\",\n \"else\": \"&FP32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_hbm\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&HBMBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&HBMBw\"] },\n \"else\": \"$high_flop\"\n }\n },\n \"hbmBw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&HBMBw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "HBM-MFMA", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&MFMAF32Flops\", \"&MFMAF64Flops\"]\n },\n \"then\": \"&MFMAF64Flops\",\n \"else\": \"&MFMAF32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_hbm_MFMA\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&HBMBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&HBMBw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L2-VALU", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&FP32Flops\", \"&FP64Flops\"]\n },\n \"then\": \"&FP64Flops\",\n \"else\": \"&FP32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L2\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L2Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L2Bw\"] },\n \"else\": \"$high_flop\"\n }\n },\n\n \"L2Bw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&L2Bw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L1-VALU", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&FP32Flops\", \"&FP64Flops\"]\n },\n \"then\": \"&FP64Flops\",\n \"else\": \"&FP32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L1\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L1Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L1Bw\"] },\n \"else\": \"&high_flop\"\n }\n },\n\n \"L1Bw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&L1Bw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "LDS", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&FP32Flops\", \"&FP64Flops\"]\n },\n \"then\": \"&FP64Flops\",\n \"else\": \"&FP32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_LDS\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&LDSBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&LDSBw\"] },\n \"else\": \"$high_flop\"\n }\n },\n\n \"LDSBw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&LDSBw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "Cur Workload", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n { \"$group\": { \n \"_id\": \"&KernelName\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"lds_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]\n } \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n }\n\n\n }},\n {\"$sort\": { \"TotalDuration\": -1 }},\n { \"$limit\": 10 },\n {\"$project\": {\n \"_id\": 0,\n \"Kernel\": \"&KernelName\",\n \"cur_ai_L1\": {\n \"$cond\": [\n { \"$ne\": [\"&L1cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"] },\n 0\n ]\n },\n \"cur_ai_L2\": {\n \"$cond\": [\n { \"$ne\": [\"&L2cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"] },\n 0\n ]\n },\n \"cur_ai_hbm\": {\n \"$cond\": [\n { \"$ne\": [\"&hbm_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"] },\n 0\n ]\n },\n \"cur_perf\": { \n \"$cond\": [\n { \"$ne\": [\"&AvgDuration\", 0] },\n { \"$divide\": [\"&total_flops\", \"&AvgDuration\"] },\n 0\n ]\n }\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "Baseline Workload", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Roofline)\"}}\n }},\n { \"$group\": { \n \"_id\": \"&KernelName\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"lds_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]\n } \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n }\n\n\n }},\n {\"$sort\": { \"TotalDuration\": -1 }},\n { \"$limit\": 10 },\n {\"$project\": {\n \"_id\": 0,\n \"Kernel\": \"&KernelName\",\n \"base_ai_L1\": {\n \"$cond\": [\n { \"$ne\": [\"&L1cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"] },\n 0\n ]\n },\n \"base_ai_L2\": {\n \"$cond\": [\n { \"$ne\": [\"&L2cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"] },\n 0\n ]\n },\n \"base_ai_hbm\": {\n \"$cond\": [\n { \"$ne\": [\"&hbm_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"] },\n 0\n ]\n },\n \"base_perf\": { \n \"$cond\": [\n { \"$ne\": [\"&AvgDuration\", 0] },\n { \"$divide\": [\"&total_flops\", \"&AvgDuration\"] },\n 0\n ]\n }\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L2-MFMA", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&MFMAF32Flops\", \"&MFMAF64Flops\"]\n },\n \"then\": \"&MFMAF64Flops\",\n \"else\": \"&MFMAF32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L2_MFMA\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L2Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L2Bw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L1-MFMA", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&MFMAF32Flops\", \"&MFMAF64Flops\"]\n },\n \"then\": \"&MFMAF64Flops\",\n \"else\": \"&MFMAF32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L1_MFMA\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L1Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L1Bw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "jYrBWHfnz" - }, - "hide": false, - "rawQuery": true, - "refId": "LDS-MFMA", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&MFMAF32Flops\", \"&MFMAF64Flops\"]\n },\n \"then\": \"&MFMAF64Flops\",\n \"else\": \"&MFMAF32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_LDS_MFMA\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&LDSBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&LDSBw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - } - ], - "title": "Empirical Roofline FP32/FP64 (MI200)", - "type": "natel-plotly-panel", - "version": 1 - }, - { - "gridPos": { - "h": 28, - "w": 24, - "x": 0, - "y": 33 - }, - "id": 312, - "pconfig": { - "fixScale": "", - "layout": { - "dragmode": "zoom", - "font": { - "family": "\"Open Sans\", Helvetica, Arial, sans-serif" - }, - "hovermode": "closest", - "legend": { - "orientation": "v" - }, - "showlegend": true, - "xaxis": { - "range": [ - -2, - 3.8 - ], - "rangemode": "between", - "showgrid": true, - "title": "Arithmetic Intensity (FLOP/Byte)", - "type": "log", - "zeroline": false - }, - "yaxis": { - "rangemode": "normal", - "showgrid": true, - "title": "Performance (GFLOP/sec)", - "type": "log", - "zeroline": false - }, - "zaxis": { - "rangemode": "normal", - "showgrid": true, - "type": "linear", - "zeroline": false - } - }, - "loadFromCDN": false, - "settings": { - "displayModeBar": false, - "type": "scatter" - }, - "showAnnotations": true, - "traces": [ - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "cur_ai_hbm", - "y": "cur_perf" - }, - "name": "Cur - HBM", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#F2495C", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "square" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "cur_ai_L2", - "y": "cur_perf" - }, - "name": "Cur - L2", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#5794F2", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "diamond" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "cur_ai_L1", - "y": "cur_perf" - }, - "name": "Cur - vL1D", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "base_ai_hbm", - "y": "base_perf" - }, - "name": "Baseline - HBM", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#F2495C", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "square-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "base_ai_L2", - "y": "base_perf" - }, - "name": "Baseline - L2", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#5794F2", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "diamond-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "base_ai_L1", - "y": "base_perf" - }, - "name": "Baseline - vL1D", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "xrange", - "y": "roofline_hbm_MFMA_fp16" - }, - "name": "HBM-MFMA-FP16", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "xrange", - "y": "roofline_L2_MFMA_fp16" - }, - "name": "L2-MFMA-FP16", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "xrange", - "y": "roofline_L1_MFMA_fp16" - }, - "name": "vL1D-MFMA-FP16", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "LDSBw_peak", - "x": "xrange", - "y": "roofline_LDS_MFMA_fp16" - }, - "name": "LDS-MFMA-FP16", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "xrange", - "y": "roofline_hbm_MFMA_i8" - }, - "name": "HBM-MFMA-I8", - "settings": { - "color_option": "solid", - "line": { - "color": "#FA6400", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "xrange", - "y": "roofline_L2_MFMA_i8" - }, - "name": "L2-MFMA-I8", - "settings": { - "color_option": "solid", - "line": { - "color": "#FA6400", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "xrange", - "y": "roofline_L1_MFMA_i8" - }, - "name": "vL1D-MFMA-I8", - "settings": { - "color_option": "solid", - "line": { - "color": "#FA6400", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "LDSBw_peak", - "x": "xrange", - "y": "roofline_LDS_MFMA_i8" - }, - "name": "LDS-MFMA-I8", - "settings": { - "color_option": "solid", - "line": { - "color": "#FA6400", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - } - ] - }, - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "HBM-MFMA-FP16", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAF16Flops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_hbm_MFMA_fp16\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&HBMBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&HBMBw\"] },\n \"else\": \"$high_flop\"\n }\n },\n \"hbmBw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&HBMBw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "HBM-MFMA-I8", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAI8Ops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_hbm_MFMA_i8\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&HBMBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&HBMBw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "Cur Workload", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n { \"$group\": { \n \"_id\": \"&KernelName\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"lds_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]\n } \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n }\n\n\n }},\n {\"$sort\": { \"TotalDuration\": -1 }},\n { \"$limit\": 10 },\n {\"$project\": {\n \"_id\": 0,\n \"Kernel\": \"&KernelName\",\n \"cur_ai_L1\": {\n \"$cond\": [\n { \"$ne\": [\"&L1cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"] },\n 0\n ]\n },\n \"cur_ai_L2\": {\n \"$cond\": [\n { \"$ne\": [\"&L2cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"] },\n 0\n ]\n },\n \"cur_ai_hbm\": {\n \"$cond\": [\n { \"$ne\": [\"&hbm_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"] },\n 0\n ]\n },\n \"cur_perf\": { \n \"$cond\": [\n { \"$ne\": [\"&AvgDuration\", 0] },\n { \"$divide\": [\"&total_flops\", \"&AvgDuration\"] },\n 0\n ]\n }\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "Baseline Workload", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Roofline)\"}}\n }},\n { \"$group\": { \n \"_id\": \"&KernelName\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"lds_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]\n } \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n }\n\n\n }},\n {\"$sort\": { \"TotalDuration\": -1 }},\n { \"$limit\": 10 },\n {\"$project\": {\n \"_id\": 0,\n \"Kernel\": \"&KernelName\",\n \"base_ai_L1\": {\n \"$cond\": [\n { \"$ne\": [\"&L1cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"] },\n 0\n ]\n },\n \"base_ai_L2\": {\n \"$cond\": [\n { \"$ne\": [\"&L2cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"] },\n 0\n ]\n },\n \"base_ai_hbm\": {\n \"$cond\": [\n { \"$ne\": [\"&hbm_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"] },\n 0\n ]\n },\n \"base_perf\": { \n \"$cond\": [\n { \"$ne\": [\"&AvgDuration\", 0] },\n { \"$divide\": [\"&total_flops\", \"&AvgDuration\"] },\n 0\n ]\n }\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L2-MFMA-FP16", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAF16Flops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L2_MFMA_fp16\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L2Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L2Bw\"] },\n \"else\": \"$high_flop\"\n }\n },\n \"L2Bw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&L2Bw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L2-MFMA-I8", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAI8Ops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L2_MFMA_i8\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L2Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L2Bw\"] },\n \"else\": \"$high_flop\"\n }\n }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L1-MFMA-FP16", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAF16Flops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L1_MFMA_fp16\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L1Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L1Bw\"] },\n \"else\": \"$high_flop\"\n }\n },\n \"L1Bw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&L1Bw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L1-MFMA-I8", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAI8Ops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L1_MFMA_i8\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L1Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L1Bw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "jYrBWHfnz" - }, - "hide": false, - "rawQuery": true, - "refId": "LDS-MFMA-FP16", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAF16Flops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_LDS_MFMA_fp16\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&LDSBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&LDSBw\"] },\n \"else\": \"$high_flop\"\n }\n },\n \"LDSBw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&LDSBw\", 1] },0, 32]}, \" GB/s\"] }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "jYrBWHfnz" - }, - "hide": false, - "rawQuery": true, - "refId": "LDS-MFMA-I8", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAI8Ops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_LDS_MFMA_i8\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&LDSBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&LDSBw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - } - ], - "title": "Empirical Roofline FP16/INT8 (MI200)", - "type": "natel-plotly-panel", - "version": 1 - } - ], - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Roofline Analysis", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 5 - }, - "id": 2, - "panels": [ - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 115 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 118 - } - ] - } - ] - }, - "gridPos": { - "h": 13, - "w": 13, - "x": 0, - "y": 6 - }, - "id": 6, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1 \n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"gpuBusy_avg\": {\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\": {\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\": {\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n\n \"cpfBusy_avg\": {\"$avg\": \"&CPF_CPF_STAT_BUSY\"},\n \"cpfBusy_min\": {\"$min\": \"&CPF_CPF_STAT_BUSY\"},\n \"cpfBusy_max\": {\"$max\": \"&CPF_CPF_STAT_BUSY\"},\n\n \"cpfUtil_avg\": {\"$avg\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n \"cpfUtil_min\": {\"$min\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n \"cpfUtil_max\": {\"$max\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n\n \"cpfStall_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n \"cpfStall_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n \"cpfStall_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n\n \"l2CacheBusy_avg\": {\"$avg\": \"&CPF_CPF_TCIU_BUSY\"},\n \"l2CacheBusy_min\": {\"$min\": \"&CPF_CPF_TCIU_BUSY\"},\n \"l2CacheBusy_max\": {\"$max\": \"&CPF_CPF_TCIU_BUSY\"},\n\n \"l2CacheUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheStall_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n \"l2CacheStall_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n \"l2CacheStall_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n\n \"utcL1Stall_avg\": {\"$avg\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_min\": {\"$min\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_max\": {\"$max\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"}\n\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy Cycles\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"CPF Busy\",\n \"Avg\": \"&cpfBusy_avg\",\n \"Min\": \"&cpfBusy_min\",\n \"Max\": \"&cpfBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"CPF Util\",\n \"Avg\": \"&cpfUtil_avg\",\n \"Min\": \"&cpfUtil_min\",\n \"Max\": \"&cpfUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPF Stall\",\n \"Avg\": \"&cpfStall_avg\",\n \"Min\": \"&cpfStall_min\",\n \"Max\": \"&cpfStall_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"L2Cache Intf Busy\",\n \"Avg\": \"&l2CacheBusy_avg\",\n \"Min\": \"&l2CacheBusy_min\",\n \"Max\": \"&l2CacheBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"L2Cache Intf Util\",\n \"Avg\": \"&l2CacheUtil_avg\",\n \"Min\": \"&l2CacheUtil_min\",\n \"Max\": \"&l2CacheUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"L2Cache Intf Stall\",\n \"Avg\": \"&l2CacheStall_avg\",\n \"Min\": \"&l2CacheStall_min\",\n \"Max\": \"&l2CacheStall_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"UTCL1 Stall\",\n \"Avg\": \"&utcL1Stall_avg\",\n \"Min\": \"&utcL1Stall_min\",\n \"Max\": \"&utcL1Stall_max\", \n \"Unit\": \"Cycles/Kernel\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Command Processor)\"}}\n }},\n\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1 \n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"gpuBusy_avg\": {\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\": {\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\": {\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n \"cpfBusy_avg\": {\"$avg\": \"&CPF_CPF_STAT_BUSY\"},\n \"cpfBusy_min\": {\"$min\": \"&CPF_CPF_STAT_BUSY\"},\n \"cpfBusy_max\": {\"$max\": \"&CPF_CPF_STAT_BUSY\"},\n\n \"cpfUtil_avg\": {\"$avg\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n \"cpfUtil_min\": {\"$min\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n \"cpfUtil_max\": {\"$max\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n\n \"cpfStall_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n \"cpfStall_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n \"cpfStall_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n\n \"l2CacheBusy_avg\": {\"$avg\": \"&CPF_CPF_TCIU_BUSY\"},\n \"l2CacheBusy_min\": {\"$min\": \"&CPF_CPF_TCIU_BUSY\"},\n \"l2CacheBusy_max\": {\"$max\": \"&CPF_CPF_TCIU_BUSY\"},\n\n \"l2CacheUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheStall_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n \"l2CacheStall_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n \"l2CacheStall_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n\n \"utcL1Stall_avg\": {\"$avg\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_min\": {\"$min\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_max\": {\"$max\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"}\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy Cycles\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"CPF Busy\",\n \"Avg\": \"&cpfBusy_avg\",\n \"Min\": \"&cpfBusy_min\",\n \"Max\": \"&cpfBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"CPF Util\",\n \"Avg\": \"&cpfUtil_avg\",\n \"Min\": \"&cpfUtil_min\",\n \"Max\": \"&cpfUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPF Stall\",\n \"Avg\": \"&cpfStall_avg\",\n \"Min\": \"&cpfStall_min\",\n \"Max\": \"&cpfStall_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"L2Cache Intf Busy\",\n \"Avg\": \"&l2CacheBusy_avg\",\n \"Min\": \"&l2CacheBusy_min\",\n \"Max\": \"&l2CacheBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"L2Cache Intf Util\",\n \"Avg\": \"&l2CacheUtil_avg\",\n \"Min\": \"&l2CacheUtil_min\",\n \"Max\": \"&l2CacheUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"L2Cache Intf Stall\",\n \"Avg\": \"&l2CacheStall_avg\",\n \"Min\": \"&l2CacheStall_min\",\n \"Max\": \"&l2CacheStall_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"UTCL1 Stall\",\n \"Avg\": \"&utcL1Stall_avg\",\n \"Min\": \"&utcL1Stall_min\",\n \"Max\": \"&utcL1Stall_max\", \n \"Unit\": \"Cycles/Kernel\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Command Processor Fetcher", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 83 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 171 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 148 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 180 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 118 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baselin)" - }, - "properties": [ - { - "id": "custom.width", - "value": 139 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 138 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 147 - } - ] - } - ] - }, - "gridPos": { - "h": 13, - "w": 11, - "x": 13, - "y": 6 - }, - "id": 4, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \n \"gpuBusy_avg\": {\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\": {\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\": {\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n\n \"cpcBusy_avg\": {\"$avg\": \"&CPC_CPC_STAT_BUSY\"},\n \"cpcBusy_min\": {\"$min\": \"&CPC_CPC_STAT_BUSY\"},\n \"cpcBusy_max\": {\"$max\": \"&CPC_CPC_STAT_BUSY\"},\n\n \"cpcUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n \"cpcUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n \"cpcUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n\n \"cpcStall_avg\": {\"$avg\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStall_min\": {\"$min\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStall_max\": {\"$max\": \"&CPC_CPC_STAT_STALL\"},\n\n \"cpcStallCycles_avg\": {\"$avg\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStallCycles_min\": {\"$min\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStallCycles_max\": {\"$max\": \"&CPC_CPC_STAT_STALL\"},\n\n \"cpcStallRate_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"cpcStallRate_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"cpcStallRate_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n\n \"cpcPacketDecoding_avg\":{\"$avg\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n \"cpcPacketDecoding_min\":{\"$min\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n \"cpcPacketDecoding_max\":{\"$max\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n\n \"spiBusy_avg\":{\"$avg\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n \"spiBusy_min\":{\"$min\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n \"spiBusy_max\":{\"$max\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n\n \"spiUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"spiUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"spiUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n\n \"l2CacheBusy_avg\":{\"$avg\": \"&CPC_CPC_TCIU_BUSY\"},\n \"l2CacheBusy_min\":{\"$min\": \"&CPC_CPC_TCIU_BUSY\"},\n \"l2CacheBusy_max\":{\"$max\": \"&CPC_CPC_TCIU_BUSY\"},\n\n \"l2CacheUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n \"l2CacheUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n \"l2CacheUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n\n \"utcL1Stall_avg\":{\"$avg\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_min\":{\"$min\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_max\":{\"$max\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n\n \"utcL2Busy_avg\":{\"$avg\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n \"utcL2Busy_min\":{\"$min\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n \"utcL2Busy_max\":{\"$max\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n\n \"utcL2Util_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }},\n \"utcL2Util_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }},\n \"utcL2Util_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }}\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy Cycles\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Busy Cycles\",\n \"Avg\": \"&cpcBusy_avg\",\n \"Min\": \"&cpcBusy_min\",\n \"Max\": \"&cpcBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Util\",\n \"Avg\": \"&cpcUtil_avg\",\n \"Min\": \"&cpcUtil_min\",\n \"Max\": \"&cpcUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPC Stall Cycles\",\n \"Avg\": \"&cpcStallCycles_avg\",\n \"Min\": \"&cpcStallCycles_min\",\n \"Max\": \"&cpcStallCycles_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Stall Rate\",\n \"Avg\": \"&cpcStallRate_avg\",\n \"Min\": \"&cpcStallRate_min\",\n \"Max\": \"&cpcStallRate_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPC Packet Decoding\",\n \"Avg\": \"&cpcPacketDecoding_avg\",\n \"Min\": \"&cpcPacketDecoding_min\",\n \"Max\": \"&cpcPacketDecoding_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Intf Busy Cycles\",\n \"Avg\": \"&spiBusy_avg\",\n \"Min\": \"&spiBusy_min\",\n \"Max\": \"&spiBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Intf Util\",\n \"Avg\": \"&spiUtil_avg\",\n \"Min\": \"&spiUtil_min\",\n \"Max\": \"&spiUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"L2Cache Intf Util\",\n \"Avg\": \"&l2CacheUtil_avg\",\n \"Min\": \"&l2CacheUtil_min\",\n \"Max\": \"&l2CacheUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"UTCL1 Stall Cycles\",\n \"Avg\": \"&utcL1Stall_avg\",\n \"Min\": \"&utcL1Stall_min\",\n \"Max\": \"&utcL1Stall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"UTCL2 Intf Busy Cycles\",\n \"Avg\": \"&utcL2Busy_avg\",\n \"Min\": \"&utcL2Busy_min\",\n \"Max\": \"&utcL2Busy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"UTCL2 Intf Util\",\n \"Avg\": \"&utcL2Util_avg\",\n \"Min\": \"&utcL2Util_min\",\n \"Max\": \"&utcL2Util_max\", \n \"Unit\": \"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Command Processor)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \n \"gpuBusy_avg\": {\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\": {\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\": {\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n \"cpcBusy_avg\": {\"$avg\": \"&CPC_CPC_STAT_BUSY\"},\n \"cpcBusy_min\": {\"$min\": \"&CPC_CPC_STAT_BUSY\"},\n \"cpcBusy_max\": {\"$max\": \"&CPC_CPC_STAT_BUSY\"},\n\n \"cpcUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n \"cpcUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n \"cpcUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n\n \"cpcStall_avg\": {\"$avg\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStall_min\": {\"$min\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStall_max\": {\"$max\": \"&CPC_CPC_STAT_STALL\"},\n\n \"cpcStallCycles_avg\": {\"$avg\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStallCycles_min\": {\"$min\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStallCycles_max\": {\"$max\": \"&CPC_CPC_STAT_STALL\"},\n\n \"cpcStallRate_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"cpcStallRate_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"cpcStallRate_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n\n \"cpcPacketDecoding_avg\":{\"$avg\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n \"cpcPacketDecoding_min\":{\"$min\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n \"cpcPacketDecoding_max\":{\"$max\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n\n \"spiBusy_avg\":{\"$avg\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n \"spiBusy_min\":{\"$min\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n \"spiBusy_max\":{\"$max\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n\n \"spiUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"spiUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"spiUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n\n \"l2CacheBusy_avg\":{\"$avg\": \"&CPC_CPC_TCIU_BUSY\"},\n \"l2CacheBusy_min\":{\"$min\": \"&CPC_CPC_TCIU_BUSY\"},\n \"l2CacheBusy_max\":{\"$max\": \"&CPC_CPC_TCIU_BUSY\"},\n\n \"l2CacheUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n \"l2CacheUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n \"l2CacheUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n\n \"utcL1Stall_avg\":{\"$avg\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_min\":{\"$min\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_max\":{\"$max\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n\n \"utcL2Busy_avg\":{\"$avg\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n \"utcL2Busy_min\":{\"$min\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n \"utcL2Busy_max\":{\"$max\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n\n \"utcL2Util_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }},\n \"utcL2Util_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }},\n \"utcL2Util_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }}\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy Cycles\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Busy Cycles\",\n \"Avg\": \"&cpcBusy_avg\",\n \"Min\": \"&cpcBusy_min\",\n \"Max\": \"&cpcBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Util\",\n \"Avg\": \"&cpcUtil_avg\",\n \"Min\": \"&cpcUtil_min\",\n \"Max\": \"&cpcUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPC Stall Cycles\",\n \"Avg\": \"&cpcStallCycles_avg\",\n \"Min\": \"&cpcStallCycles_min\",\n \"Max\": \"&cpcStallCycles_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Stall Rate\",\n \"Avg\": \"&cpcStallRate_avg\",\n \"Min\": \"&cpcStallRate_min\",\n \"Max\": \"&cpcStallRate_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPC Packet Decoding\",\n \"Avg\": \"&cpcPacketDecoding_avg\",\n \"Min\": \"&cpcPacketDecoding_min\",\n \"Max\": \"&cpcPacketDecoding_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Intf Busy Cycles\",\n \"Avg\": \"&spiBusy_avg\",\n \"Min\": \"&spiBusy_min\",\n \"Max\": \"&spiBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Intf Util\",\n \"Avg\": \"&spiUtil_avg\",\n \"Min\": \"&spiUtil_min\",\n \"Max\": \"&spiUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"L2Cache Intf Util\",\n \"Avg\": \"&l2CacheUtil_avg\",\n \"Min\": \"&l2CacheUtil_min\",\n \"Max\": \"&l2CacheUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"UTCL1 Stall Cycles\",\n \"Avg\": \"&utcL1Stall_avg\",\n \"Min\": \"&utcL1Stall_min\",\n \"Max\": \"&utcL1Stall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"UTCL2 Intf Busy Cycles\",\n \"Avg\": \"&utcL2Busy_avg\",\n \"Min\": \"&utcL2Busy_min\",\n \"Max\": \"&utcL2Busy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"UTCL2 Intf Util\",\n \"Avg\": \"&utcL2Util_avg\",\n \"Min\": \"&utcL2Util_min\",\n \"Max\": \"&utcL2Util_max\", \n \"Unit\": \"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Command Processor Compute", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Metric 1": "", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Command Processor (CPC/CPF)", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 6 - }, - "id": 102, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 101 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg 1" - }, - "properties": [ - { - "id": "custom.width", - "value": 121 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min 1" - }, - "properties": [ - { - "id": "custom.width", - "value": 96 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max 1" - }, - "properties": [ - { - "id": "custom.width", - "value": 145 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg 2" - }, - "properties": [ - { - "id": "custom.width", - "value": 97 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min 2" - }, - "properties": [ - { - "id": "custom.width", - "value": 128 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 130 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 123 - } - ] - } - ] - }, - "gridPos": { - "h": 15, - "w": 12, - "x": 0, - "y": 7 - }, - "id": 106, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"csBusy_avg\":{\"$avg\": \"&SPI_CSN_BUSY\"},\n \"csBusy_min\":{\"$min\": \"&SPI_CSN_BUSY\"},\n \"csBusy_max\":{\"$max\": \"&SPI_CSN_BUSY\"},\n\n \"gpuBusy_avg\":{\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\":{\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\":{\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n \"spiBusy_avg\":{\"$avg\": \"&GRBM_SPI_BUSY\"},\n \"spiBusy_min\":{\"$min\": \"&GRBM_SPI_BUSY\"},\n \"spiBusy_max\":{\"$max\": \"&GRBM_SPI_BUSY\"},\n\n \"sqBusy_avg\":{\"$avg\": \"&SQ_BUSY_CYCLES\"},\n \"sqBusy_min\":{\"$min\": \"&SQ_BUSY_CYCLES\"},\n \"sqBusy_max\":{\"$max\": \"&SQ_BUSY_CYCLES\"},\n\n \"dispatchedWorkgroups_avg\":{\"$avg\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n \"dispatchedWorkgroups_min\":{\"$min\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n \"dispatchedWorkgroups_max\":{\"$max\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n\n \"dispatchedWavefronts_avg\":{\"$avg\": \"&SPI_CSN_WAVE\"},\n \"dispatchedWavefronts_min\":{\"$min\": \"&SPI_CSN_WAVE\"},\n \"dispatchedWavefronts_max\":{\"$max\": \"&SPI_CSN_WAVE\"},\n\n\n \"waveAllocFail_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC\"},\n \"waveAllocFail_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC\"},\n \"waveAllocFail_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC\"},\n\n \"waveAllocFailCS_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveAllocFailCS_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveAllocFailCS_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"}\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Busy\",\n \"Avg\": \"&csBusy_avg\",\n \"Min\": \"&csBusy_min\",\n \"Max\": \"&csBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Busy\",\n \"Avg\": \"&spiBusy_avg\",\n \"Min\": \"&spiBusy_min\",\n \"Max\": \"&spiBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SQ Busy\",\n \"Avg\": \"&sqBusy_avg\",\n \"Min\": \"&sqBusy_min\",\n \"Max\": \"&sqBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Dispatched Workgroups\",\n \"Avg\": \"&dispatchedWorkgroups_avg\",\n \"Min\": \"&dispatchedWorkgroups_min\",\n \"Max\": \"&dispatchedWorkgroups_max\", \n \"Unit\": \"Workgroups\"\n },\n {\n \"Metric\": \"Dispatched Wavefronts\",\n \"Avg\": \"&dispatchedWavefronts_avg\",\n \"Min\": \"&dispatchedWavefronts_min\",\n \"Max\": \"&dispatchedWavefronts_max\", \n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Wave Alloc Failed\",\n \"Avg\": \"&waveAllocFail_avg\",\n \"Min\": \"&waveAllocFail_min\",\n \"Max\": \"&waveAllocFail_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Wave Alloc Failed - CS\",\n \"Avg\": \"&waveAllocFailCS_avg\",\n \"Min\": \"&waveAllocFailCS_min\",\n \"Max\": \"&waveAllocFailCS_max\", \n \"Unit\": \"Cycles\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Shader Processor Input)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"csBusy_avg\":{\"$avg\": \"&SPI_CSN_BUSY\"},\n \"csBusy_min\":{\"$min\": \"&SPI_CSN_BUSY\"},\n \"csBusy_max\":{\"$max\": \"&SPI_CSN_BUSY\"},\n\n \"gpuBusy_avg\":{\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\":{\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\":{\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n \"spiBusy_avg\":{\"$avg\": \"&GRBM_SPI_BUSY\"},\n \"spiBusy_min\":{\"$min\": \"&GRBM_SPI_BUSY\"},\n \"spiBusy_max\":{\"$max\": \"&GRBM_SPI_BUSY\"},\n\n \"sqBusy_avg\":{\"$avg\": \"&SQ_BUSY_CYCLES\"},\n \"sqBusy_min\":{\"$min\": \"&SQ_BUSY_CYCLES\"},\n \"sqBusy_max\":{\"$max\": \"&SQ_BUSY_CYCLES\"},\n\n \"dispatchedWorkgroups_avg\":{\"$avg\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n \"dispatchedWorkgroups_min\":{\"$min\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n \"dispatchedWorkgroups_max\":{\"$max\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n\n \"dispatchedWavefronts_avg\":{\"$avg\": \"&SPI_CSN_WAVE\"},\n \"dispatchedWavefronts_min\":{\"$min\": \"&SPI_CSN_WAVE\"},\n \"dispatchedWavefronts_max\":{\"$max\": \"&SPI_CSN_WAVE\"},\n\n \"waveAllocFail_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC\"},\n \"waveAllocFail_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC\"},\n \"waveAllocFail_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC\"},\n\n \"waveAllocFailCS_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveAllocFailCS_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveAllocFailCS_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"}\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Busy\",\n \"Avg\": \"&csBusy_avg\",\n \"Min\": \"&csBusy_min\",\n \"Max\": \"&csBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Busy\",\n \"Avg\": \"&spiBusy_avg\",\n \"Min\": \"&spiBusy_min\",\n \"Max\": \"&spiBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SQ Busy\",\n \"Avg\": \"&sqBusy_avg\",\n \"Min\": \"&sqBusy_min\",\n \"Max\": \"&sqBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Dispatched Workgroups\",\n \"Avg\": \"&dispatchedWorkgroups_avg\",\n \"Min\": \"&dispatchedWorkgroups_min\",\n \"Max\": \"&dispatchedWorkgroups_max\", \n \"Unit\": \"Workgroups\"\n },\n {\n \"Metric\": \"Dispatched Wavefronts\",\n \"Avg\": \"&dispatchedWavefronts_avg\",\n \"Min\": \"&dispatchedWavefronts_min\",\n \"Max\": \"&dispatchedWavefronts_max\", \n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Wave Alloc Failed\",\n \"Avg\": \"&waveAllocFail_avg\",\n \"Min\": \"&waveAllocFail_min\",\n \"Max\": \"&waveAllocFail_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Wave Alloc Failed - CS\",\n \"Avg\": \"&waveAllocFailCS_avg\",\n \"Min\": \"&waveAllocFailCS_min\",\n \"Max\": \"&waveAllocFailCS_max\", \n \"Unit\": \"Cycles\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "SPI Stats", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)", - "Unit 1": "" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 117 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 110 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 121 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 285 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 102 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 122 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 242 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 121 - } - ] - } - ] - }, - "gridPos": { - "h": 15, - "w": 12, - "x": 12, - "y": 7 - }, - "id": 104, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"waveReqFailCS_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveReqFailCS_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveReqFailCS_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n\n \"csStall_avg\":{\"$avg\": \"&SPI_RA_RES_STALL_CSN\"},\n \"csStall_min\":{\"$min\": \"&SPI_RA_RES_STALL_CSN\"},\n \"csStall_max\":{\"$max\": \"&SPI_RA_RES_STALL_CSN\"},\n\n \"csStallRate_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n \"csStallRate_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n \"csStallRate_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n\n \"scratchStall_avg\":{\"$avg\": \"&SPI_RA_TMP_STALL_CSN\"},\n \"scratchStall_min\":{\"$min\": \"&SPI_RA_TMP_STALL_CSN\"},\n \"scratchStall_max\":{\"$max\": \"&SPI_RA_TMP_STALL_CSN\"},\n\n \"simdWaveslots_avg\":{\"$avg\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n \"simdWaveslots_min\":{\"$min\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n \"simdWaveslots_max\":{\"$max\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n\n \"simdVGPRs_avg\":{\"$avg\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n \"simdVGPRs_min\":{\"$min\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n \"simdVGPRs_max\":{\"$max\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n\n \"simdSGPRs_avg\":{\"$avg\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n \"simdSGPRs_min\":{\"$min\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n \"simdSGPRs_max\":{\"$max\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n\n \"cuLDS_avg\":{\"$avg\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n \"cuLDS_min\":{\"$min\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n \"cuLDS_max\":{\"$max\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n\n \"cuBarries_avg\":{\"$avg\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n \"cuBarries_min\":{\"$min\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n \"cuBarries_max\":{\"$max\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n\n \"bulkyResource_avg\":{\"$avg\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n \"bulkyResource_min\":{\"$min\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n \"bulkyResource_max\":{\"$max\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n\n \"threadgroupLimit_avg\":{\"$avg\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n \"threadgroupLimit_min\":{\"$min\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n \"threadgroupLimit_max\":{\"$max\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n\n \"waveLimit_avg\":{\"$avg\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n \"waveLimit_min\":{\"$min\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n \"waveLimit_max\":{\"$max\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n\n \"vgprsWrites_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n \"vgprsWrites_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n \"vgprsWrites_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n\n \"sgprsWrites_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \"sgprsWrites_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \"sgprsWrites_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \n \n \"sgprsWritesUti_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }},\n \"sgprsWritesUti_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }},\n \"sgprsWritesUti_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }}\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave request Failed (CS)\",\n \"Avg\": \"&waveReqFailCS_avg\",\n \"Min\": \"&waveReqFailCS_min\",\n \"Max\": \"&waveReqFailCS_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Stall\",\n \"Avg\": \"&csStall_avg\",\n \"Min\": \"&csStall_min\",\n \"Max\": \"&csStall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Stall Rate\",\n \"Avg\": \"&csStallRate_avg\",\n \"Min\": \"&csStallRate_min\",\n \"Max\": \"&csStallRate_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"Scratch Stall\",\n \"Avg\": \"&scratchStall_avg\",\n \"Min\": \"&scratchStall_min\",\n \"Max\": \"&scratchStall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Insufficient SIMD Waveslots\",\n \"Avg\": \"&simdWaveslots_avg\",\n \"Min\": \"&simdWaveslots_min\",\n \"Max\": \"&simdWaveslots_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient SIMD VGPRs\",\n \"Avg\": \"&simdVGPRs_avg\",\n \"Min\": \"&simdVGPRs_min\",\n \"Max\": \"&simdVGPRs_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient SIMD SGPRs\",\n \"Avg\": \"&simdSGPRs_avg\",\n \"Min\": \"&simdSGPRs_min\",\n \"Max\": \"&simdSGPRs_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient CU LDS\",\n \"Avg\": \"&cuLDS_avg\",\n \"Min\": \"&cuLDS_min\",\n \"Max\": \"&cuLDS_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Insufficient CU Barries\",\n \"Avg\": \"&cuBarries_avg\",\n \"Min\": \"&cuBarries_min\",\n \"Max\": \"&cuBarries_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Insufficient Bulky Resource\",\n \"Avg\": \"&bulkyResource_avg\",\n \"Min\": \"&bulkyResource_min\",\n \"Max\": \"&bulkyResource_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Reach CU Threadgroups Limit\",\n \"Avg\": \"&threadgroupLimit_avg\",\n \"Min\": \"&threadgroupLimit_min\",\n \"Max\": \"&threadgroupLimit_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Reach CU Wave Limit\",\n \"Avg\": \"&waveLimit_avg\",\n \"Min\": \"&waveLimit_min\",\n \"Max\": \"&waveLimit_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"VGPR Writes\",\n \"Avg\": \"&vgprsWrites_avg\",\n \"Min\": \"&vgprsWrites_min\",\n \"Max\": \"&vgprsWrites_max\", \n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"SGPR Writes\",\n \"Avg\": \"&sgprsWrites_avg\",\n \"Min\": \"&sgprsWrites_min\",\n \"Max\": \"&sgprsWrites_max\", \n \"Unit\": \"Cycles/wave\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Shader Processor Input)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"waveReqFailCS_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveReqFailCS_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveReqFailCS_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n\n \"csStall_avg\":{\"$avg\": \"&SPI_RA_RES_STALL_CSN\"},\n \"csStall_min\":{\"$min\": \"&SPI_RA_RES_STALL_CSN\"},\n \"csStall_max\":{\"$max\": \"&SPI_RA_RES_STALL_CSN\"},\n\n \"csStallRate_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n \"csStallRate_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n \"csStallRate_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n\n \"scratchStall_avg\":{\"$avg\": \"&SPI_RA_TMP_STALL_CSN\"},\n \"scratchStall_min\":{\"$min\": \"&SPI_RA_TMP_STALL_CSN\"},\n \"scratchStall_max\":{\"$max\": \"&SPI_RA_TMP_STALL_CSN\"},\n\n \"simdWaveslots_avg\":{\"$avg\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n \"simdWaveslots_min\":{\"$min\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n \"simdWaveslots_max\":{\"$max\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n\n \"simdVGPRs_avg\":{\"$avg\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n \"simdVGPRs_min\":{\"$min\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n \"simdVGPRs_max\":{\"$max\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n\n \"simdSGPRs_avg\":{\"$avg\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n \"simdSGPRs_min\":{\"$min\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n \"simdSGPRs_max\":{\"$max\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n\n \"cuLDS_avg\":{\"$avg\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n \"cuLDS_min\":{\"$min\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n \"cuLDS_max\":{\"$max\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n\n \"cuBarries_avg\":{\"$avg\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n \"cuBarries_min\":{\"$min\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n \"cuBarries_max\":{\"$max\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n\n \"bulkyResource_avg\":{\"$avg\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n \"bulkyResource_min\":{\"$min\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n \"bulkyResource_max\":{\"$max\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n\n \"threadgroupLimit_avg\":{\"$avg\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n \"threadgroupLimit_min\":{\"$min\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n \"threadgroupLimit_max\":{\"$max\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n\n \"waveLimit_avg\":{\"$avg\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n \"waveLimit_min\":{\"$min\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n \"waveLimit_max\":{\"$max\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n\n \"vgprsWrites_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n \"vgprsWrites_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n \"vgprsWrites_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n\n \"sgprsWrites_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \"sgprsWrites_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \"sgprsWrites_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \n \n \"sgprsWritesUti_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }},\n \"sgprsWritesUti_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }},\n \"sgprsWritesUti_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }}\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave request Failed (CS)\",\n \"Avg\": \"&waveReqFailCS_avg\",\n \"Min\": \"&waveReqFailCS_min\",\n \"Max\": \"&waveReqFailCS_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Stall\",\n \"Avg\": \"&csStall_avg\",\n \"Min\": \"&csStall_min\",\n \"Max\": \"&csStall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Stall Rate\",\n \"Avg\": \"&csStallRate_avg\",\n \"Min\": \"&csStallRate_min\",\n \"Max\": \"&csStallRate_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"Scratch Stall\",\n \"Avg\": \"&scratchStall_avg\",\n \"Min\": \"&scratchStall_min\",\n \"Max\": \"&scratchStall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Insufficient SIMD Waveslots\",\n \"Avg\": \"&simdWaveslots_avg\",\n \"Min\": \"&simdWaveslots_min\",\n \"Max\": \"&simdWaveslots_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient SIMD VGPRs\",\n \"Avg\": \"&simdVGPRs_avg\",\n \"Min\": \"&simdVGPRs_min\",\n \"Max\": \"&simdVGPRs_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient SIMD SGPRs\",\n \"Avg\": \"&simdSGPRs_avg\",\n \"Min\": \"&simdSGPRs_min\",\n \"Max\": \"&simdSGPRs_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient CU LDS\",\n \"Avg\": \"&cuLDS_avg\",\n \"Min\": \"&cuLDS_min\",\n \"Max\": \"&cuLDS_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Insufficient CU Barries\",\n \"Avg\": \"&cuBarries_avg\",\n \"Min\": \"&cuBarries_min\",\n \"Max\": \"&cuBarries_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Insufficient Bulky Resource\",\n \"Avg\": \"&bulkyResource_avg\",\n \"Min\": \"&bulkyResource_min\",\n \"Max\": \"&bulkyResource_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Reach CU Threadgroups Limit\",\n \"Avg\": \"&threadgroupLimit_avg\",\n \"Min\": \"&threadgroupLimit_min\",\n \"Max\": \"&threadgroupLimit_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Reach CU Wave Limit\",\n \"Avg\": \"&waveLimit_avg\",\n \"Min\": \"&waveLimit_min\",\n \"Max\": \"&waveLimit_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"VGPR Writes\",\n \"Avg\": \"&vgprsWrites_avg\",\n \"Min\": \"&vgprsWrites_min\",\n \"Max\": \"&vgprsWrites_max\", \n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"SGPR Writes\",\n \"Avg\": \"&sgprsWrites_avg\",\n \"Min\": \"&sgprsWrites_min\",\n \"Max\": \"&sgprsWrites_max\", \n \"Unit\": \"Cycles/wave\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "SPI Resource Allocation", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Shader Processor Input (SPI)", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 7 - }, - "id": 185, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 169 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 142 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 196 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 174 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max" - }, - "properties": [ - { - "id": "custom.width", - "value": 168 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min" - }, - "properties": [ - { - "id": "custom.width", - "value": 272 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg" - }, - "properties": [ - { - "id": "custom.width", - "value": 225 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 100 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 103 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 115 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 117 - } - ] - } - ] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 0, - "y": 8 - }, - "id": 10, - "interval": "12h", - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"gridSize_avg\":{\"$avg\": \"&grd\"},\n \"gridSize_min\":{\"$min\": \"&grd\"},\n \"gridSize_max\":{\"$max\": \"&grd\"},\n\n \"workSize_avg\":{\"$avg\": \"&wgr\"},\n \"workSize_min\":{\"$min\": \"&wgr\"},\n \"workSize_max\":{\"$max\": \"&wgr\"},\n\n \"totWavefront_avg\":{\"$avg\": \"&SPI_CSN_WAVE\"},\n \"totWavefront_min\":{\"$min\": \"&SPI_CSN_WAVE\"},\n \"totWavefront_max\":{\"$max\": \"&SPI_CSN_WAVE\"},\n\n \"savedWavefront_avg\":{\"$avg\": \"&SQ_WAVES_SAVED\"},\n \"savedWavefront_min\":{\"$min\": \"&SQ_WAVES_SAVED\"},\n \"savedWavefront_max\":{\"$max\": \"&SQ_WAVES_SAVED\"},\n\n \"restoredWavefront_avg\":{\"$avg\": \"&SQ_WAVES_RESTORED\"},\n \"restoredWavefront_min\":{\"$min\": \"&SQ_WAVES_RESTORED\"},\n \"restoredWavefront_max\":{\"$max\": \"&SQ_WAVES_RESTORED\"},\n\n \"vgprs_avg\":{\"$avg\": \"&vgpr\"},\n \"vgprs_min\":{\"$min\": \"&vgpr\"},\n \"vgprs_max\":{\"$max\": \"&vgpr\"},\n\n \"sgprs_avg\":{\"$avg\": \"&sgpr\"},\n \"sgprs_min\":{\"$min\": \"&sgpr\"},\n \"sgprs_max\":{\"$max\": \"&sgpr\"},\n\n \"ldsAlloc_avg\":{\"$avg\": \"&lds\"},\n \"ldsAlloc_min\":{\"$min\": \"&lds\"},\n \"ldsAlloc_max\":{\"$max\": \"&lds\"},\n\n \"scratchAlloc_avg\":{\"$avg\": \"&scr\"},\n \"scratchAlloc_min\":{\"$min\": \"&scr\"},\n \"scratchAlloc_max\":{\"$max\": \"&scr\"}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Grid Size\",\n \"Avg\": \"&gridSize_avg\",\n \"Min\": \"&gridSize_min\",\n \"Max\": \"&gridSize_max\",\n \"Unit\": \"Work Items\"\n },\n {\n \"Metric\": \"Workgroup Size\",\n \"Avg\": \"&workSize_avg\",\n \"Min\": \"&workSize_min\",\n \"Max\": \"&workSize_max\",\n \"Unit\": \"Work Items\"\n },\n {\n \"Metric\": \"Total Wavefronts\",\n \"Avg\": \"&totWavefront_avg\",\n \"Min\": \"&totWavefront_min\",\n \"Max\": \"&totWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Saved Wavefronts\",\n \"Avg\": \"&savedWavefront_avg\",\n \"Min\": \"&savedWavefront_min\",\n \"Max\": \"&savedWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Restored Wavefronts\",\n \"Avg\": \"&restoredWavefront_avg\",\n \"Min\": \"&restoredWavefront_min\",\n \"Max\": \"&restoredWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"VGPRs\",\n \"Avg\": \"&vgprs_avg\",\n \"Min\": \"&vgprs_min\",\n \"Max\": \"&vgprs_max\",\n \"Unit\": \"Registers\"\n },\n {\n \"Metric\": \"SGPRs\",\n \"Avg\": \"&sgprs_avg\",\n \"Min\": \"&sgprs_min\",\n \"Max\": \"&sgprs_max\",\n \"Unit\":\"Registers\"\n },\n {\n \"Metric\": \"LDS Allocation\",\n \"Avg\": \"&ldsAlloc_avg\",\n \"Min\": \"&ldsAlloc_min\",\n \"Max\": \"&ldsAlloc_max\",\n \"Unit\": \"Bytes\"\n },\n {\n \"Metric\": \"Scratch Allocation\",\n \"Avg\": \"&scratchAlloc_avg\",\n \"Min\": \"&scratchAlloc_min\",\n \"Max\": \"&scratchAlloc_max\",\n \"Unit\": \"Bytes\"\n }\n \n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Wavefront)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"gridSize_avg\":{\"$avg\": \"&grd\"},\n \"gridSize_min\":{\"$min\": \"&grd\"},\n \"gridSize_max\":{\"$max\": \"&grd\"},\n\n \"workSize_avg\":{\"$avg\": \"&wgr\"},\n \"workSize_min\":{\"$min\": \"&wgr\"},\n \"workSize_max\":{\"$max\": \"&wgr\"},\n\n\n \"totWavefront_avg\":{\"$avg\": \"&SPI_CSN_WAVE\"},\n \"totWavefront_min\":{\"$min\": \"&SPI_CSN_WAVE\"},\n \"totWavefront_max\":{\"$max\": \"&SPI_CSN_WAVE\"},\n\n \"savedWavefront_avg\":{\"$avg\": \"&SQ_WAVES_SAVED\"},\n \"savedWavefront_min\":{\"$min\": \"&SQ_WAVES_SAVED\"},\n \"savedWavefront_max\":{\"$max\": \"&SQ_WAVES_SAVED\"},\n\n \"restoredWavefront_avg\":{\"$avg\": \"&SQ_WAVES_RESTORED\"},\n \"restoredWavefront_min\":{\"$min\": \"&SQ_WAVES_RESTORED\"},\n \"restoredWavefront_max\":{\"$max\": \"&SQ_WAVES_RESTORED\"},\n\n\n \"vgprs_avg\":{\"$avg\": \"&vgpr\"},\n \"vgprs_min\":{\"$min\": \"&vgpr\"},\n \"vgprs_max\":{\"$max\": \"&vgpr\"},\n\n \"sgprs_avg\":{\"$avg\": \"&sgpr\"},\n \"sgprs_min\":{\"$min\": \"&sgpr\"},\n \"sgprs_max\":{\"$max\": \"&sgpr\"},\n\n \"ldsAlloc_avg\":{\"$avg\": \"&lds\"},\n \"ldsAlloc_min\":{\"$min\": \"&lds\"},\n \"ldsAlloc_max\":{\"$max\": \"&lds\"},\n\n \"scratchAlloc_avg\":{\"$avg\": \"&scr\"},\n \"scratchAlloc_min\":{\"$min\": \"&scr\"},\n \"scratchAlloc_max\":{\"$max\": \"&scr\"}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Grid Size\",\n \"Avg\": \"&gridSize_avg\",\n \"Min\": \"&gridSize_min\",\n \"Max\": \"&gridSize_max\",\n \"Unit\": \"Work Items\"\n },\n {\n \"Metric\": \"Workgroup Size\",\n \"Avg\": \"&workSize_avg\",\n \"Min\": \"&workSize_min\",\n \"Max\": \"&workSize_max\",\n \"Unit\": \"Work Items\"\n },\n {\n \"Metric\": \"Total Wavefronts\",\n \"Avg\": \"&totWavefront_avg\",\n \"Min\": \"&totWavefront_min\",\n \"Max\": \"&totWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Saved Wavefronts\",\n \"Avg\": \"&savedWavefront_avg\",\n \"Min\": \"&savedWavefront_min\",\n \"Max\": \"&savedWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Restored Wavefronts\",\n \"Avg\": \"&restoredWavefront_avg\",\n \"Min\": \"&restoredWavefront_min\",\n \"Max\": \"&restoredWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"VGPRs\",\n \"Avg\": \"&vgprs_avg\",\n \"Min\": \"&vgprs_min\",\n \"Max\": \"&vgprs_max\",\n \"Unit\": \"Registers\"\n },\n {\n \"Metric\": \"SGPRs\",\n \"Avg\": \"&sgprs_avg\",\n \"Min\": \"&sgprs_min\",\n \"Max\": \"&sgprs_max\",\n \"Unit\":\"Registers\"\n },\n {\n \"Metric\": \"LDS Allocation\",\n \"Avg\": \"&ldsAlloc_avg\",\n \"Min\": \"&ldsAlloc_min\",\n \"Max\": \"&ldsAlloc_max\",\n \"Unit\": \"Bytes\"\n },\n {\n \"Metric\": \"Scratch Allocation\",\n \"Avg\": \"&scratchAlloc_avg\",\n \"Min\": \"&scratchAlloc_min\",\n \"Max\": \"&scratchAlloc_max\",\n \"Unit\": \"Bytes\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Wavefront Launch Stats", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true, - "Units 2": true, - "metric 2": true - }, - "indexByName": { - "Avg 1": 1, - "Avg 2": 2, - "Max 1": 5, - "Max 2": 6, - "Metric 1": 0, - "Metric 2": 7, - "Min 1": 3, - "Min 2": 4, - "Unit 1": 9, - "Unit 2": 8 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 148 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 122 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 106 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg" - }, - "properties": [ - { - "id": "custom.width", - "value": 223 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 169 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 165 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 133 - } - ] - } - ] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 12, - "y": 8 - }, - "id": 34, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"instrWavefront_avg\":{\"$avg\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n \"instrWavefront_min\":{\"$min\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n \"instrWavefront_max\":{\"$max\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n\n \"waveCycles_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n \"waveCycles_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n \"waveCycles_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n\n \"depWaitingCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"depWaitingCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"depWaitingCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"issueWaitCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"issueWaitCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"issueWaitCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"activeCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"activeCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"activeCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"kernelTime_avg\":{\"$avg\": {\"$subtract\": [ \"&EndNs\", \"&BeginNs\" ]}},\n \"kernelTime_min\":{\"$min\": {\"$subtract\": [ \"&EndNs\", \"&BeginNs\" ]}},\n \"kernelTime_max\":{\"$max\": {\"$subtract\": [ \"&EndNs\", \"&BeginNs\" ]}},\n\n \"kernelCycle_avg\":{\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"kernelCycle_min\":{\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"kernelCycle_max\":{\"$max\": \"&GRBM_GUI_ACTIVE\"}\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Kernel Time (Nanosec)\",\n \"Avg\": \"&kernelTime_avg\",\n \"Min\": \"&kernelTime_min\",\n \"Max\": \"&kernelTime_max\",\n \"Unit\":\"ns\"\n },\n {\n \"Metric\": \"Kernel Time (Cycles)\",\n \"Avg\": \"&kernelCycle_avg\",\n \"Min\": \"&kernelCycle_min\",\n \"Max\": \"&kernelCycle_max\",\n \"Unit\":\"Cycle\"\n },\n\n {\n \"Metric\": \"Instr/wavefront\",\n \"Avg\": \"&instrWavefront_avg\",\n \"Min\": \"&instrWavefront_min\",\n \"Max\": \"&instrWavefront_max\",\n \"Unit\": \"Instr/wavefront\"\n },\n {\n \"Metric\": \"Wave Cycles\",\n \"Avg\": \"&waveCycles_avg\",\n \"Min\": \"&waveCycles_min\",\n \"Max\": \"&waveCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Dependency Wait Cycles\",\n \"Avg\": \"&depWaitingCycles_avg\",\n \"Min\": \"&depWaitingCycles_min\",\n \"Max\": \"&depWaitingCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Issue Wait Cycles\",\n \"Avg\": \"&issueWaitCycles_avg\",\n \"Min\": \"&issueWaitCycles_min\",\n \"Max\": \"&issueWaitCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Active Cycles\",\n \"Avg\": \"&activeCycles_avg\",\n \"Min\": \"&activeCycles_min\",\n \"Max\": \"&activeCycles_max\",\n \"Unit\": \"Cycles/wave\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_LEVEL_WAVES\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"occAvg\": {\"$avg\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } },\n \"occMin\": {\"$min\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } },\n \"occMax\": {\"$max\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } }\n }},\n {\"$project\": {\n \"_id\":0,\n \"Metric\": \"Wavefront Occupancy\",\n \"Avg\": \"&occAvg\",\n \"Min\":\"&occMin\",\n \"Max\":\"&occMax\",\n \"Unit\":\"Wavefronts\"\n }}\n ]\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Wavefront)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"instrWavefront_avg\":{\"$avg\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n \"instrWavefront_min\":{\"$min\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n \"instrWavefront_max\":{\"$max\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n\n \"waveCycles_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n \"waveCycles_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n \"waveCycles_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n\n \"depWaitingCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"depWaitingCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"depWaitingCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"issueWaitCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"issueWaitCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"issueWaitCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"activeCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"activeCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"activeCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"kernelTime_avg\":{\"$avg\": {\"$subtract\": [ \"&EndNs\", \"&BeginNs\" ]}},\n \"kernelTime_min\":{\"$min\": {\"$subtract\": [ \"&EndNs\", \"&BeginNs\" ]}},\n \"kernelTime_max\":{\"$max\": {\"$subtract\": [ \"&EndNs\", \"&BeginNs\" ]}},\n\n \"kernelCycle_avg\":{\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"kernelCycle_min\":{\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"kernelCycle_max\":{\"$max\": \"&GRBM_GUI_ACTIVE\"}\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Kernel Time (Nanosec)\",\n \"Avg\": \"&kernelTime_avg\",\n \"Min\": \"&kernelTime_min\",\n \"Max\": \"&kernelTime_max\",\n \"Unit\":\"ns\"\n },\n {\n \"Metric\": \"Kernel Time (Cycles)\",\n \"Avg\": \"&kernelCycle_avg\",\n \"Min\": \"&kernelCycle_min\",\n \"Max\": \"&kernelCycle_max\",\n \"Unit\":\"Cycle\"\n },\n\n {\n \"Metric\": \"Instr/wavefront\",\n \"Avg\": \"&instrWavefront_avg\",\n \"Min\": \"&instrWavefront_min\",\n \"Max\": \"&instrWavefront_max\",\n \"Unit\": \"Instr/wavefront\"\n },\n {\n \"Metric\": \"Wave Cycles\",\n \"Avg\": \"&waveCycles_avg\",\n \"Min\": \"&waveCycles_min\",\n \"Max\": \"&waveCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Dependency Wait Cycles\",\n \"Avg\": \"&depWaitingCycles_avg\",\n \"Min\": \"&depWaitingCycles_min\",\n \"Max\": \"&depWaitingCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Issue Wait Cycles\",\n \"Avg\": \"&issueWaitCycles_avg\",\n \"Min\": \"&issueWaitCycles_min\",\n \"Max\": \"&issueWaitCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Active Cycles\",\n \"Avg\": \"&activeCycles_avg\",\n \"Min\": \"&activeCycles_min\",\n \"Max\": \"&activeCycles_max\",\n \"Unit\": \"Cycles/wave\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_LEVEL_WAVES\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Wavefront)\"}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"occAvg\": {\"$avg\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } },\n \"occMin\": {\"$min\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } },\n \"occMax\": {\"$max\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } }\n }},\n {\"$project\": {\n \"_id\":0,\n \"Metric\": \"Wavefront Occupancy\",\n \"Avg\": \"&occAvg\",\n \"Min\":\"&occMin\",\n \"Max\":\"&occMax\",\n \"Unit\":\"Wavefronts\"\n }}\n ]\n }}\n ]);", - "type": "table" - } - ], - "title": "Wavefront Runtime Stats", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg": "", - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)", - "Unit 1": "", - "Unit 2": "" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Wavefront", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 8 - }, - "id": 209, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [] - }, - "gridPos": { - "h": 17, - "w": 12, - "x": 0, - "y": 9 - }, - "id": 12, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "text": { - "valueSize": 16 - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"valu\": {\n \"$avg\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_MFMA\"]}, \"&denom\" ] }\n },\n \"mfma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_MFMA\", \"&denom\" ] }\n },\n \"vmem\": {\n \"$avg\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VMEM\", \"&SQ_INSTS_FLAT_LDS_ONLY\"]}, \"&denom\" ] }\n },\n \"lds\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_LDS\", \"&denom\" ] }\n },\n \"salu\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SALU\", \"&denom\" ] }\n },\n \"smem\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SMEM\", \"&denom\" ] }\n },\n \"branch\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_BRANCH\", \"&denom\" ] }\n },\n \"gds\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_GDS\", \"&denom\" ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"VALU - Vector\",\n \"count\": \"&valu\"\n },\n {\n \"metric\": \"VMEM\",\n \"count\": \"&vmem\"\n },\n {\n \"metric\": \"LDS\",\n \"count\": \"&lds\"\n },\n {\n \"metric\": \"VALU - MFMA\",\n \"count\": \"&mfma\"\n },\n {\n \"metric\": \"SALU\",\n \"count\": \"&salu\"\n },\n {\n \"metric\": \"SMEM\",\n \"count\": \"&smem\"\n },\n {\n \"metric\": \"Branch\",\n \"count\": \"&branch\"\n },\n {\n \"metric\": \"GDS\",\n \"count\": \"&gds\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "$Workload2.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Mix)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n \n {\"$group\": {\n \"_id\": null,\n \"valu\": {\n \"$avg\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_MFMA\"]}, \"&denom\" ] }\n },\n \"mfma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_MFMA\", \"&denom\" ] }\n },\n \"vmem\": {\n \"$avg\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VMEM\", \"&SQ_INSTS_FLAT_LDS_ONLY\"]}, \"&denom\" ] }\n },\n \"lds\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_LDS\", \"&denom\" ] }\n },\n \"salu\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SALU\", \"&denom\" ] }\n },\n \"smem\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SMEM\", \"&denom\" ] }\n },\n \"branch\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_BRANCH\", \"&denom\" ] }\n },\n \"gds\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_GDS\", \"&denom\" ] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"VALU - Vector (Baseline)\",\n \"count\": \"&valu\"\n },\n {\n \"metric\": \"VMEM (Baseline)\",\n \"count\": \"&vmem\"\n },\n {\n \"metric\": \"LDS (Baseline)\",\n \"count\": \"&lds\"\n },\n {\n \"metric\": \"VALU - MFMA (Baseline)\",\n \"count\": \"&mfma\"\n },\n {\n \"metric\": \"SALU (Baseline)\",\n \"count\": \"&salu\"\n },\n {\n \"metric\": \"SMEM (Baseline)\",\n \"count\": \"&smem\"\n },\n {\n \"metric\": \"Branch (Baseline)\",\n \"count\": \"&branch\"\n },\n {\n \"metric\": \"GDS (Baseline)\",\n \"count\": \"&gds\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "Instruction Mix", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "field": "metric" - } - ] - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 24, - "w": 12, - "x": 12, - "y": 9 - }, - "id": 24, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "/^count$/", - "limit": 100, - "values": true - }, - "showUnfilled": true, - "text": {} - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"count_int_i32\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_INT32\", \"&denom\" ] }\n },\n \"count_int_i64\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_INT64\", \"&denom\" ] }\n },\n \"count_f16_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F16\", \"&denom\" ] }\n },\n \"count_f16_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F16\", \"&denom\" ] }\n },\n \"count_f16_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F16\", \"&denom\" ] }\n },\n \"count_f16_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F16\", \"&denom\" ] }\n },\n \"count_f32_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F32\", \"&denom\" ] }\n },\n \"count_f32_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F32\", \"&denom\" ] }\n },\n \"count_f32_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F32\", \"&denom\" ] }\n },\n \"count_f32_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F32\", \"&denom\" ] }\n },\n \"count_f64_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F64\", \"&denom\" ] }\n },\n \"count_f64_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F64\", \"&denom\" ] }\n },\n \"count_f64_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F64\", \"&denom\" ] }\n },\n \"count_f64_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F64\", \"&denom\" ] }\n },\n \"conversion\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_CVT\", \"&denom\" ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"INT32\",\n \"count\": \"&count_int_i32\"\n },\n {\n \"metric\": \"INT64\",\n \"count\": \"&count_int_i64\"\n },\n {\n \"metric\": \"F16-ADD\",\n \"count\": \"&count_f16_add\"\n },\n {\n \"metric\": \"F16-MUL\",\n \"count\": \"&count_f16_MUL\"\n },\n {\n \"metric\": \"F16-FMA\",\n \"count\": \"&count_f16_fma\"\n },\n {\n \"metric\": \"F16-Trans\",\n \"count\": \"&count_f16_trans\"\n },\n {\n \"metric\": \"F32-ADD\",\n \"count\": \"&count_f32_add\"\n },\n {\n \"metric\": \"F32-MUL\",\n \"count\": \"&count_f32_MUL\"\n },\n {\n \"metric\": \"F32-FMA\",\n \"count\": \"&count_f32_fma\"\n },\n {\n \"metric\": \"F32-Trans\",\n \"count\": \"&count_f32_trans\"\n },\n {\n \"metric\": \"F64-ADD\",\n \"count\": \"&count_f64_add\"\n },\n {\n \"metric\": \"F64-MUL\",\n \"count\": \"&count_f64_MUL\"\n },\n {\n \"metric\": \"F64-FMA\",\n \"count\": \"&count_f64_fma\"\n },\n {\n \"metric\": \"F64-Trans\",\n \"count\": \"&count_f64_trans\"\n },\n {\n \"metric\": \"Conversion\",\n \"count\": \"&conversion\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Mix)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"count_int_i32\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_INT32\", \"&denom\" ] }\n },\n \"count_int_i64\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_INT64\", \"&denom\" ] }\n },\n \"count_f16_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F16\", \"&denom\" ] }\n },\n \"count_f16_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F16\", \"&denom\" ] }\n },\n \"count_f16_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F16\", \"&denom\" ] }\n },\n \"count_f16_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F16\", \"&denom\" ] }\n },\n \"count_f32_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F32\", \"&denom\" ] }\n },\n \"count_f32_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F32\", \"&denom\" ] }\n },\n \"count_f32_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F32\", \"&denom\" ] }\n },\n \"count_f32_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F32\", \"&denom\" ] }\n },\n \"count_f64_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F64\", \"&denom\" ] }\n },\n \"count_f64_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F64\", \"&denom\" ] }\n },\n \"count_f64_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F64\", \"&denom\" ] }\n },\n \"count_f64_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F64\", \"&denom\" ] }\n },\n \"conversion\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_CVT\", \"&denom\" ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"INT32 (Baseline)\",\n \"count\": \"&count_int_i32\"\n },\n {\n \"metric\": \"INT64 (Baseline)\",\n \"count\": \"&count_int_i64\"\n },\n {\n \"metric\": \"F16-ADD (Baseline)\",\n \"count\": \"&count_f16_add\"\n },\n {\n \"metric\": \"F16-MUL (Baseline)\",\n \"count\": \"&count_f16_MUL\"\n },\n {\n \"metric\": \"F16-FMA (Baseline)\",\n \"count\": \"&count_f16_fma\"\n },\n {\n \"metric\": \"F16-Trans (Baseline)\",\n \"count\": \"&count_f16_trans\"\n },\n {\n \"metric\": \"F32-ADD (Baseline)\",\n \"count\": \"&count_f32_add\"\n },\n {\n \"metric\": \"F32-MUL (Baseline)\",\n \"count\": \"&count_f32_MUL\"\n },\n {\n \"metric\": \"F32-FMA (Baseline)\",\n \"count\": \"&count_f32_fma\"\n },\n {\n \"metric\": \"F32-Trans (Baseline)\",\n \"count\": \"&count_f32_trans\"\n },\n {\n \"metric\": \"F64-ADD (Baseline)\",\n \"count\": \"&count_f64_add\"\n },\n {\n \"metric\": \"F64-MUL (Baseline)\",\n \"count\": \"&count_f64_MUL\"\n },\n {\n \"metric\": \"F64-FMA (Baseline)\",\n \"count\": \"&count_f64_fma\"\n },\n {\n \"metric\": \"F64-Trans (Baseline)\",\n \"count\": \"&count_f64_trans\"\n },\n {\n \"metric\": \"Conversion (Baseline)\",\n \"count\": \"&conversion\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "VALU Arithmetic Instr Mix", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "field": "metric" - } - ] - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 0, - "y": 26 - }, - "id": 275, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"buffer_instr\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_read\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_write\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_atomic\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \n \"flat_instr\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_read\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_write\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_atomic\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\" ] }\n }\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"type\": \"Buffer Instr\",\n \"count\": \"&buffer_instr\"\n },\n {\n \"type\": \"Buffer Read\",\n \"count\": \"&buffer_read\"\n },\n {\n \"type\": \"Buffer Write\",\n \"count\": \"&buffer_write\"\n },\n {\n \"type\": \"Buffer Atomic\",\n \"count\": \"&buffer_atomic\"\n },\n {\n \"type\": \"Flat Instr\",\n \"count\": \"&flat_instr\"\n },\n {\n \"type\": \"Flat Read\",\n \"count\": \"&flat_read\"\n },\n {\n \"type\": \"Flat Write\",\n \"count\": \"&flat_write\"\n },\n {\n \"type\": \"Flat Atomic\",\n \"count\": \"&flat_atomic\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Mix)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"buffer_instr\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_read\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_write\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_atomic\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n\n \"flat_instr\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_read\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_write\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_atomic\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\" ] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"type\": \"Buffer Instr (Baseline)\",\n \"count\": \"&buffer_instr\"\n },\n {\n \"type\": \"Buffer Read (Baseline)\",\n \"count\": \"&buffer_read\"\n },\n {\n \"type\": \"Buffer Write (Baseline)\",\n \"count\": \"&buffer_write\"\n },\n {\n \"type\": \"Buffer Atomic (Baseline)\",\n \"count\": \"&buffer_atomic\"\n },\n {\n \"type\": \"Flat Instr (Baseline)\",\n \"count\": \"&flat_instr\"\n },\n {\n \"type\": \"Flat Read (Baseline)\",\n \"count\": \"&flat_read\"\n },\n {\n \"type\": \"Flat Write (Baseline)\",\n \"count\": \"&flat_write\"\n },\n {\n \"type\": \"Flat Atomic (Baseline)\",\n \"count\": \"&flat_atomic\"\n }\n\n ]\n }},\n\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "VMEM Instr Mix", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "type 2": true - }, - "indexByName": {}, - "renameByName": { - "count": "Count", - "count 1": "Avg (Current)", - "count 2": "Avg (Baseline)", - "type": "VMEM Instr", - "type 1": "VMEM Instr" - } - } - } - ], - "transparent": true, - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 12, - "x": 12, - "y": 33 - }, - "id": 16, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"mmfa_i8\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_I8\", \"&SQ_WAVES\" ] }\n },\n \"mmfa_f16\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F16\", \"&SQ_WAVES\" ] }\n },\n \"mmfa_bf16\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_BF16\", \"&SQ_WAVES\" ] }\n },\n \"mfma_f32\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F32\", \"&SQ_WAVES\" ] }\n },\n \"mfma_f64\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F64\", \"&SQ_WAVES\" ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"type\": \"MFMA-I8\",\n \"count\": \"&mmfa_i8\"\n },\n {\n \"type\": \"MFMA-F16\",\n \"count\": \"&mmfa_f16\"\n },\n {\n \"type\": \"MFMA-BF16\",\n \"count\": \"&mmfa_bf16\"\n },\n {\n \"type\": \"MFMA-F32\",\n \"count\": \"&mfma_f32\"\n },\n {\n \"type\": \"MFMA-F64\",\n \"count\": \"&mfma_f64\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Mix)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"mmfa_i8\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_I8\", \"&SQ_WAVES\" ] }\n },\n \"mmfa_f16\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F16\", \"&SQ_WAVES\" ] }\n },\n \"mmfa_bf16\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_BF16\", \"&SQ_WAVES\" ] }\n },\n \"mfma_f32\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F32\", \"&SQ_WAVES\" ] }\n },\n \"mfma_f64\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F64\", \"&SQ_WAVES\" ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"type\": \"MFMA-I8 (Baseline)\",\n \"count\": \"&mmfa_i8\"\n },\n {\n \"type\": \"MFMA-F16 (Baseline)\",\n \"count\": \"&mmfa_f16\"\n },\n {\n \"type\": \"MFMA-BF16 (Baseline)\",\n \"count\": \"&mmfa_bf16\"\n },\n {\n \"type\": \"MFMA-F32 (Baseline)\",\n \"count\": \"&mfma_f32\"\n },\n {\n \"type\": \"MFMA-F64 (Baseline)\",\n \"count\": \"&mfma_f64\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "MFMA Arithmetic Instr Mix", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "type 2": true - }, - "indexByName": {}, - "renameByName": { - "count": "Count", - "count 1": "Avg (Current)", - "count 2": "Avg (Baseline)", - "type": "MFMA Instr", - "type 1": "MFMA Instr" - } - } - } - ], - "transparent": true, - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Compute Unit - Instruction Mix", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 9 - }, - "id": 8, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 0, - "y": 10 - }, - "id": 211, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "/.*/", - "values": true - }, - "showUnfilled": true, - "text": { - "titleSize": 14, - "valueSize": 14 - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"valu_flops_val\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }] }] }\n ]}\n ,{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }]\n }},\n\n \"mfma_flops_f16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_bf16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f32_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f64_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_i8_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } }\n\n }}, \n {\"$set\": {\n \"array\": [\n {\n \"valu_flops_pop\": {\"$divide\": [{ \"$multiply\": [100, \"&valu_flops_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 64, 2 ]}, 1000] }] },\n \"mfma_flops_bf16_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_bf16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 512 ]}, 1000] }]},\n \"mfma_flops_f16_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 1024 ]}, 1000] }]},\n \"mfma_flops_f32_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f32_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 256 ]}, 1000] }]},\n \"mfma_flops_f64_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f64_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 256 ]}, 1000] }]},\n \"mfma_flops_i8_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_i8_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 1024 ]}, 1000] }]}\n }\n ]\n }},\n\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n \n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"valu_flops_val\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }] }] }\n ]}\n ,{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }]\n }},\n\n \"mfma_flops_f16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_bf16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f32_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f64_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_i8_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n\n \"instr_val\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS\", { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n }\n\n }}, \n {\"$set\": {\n \"array\": [\n {\n \"valu_flops_pop\": {\"$divide\": [{ \"$multiply\": [100, \"&valu_flops_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 64, 2 ]}, 1000] }] },\n \"mfma_flops_bf16_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_bf16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 512 ]}, 1000] }]},\n \"mfma_flops_f16_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 1024 ]}, 1000] }]},\n \"mfma_flops_f32_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f32_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 256 ]}, 1000] }]},\n \"mfma_flops_f64_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f64_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 256 ]}, 1000] }]},\n \"mfma_flops_i8_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_i8_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 1024 ]}, 1000] }]}\n }\n ]\n }},\n\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n \n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - } - ], - "title": "Speed-of-Light: Compute Pipeline", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "mfma_flops_bf16_pop 1": 4, - "mfma_flops_bf16_pop 2": 5, - "mfma_flops_f16_pop 1": 6, - "mfma_flops_f16_pop 2": 7, - "mfma_flops_f32_pop 1": 8, - "mfma_flops_f32_pop 2": 9, - "mfma_flops_f64_pop 1": 10, - "mfma_flops_f64_pop 2": 11, - "mfma_flops_i8_pop 1": 12, - "mfma_flops_i8_pop 2": 13, - "valu_flops_pop 1": 0, - "valu_flops_pop 2": 1, - "valu_iops_pop 1": 2, - "valu_iops_pop 2": 3 - }, - "renameByName": { - "BW (Pct-of-Peak) 1": "BW Pct-of-Peak (Current)", - "BW (Pct-of-Peak) 2": "BW Pct-of-Peak (Baseline)", - "Bandwith (Pct-of-Peak)": "", - "Bandwith (Pct-of-Peak) 1": "BW Pct-of-Peak (Current)", - "Bandwith (Pct-of-Peak) 2": "BW Pct-of-Peak (Baseline) ", - "Bank Conflict Rate 1": "Bank Conflict Rate (Current)", - "Bank Conflict Rate 2": "Bank Conflict Rate (Baseline)", - "Cache Hit 1": "Cache Hit (Current)", - "Cache Hit 2": "Cache Hit (Baseline)", - "Latency (Cycles) 1": "Latency (Current) [Cycles]", - "Latency (Cycles) 2": "Latency (Baseline) [Cycles]", - "Stall 1": "Stall (Current)", - "Stall 2": "Stall (Baseline)", - "Util 1": "Util (Current)", - "Util 2": "Util (Baseline)", - "flops_pop": "FLOPs", - "flops_pop 1": "FLOPs (Current)", - "flops_pop 2": "FLOPs (Baseline)", - "iops_pop": "IOPs", - "iops_pop 1": "IOPs (Current)", - "iops_pop 2": "IOPs (Baseline)", - "mfma_flops_bf16_pop": "MFMA- BF16 (FLOPs)", - "mfma_flops_bf16_pop 1": "MFMA-BF16 (Cur)", - "mfma_flops_bf16_pop 2": "MFMA-BF16 (Baseline)", - "mfma_flops_f16_pop": "MFMA-F16 (FLOPs)", - "mfma_flops_f16_pop 1": "MFMA-F16 (Cur)", - "mfma_flops_f16_pop 2": "MFMA-F16 (Baseline)", - "mfma_flops_f32_pop": "MFMA-F32 (FLOPs)", - "mfma_flops_f32_pop 1": "MFMA-F32 (Cur)", - "mfma_flops_f32_pop 2": "MFMA-F32 (Baseline)", - "mfma_flops_f64_pop": "MFMA-F64 (FLOPs)", - "mfma_flops_f64_pop 1": "MFMA-F64 (Cur)", - "mfma_flops_f64_pop 2": "MFMA-F64 (Baseline)", - "mfma_flops_i8_pop": "MFMA-i8 (IOPs)", - "mfma_flops_i8_pop 1": "MFMA-I8 (Cur)", - "mfma_flops_i8_pop 2": "MFMA-I8 (Baseline)", - "valu_flops_pop": "VALU (FLOPs)", - "valu_flops_pop 1": "VALU FLOPs (Cur)", - "valu_flops_pop 2": "VALU FLOPs (Baseline)", - "valu_iops_pop": "VALU (IOPs)", - "valu_iops_pop 1": "VALU IOPs (Cur)", - "valu_iops_pop 2": "VALU IOPs (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 12, - "y": 10 - }, - "id": 257, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "bhNVuvBnk" - }, - "rawQuery": true, - "refId": "pmc_perf", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_ipcAvg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] }\n },\n \"min_ipcAvg\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] } \n },\n \"max_ipcAvg\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] }\n },\n \n \"avg_ipcIssue\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"min_ipcIssue\": {\n \"$min\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"max_ipcIssue\": {\n \"$max\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n\n \"avg_saluUtil\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU ] }\n },\n \"min_saluUtil\": {\n \"$min\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU ] }\n },\n \"max_saluUtil\": {\n \"$max\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU ] }\n },\n\n \"avg_valuUtil\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU ] }\n },\n \"min_valuUtil\": {\n \"$min\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU ] }\n },\n \"max_valuUtil\": {\n \"$max\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU ] }\n },\n\n \"avg_mfmaUtil\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $numCU, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n \"min_mfmaUtil\": {\n \"$min\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $numCU, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n \"max_mfmaUtil\": {\n \"$max\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $numCU, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n\n \"avg_mfmaInstrCycles\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n \"min_mfmaInstrCycles\": {\n \"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n \"max_mfmaInstrCycles\": {\n \"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n\n\n \"avg_unpredthreads_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \"min_unpredthreads_val\": {\n \"$min\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \"max_unpredthreads_val\": {\n \"$max\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n\n \"avg_instrFetchBand\": {\n \"$avg\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \"min_instrFetchBand\": {\n \"$min\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \"max_instrFetchBand\": {\n \"$max\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n }\n\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"IPC (Avg)\",\n \"Avg\": \"&avg_ipcAvg\",\n \"Min\": \"&min_ipcAvg\",\n \"Max\": \"&max_ipcAvg\",\n \"Unit\": \"Instr/cycle\"\n },\n {\n \"Metric\": \"IPC (Issue)\",\n \"Avg\": \"&avg_ipcIssue\",\n \"Min\": \"&min_ipcIssue\",\n \"Max\": \"&max_ipcIssue\",\n \"Unit\": \"Instr/cycle\"\n },\n {\n \"Metric\": \"SALU Util\",\n \"Avg\": \"&avg_saluUtil\",\n \"Min\": \"&min_saluUtil\",\n \"Max\": \"&max_saluUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"VALU Util\",\n \"Avg\": \"&avg_valuUtil\",\n \"Min\": \"&min_valuUtil\",\n \"Max\": \"&max_valuUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"VALU Active Threads\",\n \"Avg\": \"&avg_unpredthreads_val\",\n \"Min\": \"&min_unpredthreads_val\",\n \"Max\": \"&max_unpredthreads_val\",\n \"Unit\": \"Threads\"\n },\n {\n \"Metric\": \"MFMA Util\",\n \"Avg\": \"&avg_mfmaUtil\",\n \"Min\": \"&min_mfmaUtil\",\n \"Max\": \"&max_mfmaUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"MFMA Instr Cycles\",\n \"Avg\": \"&avg_mfmaInstrCycles\",\n \"Min\": \"&min_mfmaInstrCycles\",\n \"Max\": \"&max_mfmaInstrCycles\",\n \"Unit\": \"cycles/instr\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "pmc_perf2", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_ipcAvg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] }\n },\n \"min_ipcAvg\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] } \n },\n \"max_ipcAvg\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] }\n },\n \n \"avg_ipcIssue\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"min_ipcIssue\": {\n \"$min\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"max_ipcIssue\": {\n \"$max\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n\n \"avg_saluUtil\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU2 ] }\n },\n \"min_saluUtil\": {\n \"$min\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU2 ] }\n },\n \"max_saluUtil\": {\n \"$max\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU2 ] }\n },\n\n \"avg_valuUtil\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU2 ] }\n },\n \"min_valuUtil\": {\n \"$min\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU2 ] }\n },\n \"max_valuUtil\": {\n \"$max\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU2 ] }\n },\n\n\n \"avg_mfmaUtil\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $numCU2, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n \"min_mfmaUtil\": {\n \"$min\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $numCU2, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n \"max_mfmaUtil\": {\n \"$max\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $numCU2, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n\n \"avg_mfmaInstrCycles\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n \"min_mfmaInstrCycles\": {\n \"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n \"max_mfmaInstrCycles\": {\n \"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n\n \"avg_unpredthreads_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \"min_unpredthreads_val\": {\n \"$min\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \"max_unpredthreads_val\": {\n \"$max\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n\n \"avg_instrFetchBand\": {\n \"$avg\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \"min_instrFetchBand\": {\n \"$min\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \"max_instrFetchBand\": {\n \"$max\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"IPC (Avg)\",\n \"Avg 2\": \"&avg_ipcAvg\",\n \"Min 2\": \"&min_ipcAvg\",\n \"Max 2\": \"&max_ipcAvg\",\n \"Unit\": \"Instr/cycle\"\n },\n {\n \"Metric\": \"IPC (Issue)\",\n \"Avg 2\": \"&avg_ipcIssue\",\n \"Min 2\": \"&min_ipcIssue\",\n \"Max 2\": \"&max_ipcIssue\",\n \"Unit\": \"Instr/cycle\"\n },\n {\n \"Metric\": \"SALU Util\",\n \"Avg 2\": \"&avg_saluUtil\",\n \"Min 2\": \"&min_saluUtil\",\n \"Max 2\": \"&max_saluUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"VALU Util\",\n \"Avg 2\": \"&avg_valuUtil\",\n \"Min 2\": \"&min_valuUtil\",\n \"Max 2\": \"&max_valuUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"VALU Active Threads\",\n \"Avg 2\": \"&avg_unpredthreads_val\",\n \"Min 2\": \"&min_unpredthreads_val\",\n \"Max 2\": \"&max_unpredthreads_val\",\n \"Unit\": \"Threads\"\n },\n {\n \"Metric\": \"MFMA Util\",\n \"Avg 2\": \"&avg_mfmaUtil\",\n \"Min 2\": \"&min_mfmaUtil\",\n \"Max 2\": \"&max_mfmaUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"MFMA Instr Cycles\",\n \"Avg 2\": \"&avg_mfmaInstrCycles\",\n \"Min 2\": \"&min_mfmaInstrCycles\",\n \"Max 2\": \"&max_mfmaInstrCycles\",\n \"Unit\": \"cycles/instr\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Pipeline Stats", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Avg": 1, - "Avg 2": 2, - "Max": 5, - "Max 2": 6, - "Metric": 0, - "Min": 3, - "Min 2": 4, - "Unit": 7 - }, - "renameByName": { - "Avg 2": "Avg (Baseline)", - "Max 2": "Max (Baseline)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 111 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 117 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 135 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 112 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 83 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 118 - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 21 - }, - "id": 96, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_intOps\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n \"min_intOps\":{\"$min\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n \"max_intOps\":{\"$max\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n\n\n \"avg_flops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"min_flops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n\n \"max_flops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n\n\n \"avg_int8Ops\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n \"min_int8Ops\":{\"$min\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n \"max_int8Ops\":{\"$max\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n\n \"avg_int32Ops\":{\"$avg\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n \"min_int32Ops\":{\"$min\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n \"max_int32Ops\":{\"$max\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n\n \"avg_int64Ops\":{\"$avg\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n \"min_int64Ops\":{\"$min\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n \"max_int64Ops\":{\"$max\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n\n \"avg_f16Ops\":{\"$avg\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n \"min_f16Ops\":{\"$min\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n \"max_f16Ops\":{\"$max\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n\n\n\n \"avg_bf16Ops\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n \"min_bf16Ops\":{\"$min\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n \"max_bf16Ops\":{\"$max\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n\n \"avg_f32Ops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n \"min_f32Ops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n \"max_f32Ops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n\n \"avg_f64Ops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"min_f64Ops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"max_f64Ops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"FLOPs (Total)\",\n \"Avg\": \"&avg_flops\",\n \"Min\": \"&min_flops\",\n \"Max\": \"&max_flops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"INT8 OPs\",\n \"Avg\": \"&avg_int8Ops\",\n \"Min\": \"&min_int8Ops\",\n \"Max\": \"&max_int8Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"F16 OPs\",\n \"Avg\": \"&avg_f16Ops\",\n \"Min\": \"&min_f16Ops\",\n \"Max\": \"&max_f16Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"BF16 OPs\",\n \"Avg\": \"&avg_bf16Ops\",\n \"Min\": \"&min_bf16Ops\",\n \"Max\": \"&max_bf16Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n\n {\n \"Metric\": \"F32 OPs\",\n \"Avg\": \"&avg_f32Ops\",\n \"Min\": \"&min_f32Ops\",\n \"Max\": \"&max_f32Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"F64 OPs\",\n \"Avg\": \"&avg_f64Ops\",\n \"Min\": \"&min_f64Ops\",\n \"Max\": \"&max_f64Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_intOps\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n \"min_intOps\":{\"$min\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n \"max_intOps\":{\"$max\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n\n\n \"avg_flops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"min_flops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n\n \"max_flops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n\n\n \"avg_int8Ops\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n \"min_int8Ops\":{\"$min\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n \"max_int8Ops\":{\"$max\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n\n \"avg_int32Ops\":{\"$avg\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n \"min_int32Ops\":{\"$min\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n \"max_int32Ops\":{\"$max\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n\n \"avg_int64Ops\":{\"$avg\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n \"min_int64Ops\":{\"$min\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n \"max_int64Ops\":{\"$max\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n\n \"avg_f16Ops\":{\"$avg\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n \"min_f16Ops\":{\"$min\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n \"max_f16Ops\":{\"$max\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n\n\n\n \"avg_bf16Ops\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n \"min_bf16Ops\":{\"$min\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n \"max_bf16Ops\":{\"$max\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n\n \"avg_f32Ops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n \"min_f32Ops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n \"max_f32Ops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n\n \"avg_f64Ops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"min_f64Ops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"max_f64Ops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"FLOPs (Total)\",\n \"Avg\": \"&avg_flops\",\n \"Min\": \"&min_flops\",\n \"Max\": \"&max_flops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"INT8 OPs\",\n \"Avg\": \"&avg_int8Ops\",\n \"Min\": \"&min_int8Ops\",\n \"Max\": \"&max_int8Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"F16 OPs\",\n \"Avg\": \"&avg_f16Ops\",\n \"Min\": \"&min_f16Ops\",\n \"Max\": \"&max_f16Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"BF16 OPs\",\n \"Avg\": \"&avg_bf16Ops\",\n \"Min\": \"&min_bf16Ops\",\n \"Max\": \"&max_bf16Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n\n {\n \"Metric\": \"F32 OPs\",\n \"Avg\": \"&avg_f32Ops\",\n \"Min\": \"&min_f32Ops\",\n \"Max\": \"&max_f32Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"F64 OPs\",\n \"Avg\": \"&avg_f64Ops\",\n \"Min\": \"&min_f64Ops\",\n \"Max\": \"&max_f64Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Arithmetic Operations", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 1, - "Avg 2": 2, - "Max 1": 5, - "Max 2": 6, - "Metric 1": 0, - "Metric 2": 7, - "Min 1": 3, - "Min 2": 4, - "Unit 1": 9, - "Unit 2": 8 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 21 - }, - "id": 255, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "bhNVuvBnk" - }, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_VMEM", - "target": "${Workload1}.SQ_INST_LEVEL_VMEM.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_vmemLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n },\n \"min_vmemLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n },\n \"max_vmemLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"VMEM Latency\",\n \"Avg\": \"&avg_vmemLat\",\n \"Min\": \"&min_vmemLat\",\n \"Max\": \"&max_vmemLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_SMEM", - "target": "${Workload1}.SQ_INST_LEVEL_SMEM.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_smemLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n },\n \"min_smemLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n },\n \"max_smemLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"SMEM Latency\",\n \"Avg\":\"&avg_smemLat\",\n \"Min\":\"&min_smemLat\",\n \"Max\":\"&max_smemLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_IFETCH_LEVEL", - "target": "${Workload1}.SQ_IFETCH_LEVEL.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_instrFetchLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n },\n \"min_instrFetchLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n },\n \"max_instrFetchLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"Instr Fetch Latency\",\n \"Avg\":\"&avg_instrFetchLat\",\n \"Min\":\"&min_instrFetchLat\",\n \"Max\":\"&max_instrFetchLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_LDS", - "target": "${Workload1}.SQ_INST_LEVEL_LDS.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_ldsLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"min_ldsLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"max_ldsLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"LDS Latency\",\n \"Avg\":\"&avg_ldsLat\",\n \"Min\":\"&min_ldsLat\",\n \"Max\":\"&max_ldsLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_VMEM2", - "target": "${Workload2}.SQ_INST_LEVEL_VMEM.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_vmemLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n },\n \"min_vmemLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n },\n \"max_vmemLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"VMEM Latency\",\n \"Avg 2\": \"&avg_vmemLat\",\n \"Min 2\": \"&min_vmemLat\",\n \"Max 2\": \"&max_vmemLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_SMEM2", - "target": "${Workload2}.SQ_INST_LEVEL_SMEM.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_smemLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n },\n \"min_smemLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n },\n \"max_smemLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"SMEM Latency\",\n \"Avg 2\":\"&avg_smemLat\",\n \"Min 2\":\"&min_smemLat\",\n \"Max 2\":\"&max_smemLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_IFETCH_LEVEL2", - "target": "${Workload2}.SQ_IFETCH_LEVEL.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_instrFetchLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n },\n \"min_instrFetchLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n },\n \"max_instrFetchLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"Instr Fetch Latency\",\n \"Avg 2\":\"&avg_instrFetchLat\",\n \"Min 2\":\"&min_instrFetchLat\",\n \"Max 2\":\"&max_instrFetchLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_LDS2", - "target": "${Workload2}.SQ_INST_LEVEL_LDS.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_ldsLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"min_ldsLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"max_ldsLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"LDS Latency\",\n \"Avg 2\":\"&avg_ldsLat\",\n \"Min 2\":\"&min_ldsLat\",\n \"Max 2\":\"&max_ldsLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - } - ], - "title": "Memory Latencies", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Avg": 1, - "Avg 2": 2, - "Max": 5, - "Max 2": 6, - "Metric": 0, - "Min": 3, - "Min 2": 4, - "Unit": 7 - }, - "renameByName": { - "Avg": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Compute Unit - Compute Pipeline", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 10 - }, - "id": 98, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 11 - }, - "id": 205, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "/.*/", - "values": true - }, - "showUnfilled": true, - "text": { - "titleSize": 14, - "valueSize": 16 - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \n \"bconf_rate\": {\n \"$avg\": {\"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n {\"$multiply\": [\"&SQ_LDS_BANK_CONFLICT\", 3.125]},\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n } \n },\n \n \"bw_pop\": {\n \"$avg\": {\"$divide\": [\n {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]}, \n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]},\n \n {\"$multiply\": [$sclk, $numCU, 0.00128]}\n ]}\n },\n\n \"lds_util\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [ 100, \"&SQ_LDS_IDX_ACTIVE\" ]}, \n {\"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}\n ]}\n },\n\n \"lds_access_rate\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [200, \"&SQ_ACTIVE_INST_LDS\" ]}, \n {\"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}\n ]}\n }\n \n }},\n \n {\"$set\": {\n \"array\": [\n {\n \"Utilization\": \"&lds_util\",\n \"Access Rate\": \"&lds_access_rate\",\n \"Bandwith (Pct-of-Peak)\": \"&bw_pop\",\n \"Bank Conflict Rate\": \"&bconf_rate\"\n }\n \n ]\n }},\n \n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n \n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n \n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Local Data Share)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"bconf_rate\": {\n \"$avg\": {\"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n {\"$multiply\": [\"&SQ_LDS_BANK_CONFLICT\", 3.125]},\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n } \n },\n\n \"bw_pop\": {\n \"$avg\": {\"$divide\": [\n {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks2\"}\n ]}, \n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]},\n \n {\"$multiply\": [$sclk2, $numCU2, 0.00128]}\n ]}\n },\n \"lds_util\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [ 100, \"&SQ_LDS_IDX_ACTIVE\" ]}, \n {\"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}\n ]}\n },\n\n \"lds_access_rate\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [200, \"&SQ_ACTIVE_INST_LDS\" ]}, \n {\"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}\n ]}\n }\n\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Utilization\": \"&lds_util\",\n \"Access Rate\": \"&lds_access_rate\",\n \"Bandwith (Pct-of-Peak)\": \"&bw_pop\",\n \"Bank Conflict Rate\": \"&bconf_rate\"\n }\n\n ]\n }},\n\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n \n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - } - ], - "title": "Speed-of-Light: LDS", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Access Rate 1": 6, - "Access Rate 2": 7, - "Bandwith (Pct-of-Peak) 1": 0, - "Bandwith (Pct-of-Peak) 2": 1, - "Bank Conflict Rate 1": 2, - "Bank Conflict Rate 2": 3, - "Utilization 1": 4, - "Utilization 2": 5 - }, - "renameByName": { - "Access Rate 1": "Access Rate (Current)", - "Access Rate 2": "Access Rate (Baseline)", - "BW (Pct-of-Peak) 1": "BW Pct-of-Peak (Current)", - "BW (Pct-of-Peak) 2": "BW Pct-of-Peak (Baseline)", - "Bandwith (Pct-of-Peak)": "", - "Bandwith (Pct-of-Peak) 1": "BW Pct-of-Peak (Current)", - "Bandwith (Pct-of-Peak) 2": "BW Pct-of-Peak (Baseline) ", - "Bank Conflict Rate 1": "Bank Conflict Rate (Current)", - "Bank Conflict Rate 2": "Bank Conflict Rate (Baseline)", - "Cache Hit 1": "Cache Hit (Current)", - "Cache Hit 2": "Cache Hit (Baseline)", - "Latency (Cycles) 1": "Latency (Current) [Cycles]", - "Latency (Cycles) 2": "Latency (Baseline) [Cycles]", - "Stall 1": "Stall (Current)", - "Stall 2": "Stall (Baseline)", - "Util 1": "Util (Current)", - "Util 2": "Util (Baseline)", - "Utilization 1": "Util (Current)", - "Utilization 2": "Util (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "min": -100000000000000000000, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 114 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 107 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 128 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 115 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 138 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 141 - } - ] - } - ] - }, - "gridPos": { - "h": 12, - "w": 12, - "x": 12, - "y": 11 - }, - "id": 100, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_waveCycles\": {\n \"$avg\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ] }\n },\n \"min_waveCycles\": {\n \"$min\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ] }\n },\n \"max_waveCycles\": {\n \"$max\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ] }\n },\n \n \"avg_ldsInstrs\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \"min_ldsInstrs\": {\n \"$min\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \"max_ldsInstrs\": {\n \"$max\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \n \"avg_indexAccesses\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \"min_indexAccesses\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \"max_indexAccesses\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \n \"avg_atomicCycles\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \"min_atomicCycles\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \"max_atomicCycles\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \n \"avg_bankConflicts\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \"min_bankConflicts\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \"max_bankConflicts\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \n \"avg_addrConflicts\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \"min_addrConflicts\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \"max_addrConflicts\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \n \n \"avg_unalignedStall\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \"min_unalignedStall\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \"max_unalignedStall\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \n \"avg_memViolations\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \"min_memViolations\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \"max_memViolations\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \n \"avg_bconf_per_op\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \"min_bconf_per_op\": {\n \"$min\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \"max_bconf_per_op\": {\n \"$max\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \n \"avg_bw\": {\n \"$avg\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$L2Banks\"}]}, \n \"&denom\"\n ]\n }\n },\n \"min_bw\": {\n \"$min\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$L2Banks\"}]}, \n \"&denom\"\n ]\n }\n },\n \"max_bw\": {\n \"$max\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$L2Banks\"}]}, \n \"&denom\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Wave Cycles\",\n \"avg\": \"&avg_waveCycles\",\n \"min\": \"&min_waveCycles\",\n \"max\": \"&max_waveCycles\",\n \"Unit\": \"Cycles/Wave\"\n },\n {\n \"metric\": \"LDS Instrs\",\n \"avg\": \"&avg_ldsInstrs\",\n \"min\": \"&min_ldsInstrs\",\n \"max\": \"&max_ldsInstrs\",\n \"Unit\":{\"$concat\": [\"Instr \", $normUnit]} \n },\n {\n \"metric\": \"Bandwidth\",\n \"avg\": \"&avg_bw\",\n \"min\": \"&min_bw\",\n \"max\": \"&max_bw\",\n \"Unit\": {\"$concat\": [\"Bytes \", $normUnit]}\n },\n {\n \"metric\": \"Bank Conficts/Access\",\n \"avg\": \"&avg_bconf_per_op\",\n \"min\": \"&min_bconf_per_op\",\n \"max\": \"&max_bconf_per_op\",\n \"Unit\": \"Conflicts/Access\"\n },\n {\n \"metric\": \"Index Accesses\",\n \"avg\": \"&avg_indexAccesses\",\n \"min\": \"&min_indexAccesses\",\n \"max\": \"&max_indexAccesses\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Cycles\",\n \"avg\": \"&avg_atomicCycles\",\n \"min\": \"&min_atomicCycles\",\n \"max\": \"&max_atomicCycles\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Bank Conflict\",\n \"avg\": \"&avg_bankConflicts\",\n \"min\": \"&min_bankConflicts\",\n \"max\": \"&max_bankConflicts\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Addr Conflict\",\n \"avg\": \"&avg_addrConflicts\",\n \"min\": \"&min_addrConflicts\",\n \"max\": \"&max_addrConflicts\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Unaligned Stall\",\n \"avg\": \"&avg_unalignedStall\",\n \"min\": \"&min_unalignedStall\",\n \"max\": \"&max_unalignedStall\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Mem Violations\",\n \"avg\": \"&avg_memViolations\",\n \"min\": \"&min_memViolations\",\n \"max\": \"&max_memViolations\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_INST_LEVEL_LDS\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"avg_ldsLatency\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"min_ldsLatency\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"max_ldsLatency\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"metric\": \"LDS Latency\",\n \"avg\": \"&avg_ldsLatency\",\n \"min\": \"&min_ldsLatency\",\n \"max\": \"&max_ldsLatency\",\n \"Unit\": \"Cycles\"\n }}\n ]\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}}, \n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Local Data Share)\"}}\n \n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_waveCycles\": {\n \"$avg\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ] }\n },\n \"min_waveCycles\": {\n \"$min\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ] }\n },\n \"max_waveCycles\": {\n \"$max\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ] }\n },\n \n \"avg_ldsInstrs\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \"min_ldsInstrs\": {\n \"$min\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \"max_ldsInstrs\": {\n \"$max\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \n \"avg_indexAccesses\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \"min_indexAccesses\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \"max_indexAccesses\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \n \"avg_atomicCycles\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \"min_atomicCycles\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \"max_atomicCycles\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \n \"avg_bankConflicts\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \"min_bankConflicts\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \"max_bankConflicts\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \n \"avg_addrConflicts\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \"min_addrConflicts\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \"max_addrConflicts\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \"avg_unalignedStall\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \"min_unalignedStall\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \"max_unalignedStall\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \n \"avg_memViolations\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \"min_memViolations\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \"max_memViolations\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \n \n \"avg_bconf_per_op\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \"min_bconf_per_op\": {\n \"$min\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \"max_bconf_per_op\": {\n \"$max\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \n \"avg_bw\": {\n \"$avg\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$L2Banks\"}]}, \n \"&denom\"\n ]\n }\n },\n \"min_bw\": {\n \"$min\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$L2Banks\"}]}, \n \"&denom\"\n ]\n }\n },\n \"max_bw\": {\n \"$max\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$L2Banks\"}]}, \n \"&denom\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Wave Cycles\",\n \"avg\": \"&avg_waveCycles\",\n \"min\": \"&min_waveCycles\",\n \"max\": \"&max_waveCycles\",\n \"Unit\": \"Cycles/Wave\"\n },\n {\n \"metric\": \"LDS Instrs\",\n \"avg\": \"&avg_ldsInstrs\",\n \"min\": \"&min_ldsInstrs\",\n \"max\": \"&max_ldsInstrs\",\n \"Unit\":{\"$concat\": [\"Instr \", $normUnit]} \n },\n {\n \"metric\": \"Bandwidth\",\n \"avg\": \"&avg_bw\",\n \"min\": \"&min_bw\",\n \"max\": \"&max_bw\",\n \"Unit\": {\"$concat\": [\"Bytes \", $normUnit]}\n },\n {\n \"metric\": \"Bank Conficts/Access\",\n \"avg\": \"&avg_bconf_per_op\",\n \"min\": \"&min_bconf_per_op\",\n \"max\": \"&max_bconf_per_op\",\n \"Unit\": \"Conflicts/Access\"\n },\n {\n \"metric\": \"Index Accesses\",\n \"avg\": \"&avg_indexAccesses\",\n \"min\": \"&min_indexAccesses\",\n \"max\": \"&max_indexAccesses\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Cycles\",\n \"avg\": \"&avg_atomicCycles\",\n \"min\": \"&min_atomicCycles\",\n \"max\": \"&max_atomicCycles\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Bank Conflict\",\n \"avg\": \"&avg_bankConflicts\",\n \"min\": \"&min_bankConflicts\",\n \"max\": \"&max_bankConflicts\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Addr Conflict\",\n \"avg\": \"&avg_addrConflicts\",\n \"min\": \"&min_addrConflicts\",\n \"max\": \"&max_addrConflicts\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Unaligned Stall\",\n \"avg\": \"&avg_unalignedStall\",\n \"min\": \"&min_unalignedStall\",\n \"max\": \"&max_unalignedStall\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Mem Violations\",\n \"avg\": \"&avg_memViolations\",\n \"min\": \"&min_memViolations\",\n \"max\": \"&max_memViolations\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_INST_LEVEL_LDS\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Local Data Share)\"}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"avg_ldsLatency\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"min_ldsLatency\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"max_ldsLatency\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"metric\": \"LDS Latency\",\n \"avg\": \"&avg_ldsLatency\",\n \"min\": \"&min_ldsLatency\",\n \"max\": \"&max_ldsLatency\",\n \"Unit\": \"Cycles\"\n }}\n ]\n }}\n ]);", - "type": "table" - } - ], - "title": "LDS Stats", - "transformations": [ - { - "id": "concatenate", - "options": { - "frameNameLabel": "frame", - "frameNameMode": "field" - } - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Unit 2": true, - "metric 2": true - }, - "indexByName": { - "Unit 1": 9, - "Unit 2": 8, - "avg 1": 1, - "avg 2": 2, - "max 1": 5, - "max 2": 6, - "metric 1": 0, - "metric 2": 7, - "min 1": 3, - "min 2": 4 - }, - "renameByName": { - "avg 1": "Avg (Current)", - "avg 2": "Avg (Baseline)", - "max 1": "Max (Current)", - "max 2": "Max (Baseline)", - "min 1": "Min (Current)", - "min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Local Data Share (LDS)", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 11 - }, - "id": 44, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 12 - }, - "id": 48, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "/.*/", - "values": true - }, - "showUnfilled": true, - "text": {} - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"reqBW_pop\": {\n \"$avg\": {\n \"$divide\": [\n {\"$multiply\": [\"&SQC_ICACHE_REQ\", 100000]}, \n {\"$multiply\": [ {\"$multiply\": [$sclk, $numSQC]}, {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]} ]}\n ]\n }\n },\n\n \"cacheHit\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQC_ICACHE_HITS\", 100] }, { \"$add\": [ \"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\" ] } ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"Bandwidth\": \"&reqBW_pop\",\n \"Cache Hit\": \"&cacheHit\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Cache)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"reqBW_pop\": {\n \"$avg\": {\n \"$divide\": [\n {\"$multiply\": [\"&SQC_ICACHE_REQ\", 100000]}, \n {\"$multiply\": [ {\"$multiply\": [$sclk2, $numSQC2]}, {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]} ]}\n ]\n }\n },\n\n \"cacheHit\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQC_ICACHE_HITS\", 100] }, { \"$add\": [ \"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] } ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"Bandwidth\": \"&reqBW_pop\",\n \"Cache Hit\": \"&cacheHit\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "Speed-of-Light: Instruction Cache ", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "BW (Pct-of-Peak) 1": 4, - "BW (Pct-of-Peak) 2": 5, - "Cache Hit 1": 6, - "Cache Hit 2": 7, - "Stall 1": 2, - "Stall 2": 3, - "Util 1": 0, - "Util 2": 1 - }, - "renameByName": { - "BW (Pct-of-Peak) 1": "BW Pct-of-Peak (Current)", - "BW (Pct-of-Peak) 2": "BW Pct-of-Peak (Baseline)", - "BW Pct-of-Peak 1": "BW Pct-of-Peak (Current)", - "BW Pct-of-Peak 2": "BW Pct-of-Peak (Baseline)", - "Bandwidth 1": "Bandwidth (Current)", - "Bandwidth 2": "Bandwidth (Baseline)", - "Cache Hit 1": "Cache Hit (Current)", - "Cache Hit 2": "Cache Hit (Baseline)", - "Stall 1": "Stall (Current)", - "Stall 2": "Stall (Baseline)", - "Util 1": "Util (Current)", - "Util 2": "Util (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 12 - }, - "id": 259, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "bhNVuvBnk" - }, - "rawQuery": true, - "refId": "pmc_perf", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_req\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n \"min_req\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n \"max_req\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n\n \"avg_hits\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n \"min_hits\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n \"max_hits\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n\n \"avg_misses\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n \"min_misses\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n \"max_misses\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n\n \"avg_misses_dup\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"min_misses_dup\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"max_misses_dup\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n\n\n \"avg_cacheHit\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n },\n \"min_cacheHit\": {\n \"$min\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n },\n \"max_cacheHit\": {\n \"$max\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean\": \"&avg_req\",\n \"Min\": \"&min_req\",\n \"Max\": \"&max_req\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Hits\",\n \"Mean\": \"&avg_hits\",\n \"Min\": \"&min_hits\",\n \"Max\": \"&max_hits\",\n \"Unit\": {\"$concat\": [\"Hits \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Non Duplicated\",\n \"Mean\": \"&avg_misses\",\n \"Min\": \"&min_misses\",\n \"Max\": \"&max_misses\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Duplicated\",\n \"Mean\": \"&avg_misses_dup\",\n \"Min\": \"&min_misses_dup\",\n \"Max\": \"&max_misses_dup\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n \n {\n \"Metric\": \"Cache Hit\",\n \"Mean\": \"&avg_cacheHit\",\n \"Min\": \"&min_cacheHit\",\n \"Max\": \"&max_cacheHit\",\n \"Unit\": \"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "pmc_perf2", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Cache)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_req\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n \"min_req\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n \"max_req\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n\n \"avg_hits\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n \"min_hits\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n \"max_hits\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n\n \"avg_misses\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n \"min_misses\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n \"max_misses\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n\n \"avg_misses_dup\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"min_misses_dup\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"max_misses_dup\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n\n\n \"avg_cacheHit\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n },\n \"min_cacheHit\": {\n \"$min\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n },\n \"max_cacheHit\": {\n \"$max\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean 2\": \"&avg_req\",\n \"Min 2\": \"&min_req\",\n \"Max 2\": \"&max_req\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Hits\",\n \"Mean 2\": \"&avg_hits\",\n \"Min 2\": \"&min_hits\",\n \"Max 2\": \"&max_hits\",\n \"Unit\": {\"$concat\": [\"Hits \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Non Duplicated\",\n \"Mean 2\": \"&avg_misses\",\n \"Min 2\" : \"&min_misses\",\n \"Max 2\": \"&max_misses\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Duplicated\",\n \"Mean 2\": \"&avg_misses_dup\",\n \"Min 2\": \"&min_misses_dup\",\n \"Max 2\": \"&max_misses_dup\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n {\n \"Metric\": \"Cache Hit\",\n \"Mean 2\": \"&avg_cacheHit\",\n \"Min 2\": \"&min_cacheHit\",\n \"Max 2\": \"&max_cacheHit\",\n \"Unit\": \"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Instruction Cache Accesses", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Max": 5, - "Max 2": 6, - "Mean": 1, - "Mean 2": 2, - "Metric": 0, - "Min": 3, - "Min 2": 4, - "Unit": 7 - }, - "renameByName": { - "L1I Metric": "", - "Max": "Max (Current)", - "Max 2": "Max (Baseline)", - "Mean": "Avg (Current)", - "Mean 2": "Avg (Baseline)", - "Min": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Instruction Cache", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 12 - }, - "id": 203, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "L1K-TC BW - GB/s" - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 13 - }, - "id": 54, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showUnfilled": true, - "text": { - "titleSize": 14, - "valueSize": 16 - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"reqBW_pop\": {\n \"$avg\": {\n \"$divide\": [\n {\"$multiply\": [\"&SQC_DCACHE_REQ\", 100000]}, \n {\"$multiply\": [ {\"$multiply\": [$sclk, $numSQC]}, {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]} ]}\n ]\n }\n },\n \"cacheHit\": {\n \"$avg\": { \n \"$cond\":[\n {\"$ne\": [{ \"$add\": [ \"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0 ]},\n {\"$divide\": [{ \"$multiply\": [\"&SQC_DCACHE_HITS\", 100] }, { \"$add\": [ \"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } ]},\n null\n ]\n }\n }\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Bandwidth\": \"&reqBW_pop\",\n \"Cache Hit\": \"&cacheHit\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "sY628IJnz" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Scalar L1D Cache)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"reqBW_pop\": {\n \"$avg\": {\n \"$divide\": [\n {\"$multiply\": [\"&SQC_DCACHE_REQ\", 100000]}, \n {\"$multiply\": [ {\"$multiply\": [$sclk2, $numSQC2]}, {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]} ]}\n ]\n }\n },\n \"cacheHit\": {\n \"$avg\": { \n \"$cond\":[\n {\"$ne\": [{ \"$add\": [ \"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0 ]},\n {\"$divide\": [{ \"$multiply\": [\"&SQC_DCACHE_HITS\", 100] }, { \"$add\": [ \"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } ]},\n null\n ]\n }\n }\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Bandwidth\": \"&reqBW_pop\",\n \"Cache Hit\": \"&cacheHit\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "Speed-of-Light: Scalar L1D Cache", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "BW Pct-of-Peak 1": 0, - "BW Pct-of-Peak 2": 1, - "Cache Hit 1": 2, - "Cache Hit 2": 3, - "Stall 1": 6, - "Stall 2": 7, - "Util 1": 4, - "Util 2": 5 - }, - "renameByName": { - "BW Pct-of-Peak 1": "BW Pct-of-Peak (Current)", - "BW Pct-of-Peak 2": "BW Pct-of-Peak (Baseline)", - "Bandwidth 1": "Bandwidth (Current)", - "Bandwidth 2": "Bandwidth (Baseline)", - "Cache Hit 1": "Cache Hit (Current)", - "Cache Hit 2": "Cache Hit (Baseline)", - "Stall 1": "Stall (Current)", - "Stall 2": "Stall (Baseline)", - "Util 1": "Util (Current)", - "Util 2": "Util (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [] - }, - "gridPos": { - "h": 14, - "w": 12, - "x": 12, - "y": 13 - }, - "id": 261, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "pmc_perf", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n \"req_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n \"req_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n\n \"hits_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n \"hits_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n \"hits_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n\n \"misses_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_MISSES\", \"&denom\"] }\n },\n \"misses_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_MISSES\", \"&denom\"] }\n },\n \"misses_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_MISSES\", \"&denom\"] }\n },\n\n \"dup_misses_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"dup_misses_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"dup_misses_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n\n\n \"cacheHit_avg\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n \"cacheHit_min\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n \"cacheHit_max\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n\n \"readReq_avg\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n \"readReq_min\": {\n \"$min\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n \"readReq_max\": {\n \"$max\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n\n\n \"atomicReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n \"atomicReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n \"atomicReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n\n \"read1d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n \"read1d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n \"read1d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n\n \"read2d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n \"read2d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n \"read2d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n\n \"read4d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n \"read4d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n \"read4d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n\n \"read8d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n \"read8d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n \"read8d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n\n \"read16d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n },\n \"read16d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n },\n \"read16d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean\": \"&req_avg\",\n \"Min\": \"&req_min\",\n \"Max\": \"&req_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Hits\",\n \"Mean\": \"&hits_avg\",\n \"Min\": \"&hits_min\",\n \"Max\": \"&hits_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Non Duplicated\",\n \"Mean\": \"&misses_avg\",\n \"Min\": \"&misses_min\",\n \"Max\": \"&misses_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Misses- Duplicated\",\n \"Mean\": \"&dup_misses_avg\",\n \"Min\": \"&dup_misses_min\",\n \"Max\": \"&dup_misses_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Cache Hit\",\n \"Mean\": \"&cacheHit_avg\",\n \"Min\": \"&cacheHit_min\",\n \"Max\": \"&cacheHit_max\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"Read Req (Total)\",\n \"Mean\": \"&readReq_avg\",\n \"Min\": \"&readReq_min\",\n \"Max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Atomic Req\",\n \"Mean\": \"&atomicReq_avg\",\n \"Min\": \"&atomicReq_min\",\n \"Max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (1 DWord)\",\n \"Mean\": \"&read1d_avg\",\n \"Min\": \"&read1d_min\",\n \"Max\": \"&read1d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (2 DWord)\",\n \"Mean\": \"&read2d_avg\",\n \"Min\": \"&read2d_min\",\n \"Max\": \"&read2d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (4 DWord)\",\n \"Mean\": \"&read4d_avg\",\n \"Min\": \"&read4d_min\",\n \"Max\": \"&read4d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (8 DWord)\",\n \"Mean\": \"&read8d_avg\",\n \"Min\": \"&read8d_min\",\n \"Max\": \"&read8d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (16 DWord)\",\n \"Mean\": \"&read16d_avg\",\n \"Min\": \"&read16d_min\",\n \"Max\": \"&read16d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "pmc_perf2", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Scalar L1D Cache)\"}}\n }}, \n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n \"req_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n \"req_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n\n \"hits_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n \"hits_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n \"hits_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n\n \"dup_misses_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"dup_misses_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"dup_misses_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n\n\n \"cacheHit_avg\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n \"cacheHit_min\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n \"cacheHit_max\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n\n \"readReq_avg\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n \"readReq_min\": {\n \"$min\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n \"readReq_max\": {\n \"$max\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n\n \"atomicReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n \"atomicReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n \"atomicReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n\n\n \"read1d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n \"read1d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n \"read1d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n\n \"read2d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n \"read2d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n \"read2d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n\n \"read4d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n \"read4d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n \"read4d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n\n \"read8d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n \"read8d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n \"read8d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n\n \"read16d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n },\n \"read16d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n },\n \"read16d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean 2\": \"&req_avg\",\n \"Min 2\": \"&req_min\",\n \"Max 2\": \"&req_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Hits\",\n \"Mean 2\": \"&hits_avg\",\n \"Min 2\": \"&hits_min\",\n \"Max 2\": \"&hits_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Non Duplicated\",\n \"Mean 2\": \"&misses_avg\",\n \"Min 2\": \"&misses_min\",\n \"Max 2\": \"&misses_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Misses- Duplicated\",\n \"Mean 2\": \"&dup_misses_avg\",\n \"Min 2\": \"&dup_misses_min\",\n \"Max 2\": \"&dup_misses_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Cache Hit\",\n \"Mean 2\": \"&cacheHit_avg\",\n \"Min 2\": \"&cacheHit_min\",\n \"Max 2\": \"&cacheHit_max\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"Read Req (Total)\",\n \"Mean 2\": \"&readReq_avg\",\n \"Min 2\": \"&readReq_min\",\n \"Max 2\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Write Req (Total)\",\n \"Mean 2\": \"&writeReq_avg\",\n \"Min 2\": \"&writeReq_min\",\n \"Max 2\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Atomic Req\",\n \"Mean 2\": \"&atomicReq_avg\",\n \"Min 2\": \"&atomicReq_min\",\n \"Max 2\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (1 DWord)\",\n \"Mean 2\": \"&read1d_avg\",\n \"Min 2\": \"&read1d_min\",\n \"Max 2\": \"&read1d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (2 DWord)\",\n \"Mean 2\": \"&read2d_avg\",\n \"Min 2\": \"&read2d_min\",\n \"Max 2\": \"&read2d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (4 DWord)\",\n \"Mean 2\": \"&read4d_avg\",\n \"Min 2\": \"&read4d_min\",\n \"Max 2\": \"&read4d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (8 DWord)\",\n \"Mean 2\": \"&read8d_avg\",\n \"Min 2\": \"&read8d_min\",\n \"Max 2\": \"&read8d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (16 DWord)\",\n \"Mean 2\": \"&read16d_avg\",\n \"Min 2\": \"&read16d_min\",\n \"Max 2\": \"&read16d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Scalar L1D Cache Accesses", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Max": 5, - "Max 2": 6, - "Mean": 1, - "Mean 2": 2, - "Metric": 0, - "Min": 3, - "Min 2": 4, - "Unit": 7 - }, - "renameByName": { - "Max": "Max (Current)", - "Max 2": "Max (Baseline)", - "Mean": "Avg (Current)", - "Mean 2": "Avg (Baseline)", - "Min": "Min (Current)", - "Min 2": "Min (Baseline)", - "Unit": "" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 135 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 105 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 112 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 134 - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 20 - }, - "id": 52, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"readReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n \"readReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n \"readReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n\n \"writeReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n \"writeReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n \"writeReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n\n \"atomicReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n \"atomicReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n \"atomicReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n\n \"tc2l1k_stall_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n },\n \"tc2l1k_stall_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n },\n \"tc2l1k_stall_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Read Req\",\n \"Mean\": \"&readReq_avg\",\n \"Min\": \"&readReq_min\",\n \"Max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Write Req\",\n \"Mean\": \"&writeReq_avg\",\n \"Min\": \"&writeReq_min\",\n \"Max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Atomic Req\",\n \"Mean\": \"&atomicReq_avg\",\n \"Min\": \"&atomicReq_min\",\n \"Max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Stall\",\n \"Mean\": \"&tc2l1k_stall_avg\",\n \"Min\": \"&tc2l1k_stall_min\",\n \"Max\": \"&tc2l1k_stall_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}}, \n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Scalar L1D Cache)\"}}\n }},\n {\"$addFields\": {\n \n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"readReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n \"readReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n \"readReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n\n \"writeReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n \"writeReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n \"writeReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n\n \"atomicReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n \"atomicReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n \"atomicReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n\n \"tc2l1k_stall_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n },\n \"tc2l1k_stall_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n },\n \"tc2l1k_stall_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Read Req\",\n \"Mean\": \"&readReq_avg\",\n \"Min\": \"&readReq_min\",\n \"Max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Write Req\",\n \"Mean\": \"&writeReq_avg\",\n \"Min\": \"&writeReq_min\",\n \"Max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Atomic Req\",\n \"Mean\": \"&atomicReq_avg\",\n \"Min\": \"&atomicReq_min\",\n \"Max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Stall\",\n \"Mean\": \"&tc2l1k_stall_avg\",\n \"Min\": \"&tc2l1k_stall_min\",\n \"Max\": \"&tc2l1k_stall_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - } - ], - "title": "Scalar L1D Cache - L2 Interface", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Max 1": 7, - "Max 2": 8, - "Mean 1": 3, - "Mean 2": 4, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Mean 1": "Avg (Current)", - "Mean 2": "Avg (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Scalar L1 Data Cache", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 13 - }, - "id": 130, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 133 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 112 - } - ] - } - ] - }, - "gridPos": { - "h": 17, - "w": 12, - "x": 0, - "y": 14 - }, - "id": 132, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"taBusy_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}] }},\n \"taBusy_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}] }},\n \"taBusy_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}] }},\n\n \"tc2ta_addrStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"tc2ta_addrStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"tc2ta_addrStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n\n \"tc2ta_dataStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"tc2ta_dataStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"tc2ta_dataStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n\n \"td2ta_addrStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"td2ta_addrStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"td2ta_addrStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n\n \"totalInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n \"totalInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n \"totalInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n\n \"flatInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n \"flatInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n \"flatInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n\n \"flatReadInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatReadInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatReadInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"flatWriteInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatWriteInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatWriteInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"flatAtomicInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatAtomicInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatAtomicInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferReadInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferReadInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferReadInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferWriteInstr_avg\":{\"$avg\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferWriteInstr_min\":{\"$min\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferWriteInstr_max\":{\"$max\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferAtomicInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferAtomicInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferAtomicInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"buffTotal_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n \"buffTotal_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n \"buffTotal_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n\n \"buffCoscaleRead_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleRead_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleRead_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n\n \"buffCoscaleWrite_avg\":{\"$avg\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleWrite_min\":{\"$min\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleWrite_max\":{\"$max\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"TA Busy\",\n \"avg\": \"&taBusy_avg\",\n \"min\": \"&taBusy_min\",\n \"max\": \"&taBusy_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TA Addr Stall\",\n \"avg\": \"&tc2ta_addrStall_avg\",\n \"min\": \"&tc2ta_addrStall_min\",\n \"max\": \"&tc2ta_addrStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TA Data Stall\",\n \"avg\": \"&tc2ta_dataStall_avg\",\n \"min\": \"&tc2ta_dataStall_min\",\n \"max\": \"&tc2ta_dataStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TD2TA Addr Stall\",\n \"avg\": \"&td2ta_addrStall_avg\",\n \"min\": \"&td2ta_addrStall_min\",\n \"max\": \"&td2ta_addrStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Total Instructions\",\n \"avg\": \"&totalInstr_avg\",\n \"min\": \"&totalInstr_min\",\n \"max\": \"&totalInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Instr\",\n \"avg\": \"&flatInstr_avg\",\n \"min\": \"&flatInstr_min\",\n \"max\": \"&flatInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Read Instr\",\n \"avg\": \"&flatReadInstr_avg\",\n \"min\": \"&flatReadInstr_min\",\n \"max\": \"&flatReadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Write Instr\",\n \"avg\": \"&flatWriteInstr_avg\",\n \"min\": \"&flatWriteInstr_min\",\n \"max\": \"&flatWriteInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Atomic Instr\",\n \"avg\": \"&flatAtomicInstr_avg\",\n \"min\": \"&flatAtomicInstr_min\",\n \"max\": \"&flatAtomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Instr\",\n \"avg\": \"&bufferInstr_avg\",\n \"min\": \"&bufferInstr_min\",\n \"max\": \"&bufferInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Read Instr\",\n \"avg\": \"&bufferReadInstr_avg\",\n \"min\": \"&bufferReadInstr_min\",\n \"max\": \"&bufferReadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Write Instr\",\n \"avg\": \"&bufferWriteInstr_avg\",\n \"min\": \"&bufferWriteInstr_min\",\n \"max\": \"&bufferWriteInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Atomic Instr\",\n \"avg\": \"&bufferAtomicInstr_avg\",\n \"min\": \"&bufferAtomicInstr_min\",\n \"max\": \"&bufferAtomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Total Cylces\",\n \"avg\": \"&buffTotal_avg\",\n \"min\": \"&buffTotal_min\",\n \"max\": \"&buffTotal_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Coalesced Read\",\n \"avg\": \"&buffCoscaleRead_avg\",\n \"min\": \"&buffCoscaleRead_min\",\n \"max\": \"&buffCoscaleRead_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Coalesced Write\",\n \"avg\": \"&buffCoscaleWrite_avg\",\n \"min\": \"&buffCoscaleWrite_min\",\n \"max\": \"&buffCoscaleWrite_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Texture Addr and Data)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"taBusy_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}] }},\n \"taBusy_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}] }},\n \"taBusy_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}] }},\n\n \"tc2ta_addrStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"tc2ta_addrStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"tc2ta_addrStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n\n \"tc2ta_dataStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"tc2ta_dataStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"tc2ta_dataStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n\n \"td2ta_addrStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"td2ta_addrStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"td2ta_addrStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n\n \"totalInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n \"totalInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n \"totalInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n\n \"flatInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n \"flatInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n \"flatInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n\n \"flatReadInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatReadInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatReadInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"flatWriteInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatWriteInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatWriteInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"flatAtomicInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatAtomicInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatAtomicInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferReadInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferReadInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferReadInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferWriteInstr_avg\":{\"$avg\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferWriteInstr_min\":{\"$min\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferWriteInstr_max\":{\"$max\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferAtomicInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferAtomicInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferAtomicInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"buffTotal_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n \"buffTotal_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n \"buffTotal_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n\n \"buffCoscaleRead_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleRead_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleRead_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n\n \"buffCoscaleWrite_avg\":{\"$avg\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleWrite_min\":{\"$min\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleWrite_max\":{\"$max\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"TA Busy\",\n \"avg\": \"&taBusy_avg\",\n \"min\": \"&taBusy_min\",\n \"max\": \"&taBusy_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TA Addr Stall\",\n \"avg\": \"&tc2ta_addrStall_avg\",\n \"min\": \"&tc2ta_addrStall_min\",\n \"max\": \"&tc2ta_addrStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TA Data Stall\",\n \"avg\": \"&tc2ta_dataStall_avg\",\n \"min\": \"&tc2ta_dataStall_min\",\n \"max\": \"&tc2ta_dataStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TD2TA Addr Stall\",\n \"avg\": \"&td2ta_addrStall_avg\",\n \"min\": \"&td2ta_addrStall_min\",\n \"max\": \"&td2ta_addrStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Total Instructions\",\n \"avg\": \"&totalInstr_avg\",\n \"min\": \"&totalInstr_min\",\n \"max\": \"&totalInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Instr\",\n \"avg\": \"&flatInstr_avg\",\n \"min\": \"&flatInstr_min\",\n \"max\": \"&flatInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Read Instr\",\n \"avg\": \"&flatReadInstr_avg\",\n \"min\": \"&flatReadInstr_min\",\n \"max\": \"&flatReadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Write Instr\",\n \"avg\": \"&flatWriteInstr_avg\",\n \"min\": \"&flatWriteInstr_min\",\n \"max\": \"&flatWriteInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Atomic Instr\",\n \"avg\": \"&flatAtomicInstr_avg\",\n \"min\": \"&flatAtomicInstr_min\",\n \"max\": \"&flatAtomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Instr\",\n \"avg\": \"&bufferInstr_avg\",\n \"min\": \"&bufferInstr_min\",\n \"max\": \"&bufferInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Read Instr\",\n \"avg\": \"&bufferReadInstr_avg\",\n \"min\": \"&bufferReadInstr_min\",\n \"max\": \"&bufferReadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Write Instr\",\n \"avg\": \"&bufferWriteInstr_avg\",\n \"min\": \"&bufferWriteInstr_min\",\n \"max\": \"&bufferWriteInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Atomic Instr\",\n \"avg\": \"&bufferAtomicInstr_avg\",\n \"min\": \"&bufferAtomicInstr_min\",\n \"max\": \"&bufferAtomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Total Cylces\",\n \"avg\": \"&buffTotal_avg\",\n \"min\": \"&buffTotal_min\",\n \"max\": \"&buffTotal_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Coalesced Read\",\n \"avg\": \"&buffCoscaleRead_avg\",\n \"min\": \"&buffCoscaleRead_min\",\n \"max\": \"&buffCoscaleRead_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Coalesced Write\",\n \"avg\": \"&buffCoscaleWrite_avg\",\n \"min\": \"&buffCoscaleWrite_min\",\n \"max\": \"&buffCoscaleWrite_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "TA", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Unit 2": true, - "metric 2": true - }, - "indexByName": { - "Unit 1": 9, - "Unit 2": 2, - "avg 1": 3, - "avg 2": 4, - "max 1": 7, - "max 2": 8, - "metric 1": 0, - "metric 2": 1, - "min 1": 5, - "min 2": 6 - }, - "renameByName": { - "avg 1": "Avg (Current)", - "avg 2": "Avg (Baseline)", - "max 1": "Max (Current)", - "max 2": "Max (Baseline)", - "min 1": "Min (Current)", - "min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 124 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 120 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 135 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 130 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 108 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 136 - } - ] - } - ] - }, - "gridPos": { - "h": 17, - "w": 12, - "x": 12, - "y": 14 - }, - "id": 134, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"tdBusy_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}] }},\n \"tdBusy_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}] }},\n \"tdBusy_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}] }},\n\n \"tc2tdStall_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"tc2tdStall_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"tc2tdStall_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n\n \"spi2td_stall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"spi2td_stall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"spi2td_stall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n\n \"coscaleInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n \"coscaleInstr_min\":{\"$min\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n \"coscaleInstr_max\":{\"$max\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n\n \"loadInstr_avg\":{\"$avg\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n \"loadInstr_min\":{\"$min\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n \"loadInstr_max\":{\"$max\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n\n \"storeInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n \"storeInstr_min\":{\"$min\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n \"storeInstr_max\":{\"$max\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n\n \"atomicInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}},\n \"atomicInstr_min\":{\"$min\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}},\n \"atomicInstr_max\":{\"$max\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"TD Busy\",\n \"avg\": \"&tdBusy_avg\",\n \"min\": \"&tdBusy_min\",\n \"max\": \"&tdBusy_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TD Stall\",\n \"avg\": \"&tc2tdStall_avg\",\n \"min\": \"&tc2tdStall_min\",\n \"max\": \"&tc2tdStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"SPI2TD Stall\",\n \"avg\": \"&spi2td_stall_avg\",\n \"min\": \"&spi2td_stall_min\",\n \"max\": \"&spi2td_stall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Coalescable Instr\",\n \"avg\": \"&coscaleInstr_avg\",\n \"min\": \"&coscaleInstr_min\",\n \"max\": \"&coscaleInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Load Instr\",\n \"avg\": \"&loadInstr_avg\",\n \"min\": \"&loadInstr_min\",\n \"max\": \"&loadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Store Instr\",\n \"avg\": \"&storeInstr_avg\",\n \"min\": \"&storeInstr_min\",\n \"max\": \"&storeInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Instr\",\n \"avg\": \"&atomicInstr_avg\",\n \"min\": \"&atomicInstr_min\",\n \"max\": \"&atomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Texture Addr and Data)\"}}\n }},\n {\"$addFields\": {\n \n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"tdBusy_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}] }},\n \"tdBusy_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}] }},\n \"tdBusy_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}] }},\n\n \"tc2tdStall_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"tc2tdStall_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"tc2tdStall_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n\n \"spi2td_stall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"spi2td_stall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"spi2td_stall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n\n \"coscaleInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n \"coscaleInstr_min\":{\"$min\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n \"coscaleInstr_max\":{\"$max\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n\n \"loadInstr_avg\":{\"$avg\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n \"loadInstr_min\":{\"$min\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n \"loadInstr_max\":{\"$max\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n\n \"storeInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n \"storeInstr_min\":{\"$min\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n \"storeInstr_max\":{\"$max\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n\n \"atomicInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}},\n \"atomicInstr_min\":{\"$min\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}},\n \"atomicInstr_max\":{\"$max\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"TD Busy\",\n \"avg\": \"&tdBusy_avg\",\n \"min\": \"&tdBusy_min\",\n \"max\": \"&tdBusy_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TD Stall\",\n \"avg\": \"&tc2tdStall_avg\",\n \"min\": \"&tc2tdStall_min\",\n \"max\": \"&tc2tdStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"SPI2TD Stall\",\n \"avg\": \"&spi2td_stall_avg\",\n \"min\": \"&spi2td_stall_min\",\n \"max\": \"&spi2td_stall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Coalescable Instr\",\n \"avg\": \"&coscaleInstr_avg\",\n \"min\": \"&coscaleInstr_min\",\n \"max\": \"&coscaleInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Load Instr\",\n \"avg\": \"&loadInstr_avg\",\n \"min\": \"&loadInstr_min\",\n \"max\": \"&loadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Store Instr\",\n \"avg\": \"&storeInstr_avg\",\n \"min\": \"&storeInstr_min\",\n \"max\": \"&storeInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Instr\",\n \"avg\": \"&atomicInstr_avg\",\n \"min\": \"&atomicInstr_min\",\n \"max\": \"&atomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "TD", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Unit 2": true, - "metric 2": true - }, - "indexByName": { - "Unit 1": 9, - "Unit 2": 2, - "avg 1": 3, - "avg 2": 4, - "max 1": 7, - "max 2": 8, - "metric 1": 0, - "metric 2": 1, - "min 1": 5, - "min 2": 6 - }, - "renameByName": { - "avg 1": "Avg (Current)", - "avg 2": "Avg (Baseline)", - "max 1": "Max (Current)", - "max 2": "Max (Baseline)", - "min 1": "Min (Current)", - "min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Texture Addresser and Texture Data (TA/TD)", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 14 - }, - "id": 112, - "panels": [ - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 13, - "w": 12, - "x": 0, - "y": 15 - }, - "id": 165, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showUnfilled": true, - "text": {} - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"bufferCoalescing_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_TOTAL_ACCESSES_sum\", 0] },\n { \"$divide\": [{\"$multiply\": [\"&TA_TOTAL_WAVEFRONTS_sum\", 64, 100]}, {\"$multiply\": [\"&TCP_TOTAL_ACCESSES_sum\", 4]}] },\n null\n ]\n }\n },\n \"cacheUtil_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0] },\n { \"$divide\": [{\"$multiply\": [\"&TCP_GATE_EN2_sum\", 100]}, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }\n },\n \"cacheBW_pct\": {\n \"$avg\": { \"$divide\": [ {\"$multiply\":[100, \"&TCP_TOTAL_CACHE_ACCESSES_sum\"]}, \n {\"$multiply\":[\"&GRBM_GUI_ACTIVE\", $numCU, 4]} \n ] \n }\n },\n \"cacheHit_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0] },\n { \"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]\n }] \n },\n null\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Buffer Coalescing\": \"&bufferCoalescing_pct\",\n \"Cache Util\": \"&cacheUtil_pct\",\n \"Cache BW\": \"&cacheBW_pct\",\n \"Cache Hit\": \"&cacheHit_pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Vector L1D Cache)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"bufferCoalescing_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_TOTAL_ACCESSES_sum\", 0] },\n { \"$divide\": [{\"$multiply\": [\"&TA_TOTAL_WAVEFRONTS_sum\", 64, 100]}, {\"$multiply\": [\"&TCP_TOTAL_ACCESSES_sum\", 4]}] },\n null\n ]\n }\n },\n \"cacheUtil_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0] },\n { \"$divide\": [{\"$multiply\": [\"&TCP_GATE_EN2_sum\", 100]}, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }\n },\n \"cacheBW_pct\": {\n \"$avg\": { \"$divide\": [ {\"$multiply\":[100, \"&TCP_TOTAL_CACHE_ACCESSES_sum\"]}, \n {\"$multiply\":[\"&GRBM_GUI_ACTIVE\", $numCU2, 4]} \n ] \n }\n },\n \"cacheHit_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0] },\n { \"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]\n }] \n },\n null\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Buffer Coalescing\": \"&bufferCoalescing_pct\",\n \"Cache Util\": \"&cacheUtil_pct\",\n \"Cache BW\": \"&cacheBW_pct\",\n \"Cache Hit\": \"&cacheHit_pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Speed-of-Light: Vector L1D Cache", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "128B Read Combining 1": 6, - "128B Read Combining 2": 7, - "Buffer Coalescing 1": 0, - "Buffer Coalescing 2": 1, - "Cache BW 1": 2, - "Cache BW 2": 3, - "Cache Hit 1": 4, - "Cache Hit 2": 5 - }, - "renameByName": { - "128B Read Combining 1": "128B Read Combining (Current)", - "128B Read Combining 2": "128B Read Combining(Baseline)", - "Buffer Coalescing 1": "Buf Coalescing (Current)", - "Buffer Coalescing 2": "Buf Coalescing (Baseline)", - "Cache BW 1": "Cache BW (Current)", - "Cache BW 2": "Cache BW (Baseline)", - "Cache Hit 1": "Cache Hit (Current)", - "Cache Hit 2": "Cache Hit (Baseline)", - "Cache Util 1": "Cache Util (Current)", - "Cache Util 2": "Cache Util (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "color-background" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "transparent" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percent" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 52 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 199 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 121 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 144 - } - ] - } - ] - }, - "gridPos": { - "h": 13, - "w": 12, - "x": 12, - "y": 15 - }, - "id": 116, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"l2Pending_avg\": {\"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"l2Pending_min\": {\"$min\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"l2Pending_max\": {\"$max\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n\n\n \"tcr2tcp_Stall_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"tcr2tcp_Stall_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"tcr2tcp_Stall_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \n \"readTagRam_Stall_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \"readTagRam_Stall_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \"readTagRam_Stall_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \n \"writeTagRam_Stall_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"writeTagRam_Stall_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"writeTagRam_Stall_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \n \n \"atomicTagRam_Stall_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }}, \n \"atomicTagRam_Stall_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }}, \n \"atomicTagRam_Stall_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }} \n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Stalled on L2 Data\",\n \"Mean\": \"&l2Pending_avg\",\n \"Min\": \"&l2Pending_min\",\n \"Max\": \"&l2Pending_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Stalled on L2 Req\",\n \"Mean\": \"&tcr2tcp_Stall_avg\",\n \"Min\":\"&tcr2tcp_Stall_min\",\n \"Max\":\"&tcr2tcp_Stall_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Tag RAM Stall (Read)\",\n \"Mean\": \"&readTagRam_Stall_avg\",\n \"Min\": \"&readTagRam_Stall_min\",\n \"Max\": \"&readTagRam_Stall_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Tag RAM Stall (Write)\",\n \"Mean\": \"&writeTagRam_Stall_avg\",\n \"Min\": \"&writeTagRam_Stall_min\",\n \"Max\": \"&writeTagRam_Stall_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Tag RAM Stall (Atomic)\",\n \"Mean\": \"&atomicTagRam_Stall_avg\",\n \"Min\": \"&atomicTagRam_Stall_min\",\n \"Max\": \"&atomicTagRam_Stall_max\",\n \"unit\":\"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Vector L1D Cache)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"l2Pending_avg\": {\"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"l2Pending_min\": {\"$min\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"l2Pending_max\": {\"$max\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n\n \"tcr2tcp_Stall_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"tcr2tcp_Stall_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"tcr2tcp_Stall_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \n \"readTagRam_Stall_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \"readTagRam_Stall_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \"readTagRam_Stall_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \n \"writeTagRam_Stall_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"writeTagRam_Stall_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"writeTagRam_Stall_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \n \n \"atomicTagRam_Stall_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }}, \n \"atomicTagRam_Stall_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }}, \n \"atomicTagRam_Stall_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }} \n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Stalled on L2 Data\",\n \"Mean\": \"&l2Pending_avg\",\n \"Min\": \"&l2Pending_min\",\n \"Max\": \"&l2Pending_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Stalled on L2 Req\",\n \"Mean\": \"&tcr2tcp_Stall_avg\",\n \"Min\":\"&tcr2tcp_Stall_min\",\n \"Max\":\"&tcr2tcp_Stall_max\",\n \"unit\":\"pct\"\n },\n\n {\n \"Metric\": \"Tag RAM Stall (Read)\",\n \"Mean\": \"&readTagRam_Stall_avg\",\n \"Min\": \"&readTagRam_Stall_min\",\n \"Max\": \"&readTagRam_Stall_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Tag RAM Stall (Write)\",\n \"Mean\": \"&writeTagRam_Stall_avg\",\n \"Min\": \"&writeTagRam_Stall_min\",\n \"Max\": \"&writeTagRam_Stall_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Tag RAM Stall (Atomic)\",\n \"Mean\": \"&atomicTagRam_Stall_avg\",\n \"Min\": \"&atomicTagRam_Stall_min\",\n \"Max\": \"&atomicTagRam_Stall_max\",\n \"unit\":\"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Vector L1D Cache Stalls", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Units 2": true, - "unit 2": true - }, - "indexByName": { - "Max 1": 6, - "Max 2": 7, - "Mean 1": 2, - "Mean 2": 3, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 4, - "Min 2": 5, - "unit 1": 9, - "unit 2": 8 - }, - "renameByName": { - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Mean 1": "Avg (Current)", - "Mean 2": "Avg (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)", - "unit 1": "Unit" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 116 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 78 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 139 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 50 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "max" - }, - "properties": [ - { - "id": "custom.width", - "value": 148 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 127 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 111 - } - ] - } - ] - }, - "gridPos": { - "h": 18, - "w": 12, - "x": 0, - "y": 28 - }, - "id": 128, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n\n \"totalReq_avg\":{\"$avg\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n \"totalReq_min\":{\"$min\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n \"totalReq_max\":{\"$max\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n\n \"readReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n \"readReq_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n \"readReq_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n\n \"writeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n\n \"atomicReq_avg\":{\"$avg\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n \"atomicReq_min\":{\"$min\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n \"atomicReq_max\":{\"$max\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n\n \"cacheAccess_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n \"cacheAccess_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n \"cacheAccess_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n\n \"cacheHits_avg\":{\"$avg\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \"cacheHits_min\":{\"$min\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \"cacheHits_max\":{\"$max\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \n \"cacheHitRate_avg\":{\"$avg\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n \"cacheHitRate_min\":{\"$min\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n \"cacheHitRate_max\":{\"$max\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n\n\n \"l2TCRRead_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n \"l2TCRRead_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n \"l2TCRRead_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n\n\n \"l2Write_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n \"l2Write_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n \"l2Write_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n\n \"l2Atomic_avg\":{\"$avg\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n \"l2Atomic_min\":{\"$min\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n \"l2Atomic_max\":{\"$max\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n\n \"invalidate_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n \"invalidate_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n \"invalidate_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n\n\n \"l1Latency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n \"l1Latency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n \"l1Latency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n\n\n \"l2ReadLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n \"l2ReadLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n \"l2ReadLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n\n \"l2WriteLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }},\n \"l2WriteLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }},\n \"l2WriteLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }}\n\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Total Req\",\n \"avg\": \"&totalReq_avg\",\n \"min\": \"&totalReq_min\",\n \"max\": \"&totalReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Read Req\",\n \"avg\": \"&readReq_avg\",\n \"min\": \"&readReq_min\",\n \"max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Write Req\",\n \"avg\": \"&writeReq_avg\",\n \"min\": \"&writeReq_min\",\n \"max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Req\",\n \"avg\": \"&atomicReq_avg\",\n \"min\": \"&atomicReq_min\",\n \"max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache Accesses\",\n \"avg\": \"&cacheAccess_avg\",\n \"min\": \"&cacheAccess_min\",\n \"max\": \"&cacheAccess_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hits\",\n \"avg\": \"&cacheHits_avg\",\n \"min\": \"&cacheHits_min\",\n \"max\": \"&cacheHits_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hit Rate\",\n \"avg\": \"&cacheHitRate_avg\",\n \"min\": \"&cacheHitRate_min\",\n \"max\": \"&cacheHitRate_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Invalidate\",\n \"avg\": \"&invalidate_avg\",\n \"min\": \"&invalidate_min\",\n \"max\": \"&invalidate_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"L1-TCR Read\",\n \"avg\": \"&l2TCRRead_avg\",\n \"min\": \"&l2TCRRead_min\",\n \"max\": \"&l2TCRRead_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Write\",\n \"avg\": \"&l2Write_avg\",\n \"min\": \"&l2Write_min\",\n \"max\": \"&l2Write_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Atomic\",\n \"avg\": \"&l2Atomic_avg\",\n \"min\": \"&l2Atomic_min\",\n \"max\": \"&l2Atomic_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1 Access Latency\",\n \"avg\": \"&l1Latency_avg\",\n \"min\": \"&l1Latency_min\",\n \"max\": \"&l1Latency_max\",\n \"Unit\": \"Cycles\"\n },\n {\n \"metric\": \"L1-L2 Read Latency\",\n \"avg\": \"&l2ReadLatency_avg\",\n \"min\": \"&l2ReadLatency_min\",\n \"max\": \"&l2ReadLatency_max\",\n \"Unit\": \"Cycles\"\n },\n {\n \"metric\": \"L1-L2 Write Latency\",\n \"avg\": \"&l2WriteLatency_avg\",\n \"min\": \"&l2WriteLatency_min\",\n \"max\": \"&l2WriteLatency_max\",\n \"Unit\": \"Cycles\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Vector L1D Cache)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n\n \"totalReq_avg\":{\"$avg\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n \"totalReq_min\":{\"$min\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n \"totalReq_max\":{\"$max\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n\n \"readReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n \"readReq_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n \"readReq_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n\n \"writeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n\n \"atomicReq_avg\":{\"$avg\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n \"atomicReq_min\":{\"$min\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n \"atomicReq_max\":{\"$max\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n\n \"cacheAccess_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n \"cacheAccess_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n \"cacheAccess_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n\n \"cacheHits_avg\":{\"$avg\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \"cacheHits_min\":{\"$min\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \"cacheHits_max\":{\"$max\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \n \"cacheHitRate_avg\":{\"$avg\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n \"cacheHitRate_min\":{\"$min\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n \"cacheHitRate_max\":{\"$max\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n\n\n \"l2TCRRead_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n \"l2TCRRead_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n \"l2TCRRead_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n\n\n \"l2Write_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n \"l2Write_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n \"l2Write_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n\n \"l2Atomic_avg\":{\"$avg\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n \"l2Atomic_min\":{\"$min\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n \"l2Atomic_max\":{\"$max\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n\n\n\n \"invalidate_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n \"invalidate_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n \"invalidate_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n\n\n \"l1Latency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n \"l1Latency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n \"l1Latency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n\n\n \"l2ReadLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n \"l2ReadLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n \"l2ReadLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n\n \"l2WriteLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }},\n \"l2WriteLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }},\n \"l2WriteLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Total Req\",\n \"avg\": \"&totalReq_avg\",\n \"min\": \"&totalReq_min\",\n \"max\": \"&totalReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Read Req\",\n \"avg\": \"&readReq_avg\",\n \"min\": \"&readReq_min\",\n \"max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Write Req\",\n \"avg\": \"&writeReq_avg\",\n \"min\": \"&writeReq_min\",\n \"max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Req\",\n \"avg\": \"&atomicReq_avg\",\n \"min\": \"&atomicReq_min\",\n \"max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache Accesses\",\n \"avg\": \"&cacheAccess_avg\",\n \"min\": \"&cacheAccess_min\",\n \"max\": \"&cacheAccess_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hits\",\n \"avg\": \"&cacheHits_avg\",\n \"min\": \"&cacheHits_min\",\n \"max\": \"&cacheHits_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hit Rate\",\n \"avg\": \"&cacheHitRate_avg\",\n \"min\": \"&cacheHitRate_min\",\n \"max\": \"&cacheHitRate_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Invalidate\",\n \"avg\": \"&invalidate_avg\",\n \"min\": \"&invalidate_min\",\n \"max\": \"&invalidate_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"L1-TCR Read\",\n \"avg\": \"&l2TCRRead_avg\",\n \"min\": \"&l2TCRRead_min\",\n \"max\": \"&l2TCRRead_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Write\",\n \"avg\": \"&l2Write_avg\",\n \"min\": \"&l2Write_min\",\n \"max\": \"&l2Write_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Atomic\",\n \"avg\": \"&l2Atomic_avg\",\n \"min\": \"&l2Atomic_min\",\n \"max\": \"&l2Atomic_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1 Access Latency\",\n \"avg\": \"&l1Latency_avg\",\n \"min\": \"&l1Latency_min\",\n \"max\": \"&l1Latency_max\",\n \"Unit\": \"Cycles\"\n },\n {\n \"metric\": \"L1-L2 Read Latency\",\n \"avg\": \"&l2ReadLatency_avg\",\n \"min\": \"&l2ReadLatency_min\",\n \"max\": \"&l2ReadLatency_max\",\n \"Unit\": \"Cycles\"\n },\n {\n \"metric\": \"L1-L2 Write Latency\",\n \"avg\": \"&l2WriteLatency_avg\",\n \"min\": \"&l2WriteLatency_min\",\n \"max\": \"&l2WriteLatency_max\",\n \"Unit\": \"Cycles\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Vector L1D Cache Accesses", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Unit 2": true, - "metric 2": true - }, - "indexByName": { - "Unit 1": 9, - "Unit 2": 8, - "avg 1": 1, - "avg 2": 2, - "max 1": 5, - "max 2": 6, - "metric 1": 0, - "metric 2": 7, - "min 1": 3, - "min 2": 4 - }, - "renameByName": { - "avg 1": "Avg (Current)", - "avg 2": "Avg (Baseline)", - "max 1": "Max (Current)", - "max 2": "Max (Baseline)", - "min 1": "Min (Current)", - "min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "Aggregate": "last", - "BarPadding": 30, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupColName": "Coherency", - "GroupCols": 2, - "GroupGap": 5, - "GroupLabelColor": "#FF9830", - "GroupLabelFontSize": "100%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 0, - "Horizontal": true, - "LabelColName": "Xfer", - "LabelColor": "#ffffff", - "LabelFontSize": "100%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 0, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#FADE2A", - "ValueDecimals": 0, - "ValueFontSize": "100%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:172", - "Col": 2, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Mean", - "Selected": true - } - ], - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 28 - }, - "id": 120, - "pluginVersion": "8.2.1", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "tlh8EwUnk" - }, - "rawQuery": true, - "refId": "A", - "target": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n\n \"readNC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_NC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readNC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_NC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readNC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_NC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readUC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_UC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readUC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_UC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readUC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_UC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readCC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_CC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readCC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_CC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readCC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_CC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readRW_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_RW_READ_REQ_sum\", \"&denom\"] }\n },\n \"readRW_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_RW_READ_REQ_sum\", \"&denom\"] }\n },\n \"readRW_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_RW_READ_REQ_sum\", \"&denom\"] }\n },\n \n \"writeNC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_NC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeNC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_NC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeNC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_NC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeUC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_UC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeUC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_UC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeUC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_UC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeCC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_CC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeCC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_CC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeCC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_CC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeRW_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_RW_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeRW_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_RW_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeRW_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_RW_WRITE_REQ_sum\", \"&denom\"] }\n },\n \n \"atomicNC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_NC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicNC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_NC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicNC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_NC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicUC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_UC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicUC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_UC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicUC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_UC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicCC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_CC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicCC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_CC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicCC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_CC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicRW_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_RW_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicRW_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_RW_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicRW_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_RW_ATOMIC_REQ_sum\", \"&denom\"] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Xfer\": \"Read\",\n \"Coherency\": \"NC\",\n \"Mean\": \"&readNC_avg\",\n \"Min\": \"&readNC_min\",\n \"Max\": \"&readNC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Read\",\n \"Coherency\": \"UC\",\n \"Mean\": \"&readUC_avg\",\n \"Min\": \"&readUC_min\",\n \"Max\": \"&readUC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Read\",\n \"Coherency\": \"CC\",\n \"Mean\": \"&readCC_avg\",\n \"Min\": \"&readCC_min\",\n \"Max\": \"&readCC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Read\",\n \"Coherency\": \"RW\",\n \"Mean\": \"&readRW_avg\",\n \"Min\": \"&readRW_min\",\n \"Max\": \"&readRW_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Write\",\n \"Coherency\": \"RW\",\n \"Mean\": \"&writeRW_avg\",\n \"Min\": \"&writeRW_min\",\n \"Max\": \"&writeRW_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Write\",\n \"Coherency\": \"NC\",\n \"Mean\": \"&writeNC_avg\",\n \"Min\": \"&writeNC_min\",\n \"Max\": \"&writeNC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Write\",\n \"Coherency\": \"UC\",\n \"Mean\": \"&writeUC_avg\",\n \"Min\": \"&writeUC_min\",\n \"Max\": \"&writeUC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Write\",\n \"Coherency\": \"CC\",\n \"Mean\": \"&writeCC_avg\",\n \"Min\": \"&writeCC_min\",\n \"Max\": \"&writeCC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n\n {\n \"Xfer\": \"Atomic\",\n \"Coherency\": \"NC\",\n \"Mean\": \"&atomicNC_avg\",\n \"Min\": \"&atomicNC_min\",\n \"Max\": \"&atomicNC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Atomic\",\n \"Coherency\": \"UC\",\n \"Mean\": \"&atomicUC_avg\",\n \"Min\": \"&atomicUC_min\",\n \"Max\": \"&atomicUC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Atomic\",\n \"Coherency\": \"CC\",\n \"Mean\": \"&atomicCC_avg\",\n \"Min\": \"&atomicCC_min\",\n \"Max\": \"&atomicCC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Atomic\",\n \"Coherency\": \"RW\",\n \"Mean\": \"&atomicRW_avg\",\n \"Min\": \"&atomicRW_min\",\n \"Max\": \"&atomicRW_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Vector L1D - L2 Transactions Req $normUnit", - "transparent": true, - "type": "michaeldmoore-multistat-panel" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Units" - }, - "properties": [ - { - "id": "custom.width", - "value": 75 - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 36 - }, - "id": 124, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\":{\"$avg\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n \"req_min\":{\"$min\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n \"req_max\":{\"$max\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n\n\n \"hitRatio_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n \"hitRatio_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n \"hitRatio_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n\n \"hits_avg\":{\"$avg\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n \"hits_min\":{\"$min\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n \"hits_max\":{\"$max\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n\n \"missesTrans_avg\":{\"$avg\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n \"missesTrans_min\":{\"$min\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n \"missesTrans_max\":{\"$max\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n\n \"missesPermis_avg\":{\"$avg\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }},\n \"missesPermis_min\":{\"$min\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }},\n \"missesPermis_max\":{\"$max\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean\": \"&req_avg\",\n \"Min\":\"&req_min\",\n \"Max\":\"&req_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Hit Ratio\",\n \"Mean\": \"&hitRatio_avg\",\n \"Min\":\"&hitRatio_min\",\n \"Max\":\"&hitRatio_max\",\n \"Units\":\"pct\"\n },\n {\n \"Metric\": \"Hits\",\n \"Mean\": \"&hits_avg\",\n \"Min\":\"&hits_min\",\n \"Max\":\"&hits_max\",\n \"Units\":{ \"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Misses (Translation)\",\n \"Mean\": \"&missesTrans_avg\",\n \"Min\":\"&missesTrans_min\",\n \"Max\":\"&missesTrans_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Misses (Permission)\",\n \"Mean\": \"&missesPermis_avg\",\n \"Min\":\"&missesPermis_min\",\n \"Max\":\"&missesPermis_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Vector L1D Cache)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\":{\"$avg\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n \"req_min\":{\"$min\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n \"req_max\":{\"$max\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n\n\n \"hitRatio_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n \"hitRatio_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n \"hitRatio_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n\n \"hits_avg\":{\"$avg\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n \"hits_min\":{\"$min\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n \"hits_max\":{\"$max\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n\n \"missesTrans_avg\":{\"$avg\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n \"missesTrans_min\":{\"$min\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n \"missesTrans_max\":{\"$max\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n\n \"missesPermis_avg\":{\"$avg\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }},\n \"missesPermis_min\":{\"$min\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }},\n \"missesPermis_max\":{\"$max\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean\": \"&req_avg\",\n \"Min\":\"&req_min\",\n \"Max\":\"&req_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Hit Ratio\",\n \"Mean\": \"&hitRatio_avg\",\n \"Min\":\"&hitRatio_min\",\n \"Max\":\"&hitRatio_max\",\n \"Units\":\"pct\"\n },\n {\n \"Metric\": \"Hits\",\n \"Mean\": \"&hits_avg\",\n \"Min\":\"&hits_min\",\n \"Max\":\"&hits_max\",\n \"Units\":{ \"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Misses (Translation)\",\n \"Mean\": \"&missesTrans_avg\",\n \"Min\":\"&missesTrans_min\",\n \"Max\":\"&missesTrans_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Misses (Permission)\",\n \"Mean\": \"&missesPermis_avg\",\n \"Min\":\"&missesPermis_min\",\n \"Max\":\"&missesPermis_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Vector L1D Addr Translation", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Units 2": true - }, - "indexByName": { - "Max 1": 7, - "Max 2": 8, - "Mean 1": 3, - "Mean 2": 4, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Units 1": 9, - "Units 2": 2 - }, - "renameByName": { - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Mean 1": "Avg (Current)", - "Mean 2": "Avg (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Vector L1 Data Cache", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 15 - }, - "id": 56, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "L2-EA Rd BW - GB/s" - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2-EA Rd BW " - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - }, - { - "id": "max", - "value": 1638 - }, - { - "id": "color" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2 Util" - }, - "properties": [ - { - "id": "unit", - "value": "percent" - }, - { - "id": "thresholds", - "value": { - "mode": "percentage", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - } - }, - { - "id": "max", - "value": 100 - }, - { - "id": "min", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Cache Hit" - }, - "properties": [ - { - "id": "max", - "value": 100 - }, - { - "id": "unit", - "value": "percent" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - } - }, - { - "id": "min", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2-EA Wr BW" - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - }, - { - "id": "max", - "value": 1638 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2-EA Rd BW" - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - }, - { - "id": "max", - "value": 1638 - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 16 - }, - "id": 64, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "text": { - "titleSize": 14, - "valueSize": 16 - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n{\"$group\": {\n \"_id\": null,\n \"L2Util\": {\n \"$avg\": { \n \n \"$divide\": [\n {\"$multiply\": [\"&TCC_BUSY_sum\", 100]},\n {\"$multiply\": [{\"$toInt\":\"$L2Banks\"}, \"&GRBM_GUI_ACTIVE\"] }\n ] \n } \n },\n\n \"cacheHit\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n 0\n ] \n }},\n\n \"l2eaRdBW\": {\n \"$avg\": { \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \n \"l2eaWrBW\": {\n \"$avg\": { \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"L2 Util\": \"&L2Util\",\n \"Cache Hit\": \"&cacheHit\",\n \"L2-EA Rd BW\": \"&l2eaRdBW\",\n \"L2-EA Wr BW\": \"&l2eaWrBW\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(L2 Cache)\"}}\n }},\n\n{\"$group\": {\n \"_id\": null,\n \"L2Util\": {\n \"$avg\": { \n \"$divide\": [\n {\"$multiply\": [\"&TCC_BUSY_sum\", 100]},\n {\"$multiply\": [{\"$toInt\":\"$L2Banks2\"}, \"&GRBM_GUI_ACTIVE\"] }\n ] \n } \n },\n\n \"cacheHit\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n 0\n ] \n }},\n\n \"l2eaRdBW\": {\n \"$avg\": { \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \n \"l2eaWrBW\": {\n \"$avg\": { \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"L2 Util\": \"&L2Util\",\n \"Cache Hit\": \"&cacheHit\",\n \"L2-EA Rd BW\": \"&l2eaRdBW\",\n \"L2-EA Wr BW\": \"&l2eaWrBW\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Speed-of-Light: L2 Cache", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Cache Hit 1": 2, - "Cache Hit 2": 3, - "L2 Util 1": 0, - "L2 Util 2": 1, - "L2-EA Rd BW 1": 4, - "L2-EA Rd BW 2": 5, - "L2-EA Wr BW 1": 6, - "L2-EA Wr BW 2": 7 - }, - "renameByName": { - "Cache Hit 1": "L2 Cache Hit (Current)", - "Cache Hit 2": "L2 Cache Hit (Baseline)", - "L2 Util 1": "L2 Util (Current)", - "L2 Util 2": "L2 Util (Baseline)", - "L2-EA Rd BW - GB/s 1": "L2-EA RD BW (Current)", - "L2-EA Rd BW - GB/s 2": "L2-EA RD BW (baseline)", - "L2-EA Rd BW 1": "L2-EA Rd BW (Current)", - "L2-EA Rd BW 2": "L2-EA Rd BW (Baseline)", - "L2-EA Wr BW - GB/s 1": "L2-EA WR BW (Current)", - "L2-EA Wr BW - GB/s 2": "L2-EA WR BW (Baseline)", - "L2-EA Wr BW 1": "L2-EA Wr BW (Current)", - "L2-EA Wr BW 2": "L2-EA Wr BW (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 106 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 114 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 148 - } - ] - } - ] - }, - "gridPos": { - "h": 16, - "w": 12, - "x": 12, - "y": 16 - }, - "id": 62, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": \"null\",\n \"readStall_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"readStall_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"readStall_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n\n \"writeStall_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"writeStall_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"writeStall_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n\n \n \"readBW_avg\":{\"$avg\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n \"readBW_min\":{\"$min\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n \"readBW_max\":{\"$max\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n\n \"writeBW_avg\":{\"$avg\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n \"writeBW_min\":{\"$min\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n \"writeBW_max\":{\"$max\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n\n \"read32_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n \"read32_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n \"read32_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n\n \"read32Uncached_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"read32Uncached_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"read32Uncached_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n\n \"read64_avg\":{\"$avg\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n \"read64_min\":{\"$min\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n \"read64_max\":{\"$max\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n\n \"hbmRead_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmRead_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmRead_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n\n \"write32_avg\":{\"$avg\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n \"write32_min\":{\"$min\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n \"write32_max\":{\"$max\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n\n \"write32Uncached_avg\": {\"$avg\":{\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"write32Uncached_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"write32Uncached_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n\n \"write64_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n \"write64_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n \"write64_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n\n \"hbmWrite_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmWrite_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmWrite_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n\n \"readLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n \"readLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n \"readLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n\n \"writeLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n \"writeLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n \"writeLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n\n \"atomicOpLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }},\n \"atomicOpLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }},\n \"atomicOpLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Read BW\",\n \"Avg\": \"&readBW_avg\",\n \"Min\":\"&readBW_min\",\n \"Max\":\"&readBW_max\",\n \"Unit\":{\"$concat\": [\"Bytes \", $normUnit] }\n },\n {\n \"Metric\": \"Write BW\",\n \"Avg\": \"&writeBW_avg\",\n \"Min\":\"&writeBW_min\",\n \"Max\":\"&writeBW_max\",\n \"Unit\":{\"$concat\": [\"Bytes \", $normUnit] }\n },\n {\n \"Metric\": \"Read (32B)\",\n \"Avg\": \"&read32_avg\",\n \"Min\":\"&read32_min\",\n \"Max\":\"&read32_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read (Uncached 32B)\",\n \"Avg\": \"&read32Uncached_avg\",\n \"Min\":\"&read32Uncached_min\",\n \"Max\":\"&read32Uncached_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read (64B)\",\n \"Avg\": \"&read64_avg\",\n \"Min\":\"&read64_min\",\n \"Max\":\"&read64_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"HBM Read\",\n \"Avg\": \"&hbmRead_avg\",\n \"Min\":\"&hbmRead_min\",\n \"Max\":\"&hbmRead_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (32B)\",\n \"Avg\": \"&write32_avg\",\n \"Min\":\"&write32_min\",\n \"Max\":\"&write32_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (Uncached 32B)\",\n \"Avg\": \"&write32Uncached_avg\",\n \"Min\":\"&write32Uncached_min\",\n \"Max\":\"&write32Uncached_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (64B)\",\n \"Avg\": \"&write64_avg\",\n \"Min\":\"&write64_min\",\n \"Max\":\"&write64_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"HBM Write\",\n \"Avg\": \"&hbmWrite_avg\",\n \"Min\":\"&hbmWrite_min\",\n \"Max\":\"&hbmWrite_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read Latency\",\n \"Avg\": \"&readLatency_avg\",\n \"Min\":\"&readLatency_min\",\n \"Max\":\"&readLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Write Latency\",\n \"Avg\": \"&writeLatency_avg\",\n \"Min\":\"&writeLatency_min\",\n \"Max\":\"&writeLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Atomic Latency\",\n \"Avg\": \"&atomicOpLatency_avg\",\n \"Min\":\"&atomicOpLatency_min\",\n \"Max\":\"&atomicOpLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Read Stall\",\n \"Avg\": \"&readStall_avg\",\n \"Min\":\"&readStall_min\",\n \"Max\":\"&readStall_max\",\n \"Unit\":\"pct\"\n },\n {\n \"Metric\": \"Write Stall\",\n \"Avg\": \"&writeStall_avg\",\n \"Min\":\"&writeStall_min\",\n \"Max\":\"&writeStall_max\",\n \"Unit\":\"pct\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(L2 Cache)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": \"null\",\n \"readStall_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"readStall_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"readStall_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n\n \"writeStall_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"writeStall_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"writeStall_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n\n \"readBW_avg\":{\"$avg\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n \"readBW_min\":{\"$min\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n \"readBW_max\":{\"$max\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n\n \"writeBW_avg\":{\"$avg\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n \"writeBW_min\":{\"$min\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n \"writeBW_max\":{\"$max\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n\n \"read32_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n \"read32_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n \"read32_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n\n \"read32Uncached_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"read32Uncached_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"read32Uncached_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n\n \"read64_avg\":{\"$avg\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n \"read64_min\":{\"$min\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n \"read64_max\":{\"$max\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n\n \"hbmRead_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmRead_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmRead_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n\n \"write32_avg\":{\"$avg\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n \"write32_min\":{\"$min\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n \"write32_max\":{\"$max\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n\n \"write32Uncached_avg\": {\"$avg\":{\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"write32Uncached_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"write32Uncached_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n\n \"write64_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n \"write64_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n \"write64_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n\n \"hbmWrite_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmWrite_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmWrite_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n\n \"readLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n \"readLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n \"readLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n\n \"writeLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n \"writeLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n \"writeLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n\n \"atomicOpLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }},\n \"atomicOpLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }},\n \"atomicOpLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Read BW\",\n \"Avg\": \"&readBW_avg\",\n \"Min\":\"&readBW_min\",\n \"Max\":\"&readBW_max\",\n \"Unit\":{\"$concat\": [\"Bytes \", $normUnit] }\n },\n {\n \"Metric\": \"Write BW\",\n \"Avg\": \"&writeBW_avg\",\n \"Min\":\"&writeBW_min\",\n \"Max\":\"&writeBW_max\",\n \"Unit\":{\"$concat\": [\"Bytes \", $normUnit] }\n },\n {\n \"Metric\": \"Read (32B)\",\n \"Avg\": \"&read32_avg\",\n \"Min\":\"&read32_min\",\n \"Max\":\"&read32_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read (Uncached 32B)\",\n \"Avg\": \"&read32Uncached_avg\",\n \"Min\":\"&read32Uncached_min\",\n \"Max\":\"&read32Uncached_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read (64B)\",\n \"Avg\": \"&read64_avg\",\n \"Min\":\"&read64_min\",\n \"Max\":\"&read64_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"HBM Read\",\n \"Avg\": \"&hbmRead_avg\",\n \"Min\":\"&hbmRead_min\",\n \"Max\":\"&hbmRead_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (32B)\",\n \"Avg\": \"&write32_avg\",\n \"Min\":\"&write32_min\",\n \"Max\":\"&write32_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (Uncached 32B)\",\n \"Avg\": \"&write32Uncached_avg\",\n \"Min\":\"&write32Uncached_min\",\n \"Max\":\"&write32Uncached_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (64B)\",\n \"Avg\": \"&write64_avg\",\n \"Min\":\"&write64_min\",\n \"Max\":\"&write64_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n\n {\n \"Metric\": \"HBM Write\",\n \"Avg\": \"&hbmWrite_avg\",\n \"Min\":\"&hbmWrite_min\",\n \"Max\":\"&hbmWrite_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read Latency\",\n \"Avg\": \"&readLatency_avg\",\n \"Min\":\"&readLatency_min\",\n \"Max\":\"&readLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Write Latency\",\n \"Avg\": \"&writeLatency_avg\",\n \"Min\":\"&writeLatency_min\",\n \"Max\":\"&writeLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Atomic Latency\",\n \"Avg\": \"&atomicOpLatency_avg\",\n \"Min\":\"&atomicOpLatency_min\",\n \"Max\":\"&atomicOpLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Read Stall\",\n \"Avg\": \"&readStall_avg\",\n \"Min\":\"&readStall_min\",\n \"Max\":\"&readStall_max\",\n \"Unit\":\"pct\"\n },\n {\n \"Metric\": \"Write Stall\",\n \"Avg\": \"&writeStall_avg\",\n \"Min\":\"&writeStall_min\",\n \"Max\":\"&writeStall_max\",\n \"Unit\":\"pct\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "L2 - Fabric Transactions", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 1, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 178 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 128 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 121 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 126 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 128 - } - ] - } - ] - }, - "gridPos": { - "h": 20, - "w": 12, - "x": 0, - "y": 23 - }, - "id": 58, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n \"req_min\":{\"$min\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n \"req_max\":{\"$max\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n\n \"streamingReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n \"streamingReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n \"streamingReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n\n \"readReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n \"readReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n \"readReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n\n \"writeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n\n \"atomicReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n \"atomicReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n \"atomicReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n\n \"probeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n \"probeReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n \"probeReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n\n \"hits_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n \"hits_min\":{\"$min\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n \"hits_max\":{\"$max\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n\n \"misses_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n \"misses_min\":{\"$min\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n \"misses_max\":{\"$max\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n\n \"cacheHit_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n \"cacheHit_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n \"cacheHit_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n\n\n \"writeback_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n \"writeback_min\":{\"$min\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n \"writeback_max\":{\"$max\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n\n \"nc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n \"nc_min\":{\"$min\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n \"nc_max\":{\"$max\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n\n \"uc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n \"uc_min\":{\"$min\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n \"uc_max\":{\"$max\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n\n \"cc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n \"cc_min\":{\"$min\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n \"cc_max\":{\"$max\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n\n \"rw_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n \"rw_min\":{\"$min\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n \"rw_max\":{\"$max\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n\n \"writebackNorm_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n \"writebackNorm_min\":{\"$min\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n \"writebackNorm_max\":{\"$max\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n\n \"writebackTC_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n \"writebackTC_min\":{\"$min\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n \"writebackTC_max\":{\"$max\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n\n \"evictNorm_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n \"evictNorm_min\":{\"$min\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n \"evictNorm_max\":{\"$max\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n\n \"evictTC_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n \"evictTC_min\":{\"$min\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n \"evictTC_max\":{\"$max\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n\n\n \"readReq128_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }},\n \"readReq128_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }},\n \"readReq128_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Req\",\n \"avg\": \"&req_avg\",\n \"min\": \"&req_min\",\n \"max\": \"&req_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Streaming Req\",\n \"avg\": \"&streamingReq_avg\",\n \"min\": \"&streamingReq_min\",\n \"max\": \"&streamingReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Read Req\",\n \"avg\": \"&readReq_avg\",\n \"min\": \"&readReq_min\",\n \"max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n \n {\n \"metric\": \"Write Req\",\n \"avg\": \"&writeReq_avg\",\n \"min\": \"&writeReq_min\",\n \"max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Req\",\n \"avg\": \"&atomicReq_avg\",\n \"min\": \"&atomicReq_min\",\n \"max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Probe Req\",\n \"avg\": \"&probeReq_avg\",\n \"min\": \"&probeReq_min\",\n \"max\": \"&probeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Hits\",\n \"avg\": \"&hits_avg\",\n \"min\": \"&hits_min\",\n \"max\": \"&hits_max\",\n \"Unit\": {\"$concat\": [\"Hits \", $normUnit]}\n }, \n {\n \"metric\": \"Misses\",\n \"avg\": \"&misses_avg\",\n \"min\": \"&misses_min\",\n \"max\": \"&misses_max\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hit\",\n \"avg\": \"&cacheHit_avg\",\n \"min\": \"&cacheHit_min\",\n \"max\": \"&cacheHit_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Writeback\",\n \"avg\": \"&writeback_avg\",\n \"min\": \"&writeback_min\",\n \"max\": \"&writeback_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"NC Req\",\n \"avg\": \"&nc_avg\",\n \"min\": \"&nc_min\",\n \"max\": \"&nc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"UC Req\",\n \"avg\": \"&uc_avg\",\n \"min\": \"&uc_min\",\n \"max\": \"&uc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"CC Req\",\n \"avg\": \"&cc_avg\",\n \"min\": \"&cc_min\",\n \"max\": \"&cc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"RW Req\",\n \"avg\": \"&rw_avg\",\n \"min\": \"&rw_min\",\n \"max\": \"&rw_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Writeback (Normal)\",\n \"avg\": \"&writebackNorm_avg\",\n \"min\": \"&writebackNorm_min\",\n \"max\": \"&writebackNorm_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Writeback (TC Req)\",\n \"avg\": \"&writebackTC_avg\",\n \"min\": \"&writebackTC_min\",\n \"max\": \"&writebackTC_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Evict (Normal)\",\n \"avg\": \"&evictNorm_avg\",\n \"min\": \"&evictNorm_min\",\n \"max\": \"&evictNorm_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Evict (TC Req)\",\n \"avg\": \"&evictTC_avg\",\n \"min\": \"&evictTC_min\",\n \"max\": \"&evictTC_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(L2 Cache)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n \"req_min\":{\"$min\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n \"req_max\":{\"$max\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n\n \"streamingReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n \"streamingReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n \"streamingReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n\n \"readReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n \"readReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n \"readReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n\n \"writeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n\n \"atomicReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n \"atomicReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n \"atomicReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n\n \"probeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n \"probeReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n \"probeReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n\n \"hits_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n \"hits_min\":{\"$min\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n \"hits_max\":{\"$max\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n\n \"misses_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n \"misses_min\":{\"$min\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n \"misses_max\":{\"$max\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n\n \"cacheHit_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n \"cacheHit_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n \"cacheHit_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n\n\n \"writeback_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n \"writeback_min\":{\"$min\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n \"writeback_max\":{\"$max\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n\n \"nc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n \"nc_min\":{\"$min\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n \"nc_max\":{\"$max\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n\n \"uc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n \"uc_min\":{\"$min\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n \"uc_max\":{\"$max\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n\n \"cc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n \"cc_min\":{\"$min\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n \"cc_max\":{\"$max\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n\n \"rw_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n \"rw_min\":{\"$min\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n \"rw_max\":{\"$max\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n\n \"writebackNorm_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n \"writebackNorm_min\":{\"$min\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n \"writebackNorm_max\":{\"$max\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n\n \"writebackTC_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n \"writebackTC_min\":{\"$min\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n \"writebackTC_max\":{\"$max\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n\n \"evictNorm_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n \"evictNorm_min\":{\"$min\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n \"evictNorm_max\":{\"$max\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n\n \"evictTC_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n \"evictTC_min\":{\"$min\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n \"evictTC_max\":{\"$max\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n\n \"readReq128_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }},\n \"readReq128_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }},\n \"readReq128_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Req\",\n \"avg\": \"&req_avg\",\n \"min\": \"&req_min\",\n \"max\": \"&req_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Streaming Req\",\n \"avg\": \"&streamingReq_avg\",\n \"min\": \"&streamingReq_min\",\n \"max\": \"&streamingReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Read Req\",\n \"avg\": \"&readReq_avg\",\n \"min\": \"&readReq_min\",\n \"max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n \n {\n \"metric\": \"Write Req\",\n \"avg\": \"&writeReq_avg\",\n \"min\": \"&writeReq_min\",\n \"max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Req\",\n \"avg\": \"&atomicReq_avg\",\n \"min\": \"&atomicReq_min\",\n \"max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Probe Req\",\n \"avg\": \"&probeReq_avg\",\n \"min\": \"&probeReq_min\",\n \"max\": \"&probeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Hits\",\n \"avg\": \"&hits_avg\",\n \"min\": \"&hits_min\",\n \"max\": \"&hits_max\",\n \"Unit\": {\"$concat\": [\"Hits \", $normUnit]}\n }, \n {\n \"metric\": \"Misses\",\n \"avg\": \"&misses_avg\",\n \"min\": \"&misses_min\",\n \"max\": \"&misses_max\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hit\",\n \"avg\": \"&cacheHit_avg\",\n \"min\": \"&cacheHit_min\",\n \"max\": \"&cacheHit_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Writeback\",\n \"avg\": \"&writeback_avg\",\n \"min\": \"&writeback_min\",\n \"max\": \"&writeback_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"NC Req\",\n \"avg\": \"&nc_avg\",\n \"min\": \"&nc_min\",\n \"max\": \"&nc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"UC Req\",\n \"avg\": \"&uc_avg\",\n \"min\": \"&uc_min\",\n \"max\": \"&uc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"CC Req\",\n \"avg\": \"&cc_avg\",\n \"min\": \"&cc_min\",\n \"max\": \"&cc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"RW Req\",\n \"avg\": \"&rw_avg\",\n \"min\": \"&rw_min\",\n \"max\": \"&rw_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Writeback (Normal)\",\n \"avg\": \"&writebackNorm_avg\",\n \"min\": \"&writebackNorm_min\",\n \"max\": \"&writebackNorm_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Writeback (TC Req)\",\n \"avg\": \"&writebackTC_avg\",\n \"min\": \"&writebackTC_min\",\n \"max\": \"&writebackTC_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Evict (Normal)\",\n \"avg\": \"&evictNorm_avg\",\n \"min\": \"&evictNorm_min\",\n \"max\": \"&evictNorm_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Evict (TC Req)\",\n \"avg\": \"&evictTC_avg\",\n \"min\": \"&evictTC_min\",\n \"max\": \"&evictTC_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - } - ], - "title": "L2 Cache Accesses", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Unit 2": true, - "metric 2": true - }, - "indexByName": { - "Unit 1": 9, - "Unit 2": 2, - "avg 1": 3, - "avg 2": 4, - "max 1": 7, - "max 2": 8, - "metric 1": 0, - "metric 2": 1, - "min 1": 5, - "min 2": 6 - }, - "renameByName": { - "avg 1": "Avg (Current)", - "avg 2": "Avg (Baseline)", - "max 1": "Max (Current)", - "max 2": "Max (Baseline)", - "min 1": "Min (Current)", - "min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "Aggregate": "last", - "BarPadding": 30, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupColName": "Transaction", - "GroupCols": 1, - "GroupGap": 5, - "GroupLabelColor": "#FADE2A", - "GroupLabelFontSize": "120%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 0, - "Horizontal": true, - "LabelColName": "Metric", - "LabelColor": "#ffffff", - "LabelFontSize": "80%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 0, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#FF9830", - "ValueDecimals": 0, - "ValueFontSize": "100%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:81", - "Col": 3, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Selected": true - } - ], - "datasource": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 32 - }, - "id": 60, - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "$Workload1.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"ioStall_READ_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"ioStall_READ_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"ioStall_READ_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"gmiStall_READ_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"gmiStall_READ_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"gmiStall_READ_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"hbmStall_READ_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"hbmStall_READ_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"hbmStall_READ_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"ioStall_WRITE_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"ioStall_WRITE_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"ioStall_WRITE_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"gmiStall_WRITE_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"gmiStall_WRITE_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"gmiStall_WRITE_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"hbmStall_WRITE_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"hbmStall_WRITE_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"hbmStall_WRITE_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"creditStarvation_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_TOO_MANY_EA_WRREQS_STALL_sum\", \"&denom\"] }\n },\n \"creditStarvation_min\": {\n \"$min\": { \"$divide\": [\"&TCC_TOO_MANY_EA_WRREQS_STALL_sum\", \"&denom\"] }\n },\n \"creditStarvation_max\": {\n \"$max\": { \"$divide\": [\"&TCC_TOO_MANY_EA_WRREQS_STALL_sum\", \"&denom\"] }\n } \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Remote Socket Stall\",\n \"Transaction\": \"Read\",\n \"Target\": \"I/O\",\n \"Avg\": \"&ioStall_READ_avg\",\n \"Min\": \"&ioStall_READ_min\",\n \"Max\": \"&ioStall_READ_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Peer GCD Stall\",\n \"Transaction\": \"Read\",\n \"Target\": \"GMI\",\n \"Avg\": \"&gmiStall_READ_avg\",\n \"Min\": \"&gmiStall_READ_min\",\n \"Max\": \"&gmiStall_READ_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"HBM Stall\",\n \"Transaction\": \"Read\",\n \"Target\": \"HBM\",\n \"Avg\": \"&hbmStall_READ_avg\",\n \"Min\": \"&hbmStall_READ_min\",\n \"Max\": \"&hbmStall_READ_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Remote Socket Stall\",\n \"Transaction\": \"Write\",\n \"Target\": \"I/O\",\n \"Avg\": \"&ioStall_WRITE_avg\",\n \"Min\": \"&ioStall_WRITE_min\",\n \"Max\": \"&ioStall_WRITE_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Peer GCD Stall\",\n \"Transaction\": \"Write\",\n \"Target\": \"GMI\",\n \"Avg\": \"&gmiStall_WRITE_avg\",\n \"Min\": \"&gmiStall_WRITE_min\",\n \"Max\": \"&gmiStall_WRITE_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"HBM Stall\",\n \"Transaction\": \"Write\",\n \"Target\": \"HBM\",\n \"Avg\": \"&hbmStall_WRITE_avg\",\n \"Min\": \"&hbmStall_WRITE_min\",\n \"Max\": \"&hbmStall_WRITE_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Credit Starvation\",\n \"Transaction\": \"Write\",\n \"Target\": \"Fabric\",\n \"Avg\": \"&creditStarvation_avg\",\n \"Min\": \"&creditStarvation_min\",\n \"Max\": \"&creditStarvation_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "L2 - Fabric Interface Stalls (Cycles $normUnit)", - "transparent": true, - "type": "michaeldmoore-multistat-panel" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "L2 Cache", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 16 - }, - "id": 66, - "panels": [ - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLimitValue": 100, - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineValue": 105, - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": true, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "light", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:850", - "Col": 1, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Hit Rate", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "description": "", - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 17 - }, - "id": 87, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 Cache Hit Rate (Percent) (Channel 0 - 15) ", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLimitValue": 100, - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineValue": 105, - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": true, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "light", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:850", - "Col": 1, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Hit Rate", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "description": "", - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 17 - }, - "id": 92, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "Cache Hit Rate % (Channel 16 - 31) ", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 80, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:565", - "Col": 3, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Read Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 25 - }, - "id": 81, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L1 - L2 Read Requests(Channel 0-15) : $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:656", - "Col": 3, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Read Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 25 - }, - "id": 82, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L1 - L 2 Read Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 80, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:697", - "Col": 4, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Write Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 33 - }, - "id": 83, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L1 - L2 Write Requests (Channel 0-15): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 0, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:750", - "Col": 4, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Write Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 33 - }, - "id": 84, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L1 - L2 Write Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLimitValue": 100, - "HighLmitLineWidth": 1, - "HighSideMargin": 0, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "100%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 80, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineValue": 105, - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": true, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:791", - "Col": 5, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "AtomicReq", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 41 - }, - "id": 85, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L1 - L2 Atomic Requests (Channel 0-15): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLimitValue": 100, - "HighLmitLineWidth": 1, - "HighSideMargin": 0, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "100%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 80, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineValue": 105, - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": true, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:791", - "Col": 5, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "AtomicReq", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 41 - }, - "id": 91, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L1 - L2 Atomic Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 6, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 49 - }, - "id": 189, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Read Requests (Channel 0 - 15) : $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:341", - "Col": 6, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 49 - }, - "id": 195, - "maxDataPoints": 10, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Read Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 7, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 57 - }, - "id": 191, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Requests (Channel 0 - 15) : $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:341", - "Col": 7, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 57 - }, - "id": 197, - "maxDataPoints": 10, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 8, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA AtomicReq", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 65 - }, - "id": 193, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Atomic Request (Channel 0 - 15): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:341", - "Col": 8, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA AtomicReq", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 65 - }, - "id": 199, - "maxDataPoints": 10, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Atomic Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupColName": "", - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 9, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Lat - cycles", - "Selected": true - } - ], - "datasource": {}, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 73 - }, - "hideTimeOverride": false, - "id": 68, - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"b0_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[0]\", \"&TCC_MISS[0]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[0]\"]}, \n { \"$add\": [\"&TCC_HIT[0]\", \"&TCC_MISS[0]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b0_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[0]\"}, \"&denom\"] } \n },\n \"b0_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[0]\"}, \"&denom\"] } \n },\n \"b0_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[0]\"}, \"&denom\"] } \n },\n \"b0_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[0]\"}, \"&denom\"] } \n },\n \"b0_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[0]\"}, \"&denom\"] }\n },\n \"b0_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[0]\"}, \"&denom\"] } \n },\n \"b0_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[0]\"}, \"&denom\"] } \n },\n\n \"b0_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[0]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[0]\", \"&TCC_EA_RDREQ[0]\"]}, null] } },\n \"b0_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[0]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[0]\", \"&TCC_EA_WRREQ[0]\"]}, null] } },\n \"b0_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[0]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[0]\", \"&TCC_EA_ATOMIC[0]\"]}, null]}},\n\n \"b0_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[0]\"}, \"&denom\"] }},\n\n \n \"b1_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[1]\", \"&TCC_MISS[1]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[1]\"]}, \n { \"$add\": [\"&TCC_HIT[1]\", \"&TCC_MISS[1]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b1_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[1]\"}, \"&denom\"] } \n },\n \"b1_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[1]\"}, \"&denom\"] } \n },\n \"b1_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[1]\"}, \"&denom\"] } \n },\n \"b1_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[1]\"}, \"&denom\"] } \n },\n \"b1_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[1]\"}, \"&denom\"] }\n },\n \"b1_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[1]\"}, \"&denom\"] } \n },\n \"b1_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[1]\"}, \"&denom\"] } \n },\n \"b1_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[1]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[1]\", \"&TCC_EA_RDREQ[1]\"]}, null] } },\n \"b1_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[1]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[1]\", \"&TCC_EA_WRREQ[1]\"]}, null] } },\n \"b1_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[1]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[1]\", \"&TCC_EA_ATOMIC[1]\"]}, null]}},\n\n \"b1_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[1]\"}, \"&denom\"] }},\n\n\n \"b2_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[2]\", \"&TCC_MISS[2]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[2]\"]}, \n { \"$add\": [\"&TCC_HIT[2]\", \"&TCC_MISS[2]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b2_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[2]\"}, \"&denom\"] }\n },\n \"b2_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[2]\"}, \"&denom\"] } \n },\n \"b2_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[2]\"}, \"&denom\"] }\n },\n \"b2_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[2]\"}, \"&denom\"] }\n },\n \"b2_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[2]\"}, \"&denom\"] }\n },\n \"b2_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[2]\"}, \"&denom\"] }\n },\n \"b2_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[2]\"}, \"&denom\"] }\n },\n \"b2_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[2]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[2]\", \"&TCC_EA_RDREQ[2]\"]}, null] } },\n \"b2_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[2]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[2]\", \"&TCC_EA_WRREQ[2]\"]}, null] } },\n \"b2_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[2]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[2]\", \"&TCC_EA_ATOMIC[2]\"]}, null]}},\n\n \"b2_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[2]\"}, \"&denom\"] }},\n\n\n \n \"b3_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[3]\", \"&TCC_MISS[3]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[3]\"]}, \n { \"$add\": [\"&TCC_HIT[3]\", \"&TCC_MISS[3]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b3_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[3]\"}, \"&denom\"] } \n },\n \"b3_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[3]\"}, \"&denom\"] } \n },\n \"b3_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[3]\"}, \"&denom\"] }\n },\n \"b3_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[3]\"}, \"&denom\"] }\n },\n \"b3_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[3]\"}, \"&denom\"] }\n },\n \"b3_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[3]\"}, \"&denom\"] }\n },\n \"b3_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[3]\"}, \"&denom\"] } \n },\n \"b3_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[3]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[3]\", \"&TCC_EA_RDREQ[3]\"]}, null] } },\n \"b3_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[3]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[3]\", \"&TCC_EA_WRREQ[3]\"]}, null] } },\n \"b3_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[3]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[3]\", \"&TCC_EA_ATOMIC[3]\"]}, null]}},\n\n \"b3_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[3]\"}, \"&denom\"] }},\n\n\n \n \"b4_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[4]\", \"&TCC_MISS[4]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[4]\"]}, \n { \"$add\": [\"&TCC_HIT[4]\", \"&TCC_MISS[4]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b4_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[4]\"}, \"&denom\"] } \n },\n \"b4_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[4]\"}, \"&denom\"] } \n },\n \"b4_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[4]\"}, \"&denom\"] }\n },\n \"b4_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[4]\"}, \"&denom\"] } \n },\n \"b4_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[4]\"}, \"&denom\"] } \n },\n \"b4_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[4]\"}, \"&denom\"] } \n },\n \"b4_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[4]\"}, \"&denom\"] } \n },\n \"b4_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[4]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[4]\", \"&TCC_EA_RDREQ[4]\"]}, null] } },\n \"b4_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[4]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[4]\", \"&TCC_EA_WRREQ[4]\"]}, null] } },\n \"b4_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[4]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[4]\", \"&TCC_EA_ATOMIC[4]\"]}, null]}},\n\n \"b4_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[4]\"}, \"&denom\"] }},\n\n\n \n \"b5_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[5]\", \"&TCC_MISS[5]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[5]\"]}, \n { \"$add\": [\"&TCC_HIT[5]\", \"&TCC_MISS[5]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b5_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[5]\"}, \"&denom\"] } \n },\n \"b5_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[5]\"}, \"&denom\"] } \n },\n \"b5_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[5]\"}, \"&denom\"] } \n },\n \"b5_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[5]\"}, \"&denom\"] } \n },\n \"b5_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[5]\"}, \"&denom\"] } \n },\n \"b5_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[5]\"}, \"&denom\"] } \n },\n \"b5_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[5]\"}, \"&denom\"] } \n },\n \"b5_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[5]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[5]\", \"&TCC_EA_RDREQ[5]\"]}, null] } },\n \"b5_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[5]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[5]\", \"&TCC_EA_WRREQ[5]\"]}, null] } },\n \"b5_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[5]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[5]\", \"&TCC_EA_ATOMIC[5]\"]}, null]}},\n\n \"b5_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[5]\"}, \"&denom\"] }},\n\n\n \n \"b6_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[6]\", \"&TCC_MISS[6]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[6]\"]}, \n { \"$add\": [\"&TCC_HIT[6]\", \"&TCC_MISS[6]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b6_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[6]\"}, \"&denom\"] } \n },\n \"b6_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[6]\"}, \"&denom\"] } \n },\n \"b6_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[6]\"}, \"&denom\"] } \n },\n \"b6_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[6]\"}, \"&denom\"] } \n },\n \"b6_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[6]\"}, \"&denom\"] } \n },\n \"b6_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[6]\"}, \"&denom\"] }\n },\n \"b6_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[6]\"}, \"&denom\"] } \n },\n \"b6_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[6]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[6]\", \"&TCC_EA_RDREQ[6]\"]}, null] } },\n \"b6_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[6]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[6]\", \"&TCC_EA_WRREQ[6]\"]}, null] } },\n \"b6_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[6]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[6]\", \"&TCC_EA_ATOMIC[6]\"]}, null]}},\n\n \"b6_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[6]\"}, \"&denom\"] }},\n\n\n \n \"b7_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[7]\", \"&TCC_MISS[7]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[7]\"]}, \n { \"$add\": [\"&TCC_HIT[7]\", \"&TCC_MISS[7]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b7_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[7]\"}, \"&denom\"] } \n },\n \"b7_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[7]\"}, \"&denom\"] } \n },\n \"b7_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[7]\"}, \"&denom\"] } \n },\n \"b7_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[7]\"}, \"&denom\"] } \n },\n \"b7_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[7]\"}, \"&denom\"] } \n },\n \"b7_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[7]\"}, \"&denom\"] }\n },\n \"b7_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[7]\"}, \"&denom\"] } \n },\n \"b7_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[7]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[7]\", \"&TCC_EA_RDREQ[7]\"]}, null] } },\n \"b7_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[7]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[7]\", \"&TCC_EA_WRREQ[7]\"]}, null] } },\n \"b7_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[7]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[7]\", \"&TCC_EA_ATOMIC[7]\"]}, null]}},\n\n \"b7_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[7]\"}, \"&denom\"] }},\n\n\n \n \"b8_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[8]\", \"&TCC_MISS[8]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[8]\"]}, \n { \"$add\": [\"&TCC_HIT[8]\", \"&TCC_MISS[8]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b8_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[8]\"}, \"&denom\"] } \n },\n \"b8_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[8]\"}, \"&denom\"] } \n },\n \"b8_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[8]\"}, \"&denom\"] } \n },\n \"b8_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[8]\"}, \"&denom\"] } \n },\n \"b8_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[8]\"}, \"&denom\"] } \n },\n \"b8_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[8]\"}, \"&denom\"] } \n },\n \"b8_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[8]\"}, \"&denom\"] } \n },\n \"b8_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[8]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[8]\", \"&TCC_EA_RDREQ[8]\"]}, null] } },\n \"b8_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[8]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[8]\", \"&TCC_EA_WRREQ[8]\"]}, null] } },\n \"b8_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[8]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[8]\", \"&TCC_EA_ATOMIC[8]\"]}, null]}},\n\n \"b8_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[8]\"}, \"&denom\"] }},\n\n\n \n \"b9_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[9]\", \"&TCC_MISS[9]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[9]\"]}, \n { \"$add\": [\"&TCC_HIT[9]\", \"&TCC_MISS[9]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b9_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[9]\"}, \"&denom\"] } \n },\n \"b9_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[9]\"}, \"&denom\"] } \n },\n \"b9_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[9]\"}, \"&denom\"] } \n },\n \"b9_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[9]\"}, \"&denom\"] } \n },\n \"b9_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[9]\"}, \"&denom\"] } \n },\n \"b9_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[9]\"}, \"&denom\"] } \n },\n \"b9_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[9]\"}, \"&denom\"] } \n },\n \"b9_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[9]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[9]\", \"&TCC_EA_RDREQ[9]\"]}, null] } },\n \"b9_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[9]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[9]\", \"&TCC_EA_WRREQ[9]\"]}, null] } },\n \"b9_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[9]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[9]\", \"&TCC_EA_ATOMIC[9]\"]}, null]}},\n\n \"b9_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[9]\"}, \"&denom\"] }},\n\n\n \n \"b10_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[10]\", \"&TCC_MISS[10]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[10]\"]}, \n { \"$add\": [\"&TCC_HIT[10]\", \"&TCC_MISS[10]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b10_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[10]\"}, \"&denom\"] } \n },\n \"b10_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[10]\"}, \"&denom\"] } \n },\n \"b10_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[10]\"}, \"&denom\"] } \n },\n \"b10_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[10]\"}, \"&denom\"] } \n },\n \"b10_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[10]\"}, \"&denom\"] } \n },\n \"b10_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[10]\"}, \"&denom\"] } \n },\n \"b10_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[10]\"}, \"&denom\"] } \n },\n \"b10_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[10]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[10]\", \"&TCC_EA_RDREQ[10]\"]}, null] } },\n \"b10_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[10]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[10]\", \"&TCC_EA_WRREQ[10]\"]}, null] } },\n \"b10_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[10]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[10]\", \"&TCC_EA_ATOMIC[10]\"]}, null]}},\n\n \"b10_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[10]\"}, \"&denom\"] }},\n\n\n \n \"b11_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[11]\", \"&TCC_MISS[11]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[11]\"]}, \n { \"$add\": [\"&TCC_HIT[11]\", \"&TCC_MISS[11]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b11_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[11]\"}, \"&denom\"] } \n },\n \"b11_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[11]\"}, \"&denom\"] } \n },\n \"b11_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[11]\"}, \"&denom\"] } \n },\n \"b11_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[11]\"}, \"&denom\"] } \n },\n \"b11_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[11]\"}, \"&denom\"] } \n },\n \"b11_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[11]\"}, \"&denom\"] } \n },\n \"b11_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[11]\"}, \"&denom\"] } \n },\n \"b11_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[11]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[11]\", \"&TCC_EA_RDREQ[11]\"]}, null] } },\n \"b11_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[11]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[11]\", \"&TCC_EA_WRREQ[11]\"]}, null] } },\n \"b11_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[11]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[11]\", \"&TCC_EA_ATOMIC[11]\"]}, null]}},\n\n \"b11_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[11]\"}, \"&denom\"] }},\n\n\n \n \"b12_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[12]\", \"&TCC_MISS[12]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[12]\"]}, \n { \"$add\": [\"&TCC_HIT[12]\", \"&TCC_MISS[12]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b12_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[12]\"}, \"&denom\"] } \n },\n \"b12_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[12]\"}, \"&denom\"] } \n },\n \"b12_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[12]\"}, \"&denom\"] } \n },\n \"b12_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[12]\"}, \"&denom\"] } \n },\n \"b12_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[12]\"}, \"&denom\"] } \n },\n \"b12_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[12]\"}, \"&denom\"] } \n },\n \"b12_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[12]\"}, \"&denom\"] } \n },\n \"b12_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[12]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[12]\", \"&TCC_EA_RDREQ[12]\"]}, null] } },\n \"b12_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[12]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[12]\", \"&TCC_EA_WRREQ[12]\"]}, null] } },\n \"b12_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[12]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[12]\", \"&TCC_EA_ATOMIC[12]\"]}, null]}},\n\n \"b12_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[12]\"}, \"&denom\"] }},\n\n\n \n \"b13_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[13]\", \"&TCC_MISS[13]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[13]\"]}, \n { \"$add\": [\"&TCC_HIT[13]\", \"&TCC_MISS[13]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b13_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[13]\"}, \"&denom\"] } \n },\n \"b13_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[13]\"}, \"&denom\"] } \n },\n \"b13_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[13]\"}, \"&denom\"] } \n },\n \"b13_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[13]\"}, \"&denom\"] } \n },\n \"b13_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[13]\"}, \"&denom\"] } \n },\n \"b13_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[13]\"}, \"&denom\"] }\n },\n \"b13_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[13]\"}, \"&denom\"] } \n },\n \"b13_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[13]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[13]\", \"&TCC_EA_RDREQ[13]\"]}, null] } },\n \"b13_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[13]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[13]\", \"&TCC_EA_WRREQ[13]\"]}, null] } },\n \"b13_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[13]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[13]\", \"&TCC_EA_ATOMIC[13]\"]}, null]}},\n\n \"b13_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[13]\"}, \"&denom\"] }},\n\n\n \n \"b14_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[14]\", \"&TCC_MISS[14]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[14]\"]}, \n { \"$add\": [\"&TCC_HIT[14]\", \"&TCC_MISS[14]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b14_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[14]\"}, \"&denom\"] } \n },\n \"b14_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[14]\"}, \"&denom\"] } \n },\n \"b14_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[14]\"}, \"&denom\"] } \n },\n \"b14_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[14]\"}, \"&denom\"] } \n },\n \"b14_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[14]\"}, \"&denom\"] } \n },\n \"b14_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[14]\"}, \"&denom\"] } \n },\n \"b14_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[14]\"}, \"&denom\"] } \n },\n \"b14_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[14]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[14]\", \"&TCC_EA_RDREQ[14]\"]}, null] } },\n \"b14_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[14]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[14]\", \"&TCC_EA_WRREQ[14]\"]}, null] } },\n \"b14_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[14]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[14]\", \"&TCC_EA_ATOMIC[14]\"]}, null]}},\n\n \"b14_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[14]\"}, \"&denom\"] }},\n\n\n \n \"b15_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[15]\", \"&TCC_MISS[15]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[15]\"]}, \n { \"$add\": [\"&TCC_HIT[15]\", \"&TCC_MISS[15]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b15_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[15]\"}, \"&denom\"] } \n },\n \"b15_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[15]\"}, \"&denom\"] } \n },\n \"b15_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[15]\"}, \"&denom\"] } \n },\n \"b15_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[15]\"}, \"&denom\"] } \n },\n \"b15_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[15]\"}, \"&denom\"] } \n },\n \"b15_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[15]\"}, \"&denom\"] } \n },\n \"b15_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[15]\"}, \"&denom\"] }\n },\n \"b15_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[15]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[15]\", \"&TCC_EA_RDREQ[15]\"]}, null] } },\n \"b15_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[15]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[15]\", \"&TCC_EA_WRREQ[15]\"]}, null] } },\n \"b15_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[15]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[15]\", \"&TCC_EA_ATOMIC[15]\"]}, null]}},\n\n \"b15_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[15]\"}, \"&denom\"] }}\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Channel\": \"0\",\n \"Hit Rate\": \"&b0_hitRate\",\n \"Req\": \"&b0_req\",\n \"Read Req\": \"&b0_readReq\",\n \"Write Req\": \"&b0_writeReq\",\n \"AtomicReq\": \"&b0_atomicReq\",\n \"EA Read Req\": \"&b0_eaReadReq\",\n \"EA Write Req\": \"&b0_eaWriteReq\",\n \"EA AtomicReq\": \"&b0_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b0_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b0_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b0_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b0_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b0_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b0_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b0_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b0_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b0_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b0_ea_write_stall_too_many\"\n },\n {\n \"Channel\": \"1\",\n \"Hit Rate\": \"&b1_hitRate\",\n \"Req\": \"&b1_req\",\n \"Read Req\": \"&b1_readReq\",\n \"Write Req\": \"&b1_writeReq\",\n \"AtomicReq\": \"&b1_atomicReq\",\n \"EA Read Req\": \"&b1_eaReadReq\",\n \"EA Write Req\": \"&b1_eaWriteReq\",\n \"EA AtomicReq\": \"&b1_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b1_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b1_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b1_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b1_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b1_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b1_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b1_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b1_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b1_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b1_ea_write_stall_too_many\"\n },\n {\n \"Channel\": \"2\",\n \"Hit Rate\": \"&b2_hitRate\",\n \"Req\": \"&b2_req\",\n \"Read Req\": \"&b2_readReq\",\n \"Write Req\": \"&b2_writeReq\",\n \"AtomicReq\": \"&b2_atomicReq\",\n \"EA Read Req\": \"&b2_eaReadReq\",\n \"EA Write Req\": \"&b2_eaWriteReq\",\n \"EA AtomicReq\": \"&b2_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b2_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b2_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b2_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b2_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b2_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b2_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b2_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b2_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b2_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b2_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"3\",\n \"Hit Rate\": \"&b3_hitRate\",\n \"Req\": \"&b3_req\",\n \"Read Req\": \"&b3_readReq\",\n \"Write Req\": \"&b3_writeReq\",\n \"AtomicReq\": \"&b3_atomicReq\",\n \"EA Read Req\": \"&b3_eaReadReq\",\n \"EA Write Req\": \"&b3_eaWriteReq\",\n \"EA AtomicReq\": \"&b3_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b3_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b3_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b3_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b3_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b3_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b3_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b3_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b3_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b3_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b3_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"4\",\n \"Hit Rate\": \"&b4_hitRate\",\n \"Req\": \"&b4_req\",\n \"Read Req\": \"&b4_readReq\",\n \"Write Req\": \"&b4_writeReq\",\n \"AtomicReq\": \"&b4_atomicReq\",\n \"EA Read Req\": \"&b4_eaReadReq\",\n \"EA Write Req\": \"&b4_eaWriteReq\",\n \"EA AtomicReq\": \"&b4_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b4_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b4_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b4_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b4_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b4_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b4_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b4_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b4_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b4_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b4_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"5\",\n \"Hit Rate\": \"&b5_hitRate\",\n \"Req\": \"&b5_req\",\n \"Read Req\": \"&b5_readReq\",\n \"Write Req\": \"&b5_writeReq\",\n \"AtomicReq\": \"&b5_atomicReq\",\n \"EA Read Req\": \"&b5_eaReadReq\",\n \"EA Write Req\": \"&b5_eaWriteReq\",\n \"EA AtomicReq\": \"&b5_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b5_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b5_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b5_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b5_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b5_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b5_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b5_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b5_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b5_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b5_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"6\",\n \"Hit Rate\": \"&b6_hitRate\",\n \"Req\": \"&b6_req\",\n \"Read Req\": \"&b6_readReq\",\n \"Write Req\": \"&b6_writeReq\",\n \"AtomicReq\": \"&b6_atomicReq\",\n \"EA Read Req\": \"&b6_eaReadReq\",\n \"EA Write Req\": \"&b6_eaWriteReq\",\n \"EA AtomicReq\": \"&b6_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b6_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b6_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b6_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b6_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b6_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b6_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b6_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b6_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b6_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b6_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"7\",\n \"Hit Rate\": \"&b7_hitRate\",\n \"Req\": \"&b7_req\",\n \"Read Req\": \"&b7_readReq\",\n \"Write Req\": \"&b7_writeReq\",\n \"AtomicReq\": \"&b7_atomicReq\",\n \"EA Read Req\": \"&b7_eaReadReq\",\n \"EA Write Req\": \"&b7_eaWriteReq\",\n \"EA AtomicReq\": \"&b7_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b7_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b7_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b7_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b7_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b7_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b7_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b7_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b7_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b7_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b7_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"8\",\n \"Hit Rate\": \"&b8_hitRate\",\n \"Req\": \"&b8_req\",\n \"Read Req\": \"&b8_readReq\",\n \"Write Req\": \"&b8_writeReq\",\n \"AtomicReq\": \"&b8_atomicReq\",\n \"EA Read Req\": \"&b8_eaReadReq\",\n \"EA Write Req\": \"&b8_eaWriteReq\",\n \"EA AtomicReq\": \"&b8_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b8_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b8_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b8_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b8_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b8_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b8_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b8_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b8_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b8_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b8_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"9\",\n \"Hit Rate\": \"&b9_hitRate\",\n \"Req\": \"&b9_req\",\n \"Read Req\": \"&b9_readReq\",\n \"Write Req\": \"&b9_writeReq\",\n \"AtomicReq\": \"&b9_atomicReq\",\n \"EA Read Req\": \"&b9_eaReadReq\",\n \"EA Write Req\": \"&b9_eaWriteReq\",\n \"EA AtomicReq\": \"&b9_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b9_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b9_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b9_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b9_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b9_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b9_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b9_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b9_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b9_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b9_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"10\",\n \"Hit Rate\": \"&b10_hitRate\",\n \"Req\": \"&b10_req\",\n \"Read Req\": \"&b10_readReq\",\n \"Write Req\": \"&b10_writeReq\",\n \"AtomicReq\": \"&b10_atomicReq\",\n \"EA Read Req\": \"&b10_eaReadReq\",\n \"EA Write Req\": \"&b10_eaWriteReq\",\n \"EA AtomicReq\": \"&b10_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b10_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b10_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b10_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b10_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b10_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b10_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b10_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b10_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b10_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b10_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"11\",\n \"Hit Rate\": \"&b11_hitRate\",\n \"Req\": \"&b11_req\",\n \"Read Req\": \"&b11_readReq\",\n \"Write Req\": \"&b11_writeReq\",\n \"AtomicReq\": \"&b11_atomicReq\",\n \"EA Read Req\": \"&b11_eaReadReq\",\n \"EA Write Req\": \"&b11_eaWriteReq\",\n \"EA AtomicReq\": \"&b11_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b11_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b11_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b11_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b11_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b11_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b11_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b11_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b11_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b11_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b11_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"12\",\n \"Hit Rate\": \"&b12_hitRate\",\n \"Req\": \"&b12_req\",\n \"Read Req\": \"&b12_readReq\",\n \"Write Req\": \"&b12_writeReq\",\n \"AtomicReq\": \"&b12_atomicReq\",\n \"EA Read Req\": \"&b12_eaReadReq\",\n \"EA Write Req\": \"&b12_eaWriteReq\",\n \"EA AtomicReq\": \"&b12_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b12_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b12_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b12_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b12_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b12_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b12_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b12_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b12_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b12_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b12_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"13\",\n \"Hit Rate\": \"&b13_hitRate\",\n \"Req\": \"&b13_req\",\n \"Read Req\": \"&b13_readReq\",\n \"Write Req\": \"&b13_writeReq\",\n \"AtomicReq\": \"&b13_atomicReq\",\n \"EA Read Req\": \"&b13_eaReadReq\",\n \"EA Write Req\": \"&b13_eaWriteReq\",\n \"EA AtomicReq\": \"&b13_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b13_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b13_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b13_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b13_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b13_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b13_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b13_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b13_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b13_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b13_ea_write_stall_too_many\"\n\n\n },\n {\n \"Channel\": \"14\",\n \"Hit Rate\": \"&b14_hitRate\",\n \"Req\": \"&b14_req\",\n \"Read Req\": \"&b14_readReq\",\n \"Write Req\": \"&b14_writeReq\",\n \"AtomicReq\": \"&b14_atomicReq\",\n \"EA Read Req\": \"&b14_eaReadReq\",\n \"EA Write Req\": \"&b14_eaWriteReq\",\n \"EA AtomicReq\": \"&b14_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b14_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b14_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b14_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b14_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b14_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b14_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b14_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b14_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b14_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b14_ea_write_stall_too_many\"\n\n\n },\n {\n \"Channel\": \"15\",\n \"Hit Rate\": \"&b15_hitRate\",\n \"Req\": \"&b15_req\",\n \"Read Req\": \"&b15_readReq\",\n \"Write Req\": \"&b15_writeReq\",\n \"AtomicReq\": \"&b15_atomicReq\",\n \"EA Read Req\": \"&b15_eaReadReq\",\n \"EA Write Req\": \"&b15_eaWriteReq\",\n \"EA AtomicReq\": \"&b15_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b15_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b15_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b15_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b15_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b15_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b15_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b15_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b15_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b15_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b15_ea_write_stall_too_many\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"$array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"$array\"\n }}\n]);", - "type": "table" - } - ], - "title": "L2 - EA Read Latency (Channel 0 - 15) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:341", - "Col": 9, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Lat - cycles", - "Selected": true - } - ], - "datasource": {}, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 73 - }, - "id": 70, - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"b16_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[16]\", \"&TCC_MISS[16]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[16]\"]}, \n { \"$add\": [\"&TCC_HIT[16]\", \"&TCC_MISS[16]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b16_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[16]\"}, \"&denom\"] } \n },\n \"b16_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[16]\"}, \"&denom\"] } \n },\n \"b16_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[16]\"}, \"&denom\"] } \n },\n \"b16_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[16]\"}, \"&denom\"] } \n },\n \"b16_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[16]\"}, \"&denom\"] }\n },\n \"b16_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[16]\"}, \"&denom\"] } \n },\n \"b16_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[16]\"}, \"&denom\"] } \n },\n\n \"b16_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[16]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[16]\", \"&TCC_EA_RDREQ[16]\"]}, null] } },\n \"b16_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[16]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[16]\", \"&TCC_EA_WRREQ[16]\"]}, null] } },\n \"b16_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[16]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[16]\", \"&TCC_EA_ATOMIC[16]\"]}, null]}},\n \"b16_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[16]\"}, \"&denom\"] }},\n\n \n \"b17_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[17]\", \"&TCC_MISS[17]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[17]\"]}, \n { \"$add\": [\"&TCC_HIT[17]\", \"&TCC_MISS[17]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b17_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[17]\"}, \"&denom\"] } \n },\n \"b17_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[17]\"}, \"&denom\"] } \n },\n \"b17_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[17]\"}, \"&denom\"] } \n },\n \"b17_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[17]\"}, \"&denom\"] } \n },\n \"b17_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[17]\"}, \"&denom\"] }\n },\n \"b17_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[17]\"}, \"&denom\"] } \n },\n \"b17_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[17]\"}, \"&denom\"] } \n },\n \"b17_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[17]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[17]\", \"&TCC_EA_RDREQ[17]\"]}, null] } },\n \"b17_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[17]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[17]\", \"&TCC_EA_WRREQ[17]\"]}, null] } },\n \"b17_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[17]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[17]\", \"&TCC_EA_ATOMIC[17]\"]}, null]}},\n \"b17_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[17]\"}, \"&denom\"] }},\n\n \n \"b18_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[18]\", \"&TCC_MISS[18]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[18]\"]}, \n { \"$add\": [\"&TCC_HIT[18]\", \"&TCC_MISS[18]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b18_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[18]\"}, \"&denom\"] }\n },\n \"b18_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[18]\"}, \"&denom\"] } \n },\n \"b18_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[18]\"}, \"&denom\"] }\n },\n \"b18_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[18]\"}, \"&denom\"] }\n },\n \"b18_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[18]\"}, \"&denom\"] }\n },\n \"b18_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[18]\"}, \"&denom\"] }\n },\n \"b18_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[18]\"}, \"&denom\"] }\n },\n \"b18_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[18]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[18]\", \"&TCC_EA_RDREQ[18]\"]}, null] } },\n \"b18_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[18]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[18]\", \"&TCC_EA_WRREQ[18]\"]}, null] } },\n \"b18_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[18]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[18]\", \"&TCC_EA_ATOMIC[18]\"]}, null]}},\n \"b18_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[18]\"}, \"&denom\"] }},\n\n \n \"b19_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[19]\", \"&TCC_MISS[19]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[19]\"]}, \n { \"$add\": [\"&TCC_HIT[19]\", \"&TCC_MISS[19]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b19_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[19]\"}, \"&denom\"] } \n },\n \"b19_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[19]\"}, \"&denom\"] } \n },\n \"b19_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[19]\"}, \"&denom\"] }\n },\n \"b19_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[19]\"}, \"&denom\"] }\n },\n \"b19_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[19]\"}, \"&denom\"] }\n },\n \"b19_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[19]\"}, \"&denom\"] }\n },\n \"b19_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[19]\"}, \"&denom\"] } \n },\n \"b19_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[19]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[19]\", \"&TCC_EA_RDREQ[19]\"]}, null] } },\n \"b19_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[19]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[19]\", \"&TCC_EA_WRREQ[19]\"]}, null] } },\n \"b19_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[19]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[19]\", \"&TCC_EA_ATOMIC[19]\"]}, null]}},\n \"b19_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[19]\"}, \"&denom\"] }},\n\n \n \"b20_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[20]\", \"&TCC_MISS[20]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[20]\"]}, \n { \"$add\": [\"&TCC_HIT[20]\", \"&TCC_MISS[20]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b20_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[20]\"}, \"&denom\"] } \n },\n \"b20_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[20]\"}, \"&denom\"] } \n },\n \"b20_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[20]\"}, \"&denom\"] }\n },\n \"b20_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[20]\"}, \"&denom\"] } \n },\n \"b20_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[20]\"}, \"&denom\"] } \n },\n \"b20_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[20]\"}, \"&denom\"] } \n },\n \"b20_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[20]\"}, \"&denom\"] } \n },\n \"b20_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[20]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[20]\", \"&TCC_EA_RDREQ[20]\"]}, null] } },\n \"b20_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[20]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[20]\", \"&TCC_EA_WRREQ[20]\"]}, null] } },\n \"b20_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[20]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[20]\", \"&TCC_EA_ATOMIC[20]\"]}, null]}},\n \"b20_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[20]\"}, \"&denom\"] }},\n\n \n\n \"b21_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[21]\", \"&TCC_MISS[21]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[21]\"]}, \n { \"$add\": [\"&TCC_HIT[21]\", \"&TCC_MISS[21]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b21_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[21]\"}, \"&denom\"] } \n },\n \"b21_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[21]\"}, \"&denom\"] } \n },\n \"b21_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[21]\"}, \"&denom\"] } \n },\n \"b21_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[21]\"}, \"&denom\"] } \n },\n \"b21_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[21]\"}, \"&denom\"] } \n },\n \"b21_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[21]\"}, \"&denom\"] } \n },\n \"b21_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[21]\"}, \"&denom\"] } \n },\n \"b21_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[21]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[21]\", \"&TCC_EA_RDREQ[21]\"]}, null] } },\n \"b21_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[21]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[21]\", \"&TCC_EA_WRREQ[21]\"]}, null] } },\n \"b21_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[21]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[21]\", \"&TCC_EA_ATOMIC[21]\"]}, null]}},\n \"b21_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[21]\"}, \"&denom\"] }},\n\n \n\n \"b22_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[22]\", \"&TCC_MISS[22]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[22]\"]}, \n { \"$add\": [\"&TCC_HIT[22]\", \"&TCC_MISS[22]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b22_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[22]\"}, \"&denom\"] } \n },\n \"b22_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[22]\"}, \"&denom\"] } \n },\n \"b22_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[22]\"}, \"&denom\"] } \n },\n \"b22_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[22]\"}, \"&denom\"] } \n },\n \"b22_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[22]\"}, \"&denom\"] } \n },\n \"b22_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[22]\"}, \"&denom\"] }\n },\n \"b22_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[22]\"}, \"&denom\"] } \n },\n \"b22_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[22]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[22]\", \"&TCC_EA_RDREQ[22]\"]}, null] } },\n \"b22_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[22]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[22]\", \"&TCC_EA_WRREQ[22]\"]}, null] } },\n \"b22_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[22]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[22]\", \"&TCC_EA_ATOMIC[22]\"]}, null]}},\n \"b22_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[22]\"}, \"&denom\"] }},\n\n \n\n \"b23_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[23]\", \"&TCC_MISS[23]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[23]\"]}, \n { \"$add\": [\"&TCC_HIT[23]\", \"&TCC_MISS[23]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b23_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[23]\"}, \"&denom\"] } \n },\n \"b23_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[23]\"}, \"&denom\"] } \n },\n \"b23_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[23]\"}, \"&denom\"] } \n },\n \"b23_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[23]\"}, \"&denom\"] } \n },\n \"b23_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[23]\"}, \"&denom\"] } \n },\n \"b23_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[23]\"}, \"&denom\"] }\n },\n \"b23_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[23]\"}, \"&denom\"] } \n },\n \"b23_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[23]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[23]\", \"&TCC_EA_RDREQ[23]\"]}, null] } },\n \"b23_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[23]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[23]\", \"&TCC_EA_WRREQ[23]\"]}, null] } },\n \"b23_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[23]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[23]\", \"&TCC_EA_ATOMIC[23]\"]}, null]}},\n \"b23_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[23]\"}, \"&denom\"] }},\n\n \n \"b24_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[24]\", \"&TCC_MISS[24]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[24]\"]}, \n { \"$add\": [\"&TCC_HIT[24]\", \"&TCC_MISS[24]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b24_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[24]\"}, \"&denom\"] } \n },\n \"b24_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[24]\"}, \"&denom\"] } \n },\n \"b24_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[24]\"}, \"&denom\"] } \n },\n \"b24_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[24]\"}, \"&denom\"] } \n },\n \"b24_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[24]\"}, \"&denom\"] } \n },\n \"b24_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[24]\"}, \"&denom\"] } \n },\n \"b24_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[24]\"}, \"&denom\"] } \n },\n \"b24_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[24]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[24]\", \"&TCC_EA_RDREQ[24]\"]}, null] } },\n \"b24_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[24]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[24]\", \"&TCC_EA_WRREQ[24]\"]}, null] } },\n \"b24_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[24]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[24]\", \"&TCC_EA_ATOMIC[24]\"]}, null]}},\n \"b24_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[24]\"}, \"&denom\"] }},\n\n \n \"b25_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[25]\", \"&TCC_MISS[25]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[25]\"]}, \n { \"$add\": [\"&TCC_HIT[25]\", \"&TCC_MISS[25]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b25_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[25]\"}, \"&denom\"] } \n },\n \"b25_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[25]\"}, \"&denom\"] } \n },\n \"b25_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[25]\"}, \"&denom\"] } \n },\n \"b25_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[25]\"}, \"&denom\"] } \n },\n \"b25_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[25]\"}, \"&denom\"] } \n },\n \"b25_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[25]\"}, \"&denom\"] } \n },\n \"b25_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[25]\"}, \"&denom\"] } \n },\n \"b25_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[25]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[25]\", \"&TCC_EA_RDREQ[25]\"]}, null] } },\n \"b25_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[25]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[25]\", \"&TCC_EA_WRREQ[25]\"]}, null] } },\n \"b25_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[25]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[25]\", \"&TCC_EA_ATOMIC[25]\"]}, null]}},\n \"b25_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[25]\"}, \"&denom\"] }},\n\n \n \"b26_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[26]\", \"&TCC_MISS[26]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[26]\"]}, \n { \"$add\": [\"&TCC_HIT[26]\", \"&TCC_MISS[26]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b26_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[26]\"}, \"&denom\"] } \n },\n \"b26_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[26]\"}, \"&denom\"] } \n },\n \"b26_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[26]\"}, \"&denom\"] } \n },\n \"b26_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[26]\"}, \"&denom\"] } \n },\n \"b26_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[26]\"}, \"&denom\"] } \n },\n \"b26_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[26]\"}, \"&denom\"] } \n },\n \"b26_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[26]\"}, \"&denom\"] } \n },\n \"b26_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[26]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[26]\", \"&TCC_EA_RDREQ[26]\"]}, null] } },\n \"b26_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[26]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[26]\", \"&TCC_EA_WRREQ[26]\"]}, null] } },\n \"b26_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[26]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[26]\", \"&TCC_EA_ATOMIC[26]\"]}, null]}},\n \"b26_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[26]\"}, \"&denom\"] }},\n\n \n \"b27_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[27]\", \"&TCC_MISS[27]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[27]\"]}, \n { \"$add\": [\"&TCC_HIT[27]\", \"&TCC_MISS[27]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b27_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[27]\"}, \"&denom\"] } \n },\n \"b27_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[27]\"}, \"&denom\"] } \n },\n \"b27_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[27]\"}, \"&denom\"] } \n },\n \"b27_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[27]\"}, \"&denom\"] } \n },\n \"b27_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[27]\"}, \"&denom\"] } \n },\n \"b27_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[27]\"}, \"&denom\"] } \n },\n \"b27_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[27]\"}, \"&denom\"] } \n },\n \"b27_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[27]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[27]\", \"&TCC_EA_RDREQ[27]\"]}, null] } },\n \"b27_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[27]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[27]\", \"&TCC_EA_WRREQ[27]\"]}, null] } },\n \"b27_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[27]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[27]\", \"&TCC_EA_ATOMIC[27]\"]}, null]}},\n \"b27_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[27]\"}, \"&denom\"] }},\n\n \n \"b28_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[28]\", \"&TCC_MISS[28]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[28]\"]}, \n { \"$add\": [\"&TCC_HIT[28]\", \"&TCC_MISS[28]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b28_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[28]\"}, \"&denom\"] } \n },\n \"b28_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[28]\"}, \"&denom\"] } \n },\n \"b28_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[28]\"}, \"&denom\"] } \n },\n \"b28_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[28]\"}, \"&denom\"] } \n },\n \"b28_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[28]\"}, \"&denom\"] } \n },\n \"b28_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[28]\"}, \"&denom\"] } \n },\n \"b28_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[28]\"}, \"&denom\"] } \n },\n \"b28_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[28]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[28]\", \"&TCC_EA_RDREQ[28]\"]}, null] } },\n \"b28_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[28]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[28]\", \"&TCC_EA_WRREQ[28]\"]}, null] } },\n \"b28_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[28]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[28]\", \"&TCC_EA_ATOMIC[28]\"]}, null]}},\n \"b28_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[28]\"}, \"&denom\"] }},\n\n \n \"b29_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[29]\", \"&TCC_MISS[29]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[29]\"]}, \n { \"$add\": [\"&TCC_HIT[29]\", \"&TCC_MISS[29]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b29_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[29]\"}, \"&denom\"] } \n },\n \"b29_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[29]\"}, \"&denom\"] } \n },\n \"b29_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[29]\"}, \"&denom\"] } \n },\n \"b29_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[29]\"}, \"&denom\"] } \n },\n \"b29_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[29]\"}, \"&denom\"] } \n },\n \"b29_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[29]\"}, \"&denom\"] }\n },\n \"b29_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[29]\"}, \"&denom\"] } \n },\n \"b29_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[29]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[29]\", \"&TCC_EA_RDREQ[29]\"]}, null] } },\n \"b29_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[29]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[29]\", \"&TCC_EA_WRREQ[29]\"]}, null] } },\n \"b29_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[29]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[29]\", \"&TCC_EA_ATOMIC[29]\"]}, null]}},\n \"b29_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[29]\"}, \"&denom\"] }},\n\n \n \"b30_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[30]\", \"&TCC_MISS[30]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[30]\"]}, \n { \"$add\": [\"&TCC_HIT[30]\", \"&TCC_MISS[30]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b30_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[30]\"}, \"&denom\"] } \n },\n \"b30_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[30]\"}, \"&denom\"] } \n },\n \"b30_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[30]\"}, \"&denom\"] } \n },\n \"b30_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[30]\"}, \"&denom\"] } \n },\n \"b30_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[30]\"}, \"&denom\"] } \n },\n \"b30_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[30]\"}, \"&denom\"] } \n },\n \"b30_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[30]\"}, \"&denom\"] } \n },\n \"b30_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[30]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[30]\", \"&TCC_EA_RDREQ[30]\"]}, null] } },\n \"b30_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[30]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[30]\", \"&TCC_EA_WRREQ[30]\"]}, null] } },\n \"b30_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[30]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[30]\", \"&TCC_EA_ATOMIC[30]\"]}, null]}},\n \"b30_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[30]\"}, \"&denom\"] }},\n\n \n \"b31_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[31]\", \"&TCC_MISS[31]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[31]\"]}, \n { \"$add\": [\"&TCC_HIT[31]\", \"&TCC_MISS[31]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b31_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[31]\"}, \"&denom\"] } \n },\n \"b31_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[31]\"}, \"&denom\"] } \n },\n \"b31_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[31]\"}, \"&denom\"] } \n },\n \"b31_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[31]\"}, \"&denom\"] } \n },\n \"b31_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[31]\"}, \"&denom\"] } \n },\n \"b31_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[31]\"}, \"&denom\"] } \n },\n \"b31_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[31]\"}, \"&denom\"] }\n },\n \"b31_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[31]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[31]\", \"&TCC_EA_RDREQ[31]\"]}, null] } },\n \"b31_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[31]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[31]\", \"&TCC_EA_WRREQ[31]\"]}, null] } },\n \"b31_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[31]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[31]\", \"&TCC_EA_ATOMIC[31]\"]}, null]}},\n \"b31_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[31]\"}, \"&denom\"] }}\n\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Channel\": \"16\",\n \"Hit Rate\": \"&b16_hitRate\",\n \"Req\": \"&b16_req\",\n \"Read Req\": \"&b16_readReq\",\n \"Write Req\": \"&b16_writeReq\",\n \"AtomicReq\": \"&b16_atomicReq\",\n \"EA Read Req\": \"&b16_eaReadReq\",\n \"EA Write Req\": \"&b16_eaWriteReq\",\n \"EA AtomicReq\": \"&b16_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b16_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b16_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b16_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b16_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b16_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b16_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b16_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b16_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b16_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b16_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"17\",\n \"Hit Rate\": \"&b17_hitRate\",\n \"Req\": \"&b17_req\",\n \"Read Req\": \"&b17_readReq\",\n \"Write Req\": \"&b17_writeReq\",\n \"AtomicReq\": \"&b17_atomicReq\",\n \"EA Read Req\": \"&b17_eaReadReq\",\n \"EA Write Req\": \"&b17_eaWriteReq\",\n \"EA AtomicReq\": \"&b17_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b17_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b17_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b17_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b17_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b17_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b17_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b17_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b17_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b17_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b17_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"18\",\n \"Hit Rate\": \"&b18_hitRate\",\n \"Req\": \"&b18_req\",\n \"Read Req\": \"&b18_readReq\",\n \"Write Req\": \"&b18_writeReq\",\n \"AtomicReq\": \"&b18_atomicReq\",\n \"EA Read Req\": \"&b18_eaReadReq\",\n \"EA Write Req\": \"&b18_eaWriteReq\",\n \"EA AtomicReq\": \"&b18_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b18_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b18_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b18_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b18_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b18_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b18_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b18_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b18_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b18_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b18_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"19\",\n \"Hit Rate\": \"&b19_hitRate\",\n \"Req\": \"&b19_req\",\n \"Read Req\": \"&b19_readReq\",\n \"Write Req\": \"&b19_writeReq\",\n \"AtomicReq\": \"&b19_atomicReq\",\n \"EA Read Req\": \"&b19_eaReadReq\",\n \"EA Write Req\": \"&b19_eaWriteReq\",\n \"EA AtomicReq\": \"&b19_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b19_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b19_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b19_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b19_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b19_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b19_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b19_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b19_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b19_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b19_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"20\",\n \"Hit Rate\": \"&b20_hitRate\",\n \"Req\": \"&b20_req\",\n \"Read Req\": \"&b20_readReq\",\n \"Write Req\": \"&b20_writeReq\",\n \"AtomicReq\": \"&b20_atomicReq\",\n \"EA Read Req\": \"&b20_eaReadReq\",\n \"EA Write Req\": \"&b20_eaWriteReq\",\n \"EA AtomicReq\": \"&b20_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b20_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b20_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b20_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b20_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b20_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b20_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b20_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b20_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b20_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b20_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"21\",\n \"Hit Rate\": \"&b21_hitRate\",\n \"Req\": \"&b21_req\",\n \"Read Req\": \"&b21_readReq\",\n \"Write Req\": \"&b21_writeReq\",\n \"AtomicReq\": \"&b21_atomicReq\",\n \"EA Read Req\": \"&b21_eaReadReq\",\n \"EA Write Req\": \"&b21_eaWriteReq\",\n \"EA AtomicReq\": \"&b21_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b21_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b21_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b21_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b21_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b21_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b21_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b21_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b21_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b21_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b21_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"22\",\n \"Hit Rate\": \"&b22_hitRate\",\n \"Req\": \"&b22_req\",\n \"Read Req\": \"&b22_readReq\",\n \"Write Req\": \"&b22_writeReq\",\n \"AtomicReq\": \"&b22_atomicReq\",\n \"EA Read Req\": \"&b22_eaReadReq\",\n \"EA Write Req\": \"&b22_eaWriteReq\",\n \"EA AtomicReq\": \"&b22_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b22_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b22_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b22_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b22_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b22_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b22_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b22_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b22_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b22_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b22_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"23\",\n \"Hit Rate\": \"&b23_hitRate\",\n \"Req\": \"&b23_req\",\n \"Read Req\": \"&b23_readReq\",\n \"Write Req\": \"&b23_writeReq\",\n \"AtomicReq\": \"&b23_atomicReq\",\n \"EA Read Req\": \"&b23_eaReadReq\",\n \"EA Write Req\": \"&b23_eaWriteReq\",\n \"EA AtomicReq\": \"&b23_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b23_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b23_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b23_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b23_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b23_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b23_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b23_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b23_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b23_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b23_ea_write_stall_too_many\"\n\n\n },\n {\n \"Channel\": \"24\",\n \"Hit Rate\": \"&b24_hitRate\",\n \"Req\": \"&b24_req\",\n \"Read Req\": \"&b24_readReq\",\n \"Write Req\": \"&b24_writeReq\",\n \"AtomicReq\": \"&b24_atomicReq\",\n \"EA Read Req\": \"&b24_eaReadReq\",\n \"EA Write Req\": \"&b24_eaWriteReq\",\n \"EA AtomicReq\": \"&b24_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b24_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b24_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b24_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b24_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b24_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b24_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b24_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b24_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b24_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b24_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"25\",\n \"Hit Rate\": \"&b25_hitRate\",\n \"Req\": \"&b25_req\",\n \"Read Req\": \"&b25_readReq\",\n \"Write Req\": \"&b25_writeReq\",\n \"AtomicReq\": \"&b25_atomicReq\",\n \"EA Read Req\": \"&b25_eaReadReq\",\n \"EA Write Req\": \"&b25_eaWriteReq\",\n \"EA AtomicReq\": \"&b25_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b25_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b25_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b25_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b25_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b25_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b25_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b25_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b25_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b25_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b25_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"26\",\n \"Hit Rate\": \"&b26_hitRate\",\n \"Req\": \"&b26_req\",\n \"Read Req\": \"&b26_readReq\",\n \"Write Req\": \"&b26_writeReq\",\n \"AtomicReq\": \"&b26_atomicReq\",\n \"EA Read Req\": \"&b26_eaReadReq\",\n \"EA Write Req\": \"&b26_eaWriteReq\",\n \"EA AtomicReq\": \"&b26_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b26_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b26_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b26_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b26_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b26_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b26_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b26_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b26_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b26_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b26_ea_write_stall_too_many\"\n\n\n },\n {\n \"Channel\": \"27\",\n \"Hit Rate\": \"&b27_hitRate\",\n \"Req\": \"&b27_req\",\n \"Read Req\": \"&b27_readReq\",\n \"Write Req\": \"&b27_writeReq\",\n \"AtomicReq\": \"&b27_atomicReq\",\n \"EA Read Req\": \"&b27_eaReadReq\",\n \"EA Write Req\": \"&b27_eaWriteReq\",\n \"EA AtomicReq\": \"&b27_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b27_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b27_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b27_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b27_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b27_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b27_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b27_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b27_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b27_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b27_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"28\",\n \"Hit Rate\": \"&b28_hitRate\",\n \"Req\": \"&b28_req\",\n \"Read Req\": \"&b28_readReq\",\n \"Write Req\": \"&b28_writeReq\",\n \"AtomicReq\": \"&b28_atomicReq\",\n \"EA Read Req\": \"&b28_eaReadReq\",\n \"EA Write Req\": \"&b28_eaWriteReq\",\n \"EA AtomicReq\": \"&b28_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b28_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b28_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b28_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b28_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b28_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b28_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b28_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b28_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b28_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b28_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"29\",\n \"Hit Rate\": \"&b29_hitRate\",\n \"Req\": \"&b29_req\",\n \"Read Req\": \"&b29_readReq\",\n \"Write Req\": \"&b29_writeReq\",\n \"AtomicReq\": \"&b29_atomicReq\",\n \"EA Read Req\": \"&b29_eaReadReq\",\n \"EA Write Req\": \"&b29_eaWriteReq\",\n \"EA AtomicReq\": \"&b29_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b29_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b29_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b29_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b29_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b29_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b29_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b29_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b29_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b29_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b29_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"30\",\n \"Hit Rate\": \"&b30_hitRate\",\n \"Req\": \"&b30_req\",\n \"Read Req\": \"&b30_readReq\",\n \"Write Req\": \"&b30_writeReq\",\n \"AtomicReq\": \"&b30_atomicReq\",\n \"EA Read Req\": \"&b30_eaReadReq\",\n \"EA Write Req\": \"&b30_eaWriteReq\",\n \"EA AtomicReq\": \"&b30_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b30_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b30_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b30_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b30_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b30_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b30_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b30_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b30_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b30_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b30_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"31\",\n \"Hit Rate\": \"&b31_hitRate\",\n \"Req\": \"&b31_req\",\n \"Read Req\": \"&b31_readReq\",\n \"Write Req\": \"&b31_writeReq\",\n \"AtomicReq\": \"&b31_atomicReq\",\n \"EA Read Req\": \"&b31_eaReadReq\",\n \"EA Write Req\": \"&b31_eaWriteReq\",\n \"EA AtomicReq\": \"&b31_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b31_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b31_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b31_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b31_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b31_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b31_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b31_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b31_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b31_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b31_ea_write_stall_too_many\"\n\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"$array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"$array\"\n }}\n]);", - "type": "table" - } - ], - "title": "L2 - EA Read Latency (Channel 16-31) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 10, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Lat - cycles", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 81 - }, - "id": 93, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Latency (Channel 0 - 15) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 10, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Lat - cycles", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 81 - }, - "id": 94, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Latency (Channel 16 - 31) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 11, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Atomic Lat - cycles", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 89 - }, - "id": 187, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Atomic Latency (Channel 0 - 15) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 11, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Atomic Lat - cycles", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 89 - }, - "id": 201, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Atomic Latency (Channel 16 - 31) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 12, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - IO", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 97 - }, - "id": 220, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - I/O (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 12, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - IO", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 97 - }, - "id": 227, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - I/O (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 13, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - GMI", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 105 - }, - "id": 221, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - GMI (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 13, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - GMI", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 105 - }, - "id": 228, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - GMI (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 14, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - DRAM", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 113 - }, - "id": 222, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - HBM (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 14, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - DRAM", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 113 - }, - "id": 229, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - HBM (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 15, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - IO", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 121 - }, - "id": 223, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - I/O (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 15, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - IO", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 121 - }, - "id": 230, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - I/O (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 16, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - GMI", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 129 - }, - "id": 225, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - GMI (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 16, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - GMI", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 129 - }, - "id": 231, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - GMI (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 17, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - DRAM", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 137 - }, - "id": 224, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - HBM (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 17, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - DRAM", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 137 - }, - "id": 232, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - HBM (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 18, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - Starve", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 145 - }, - "id": 226, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Starve (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 18, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - Starve", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 145 - }, - "id": 233, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Starve (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-rocprofiler-compute-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "L2 Cache (per Channel)", - "type": "row" - } - ], - "refresh": "", - "schemaVersion": 34, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "current": { - "selected": true, - "text": "\"per Wave\"", - "value": "\"per Wave\"" - }, - "hide": 0, - "includeAll": false, - "label": "Normalization", - "multi": false, - "name": "normUnit", - "options": [ - { - "selected": true, - "text": "\"per Wave\"", - "value": "\"per Wave\"" - }, - { - "selected": false, - "text": "\"per Cycle\"", - "value": "\"per Cycle\"" - }, - { - "selected": false, - "text": "\"per Sec\"", - "value": "\"per Sec\"" - }, - { - "selected": false, - "text": "\"per Kernel\"", - "value": "\"per Kernel\"" - } - ], - "query": "\"per Wave\",\n\"per Cycle\",\n\"per Sec\",\n\"per Kernel\"", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - }, - { - "current": { - "selected": false, - "text": "32", - "value": "32" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&L2Banks\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "L2 Channels", - "multi": false, - "name": "L2Banks", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&L2Banks\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "8", - "value": "8" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSE\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "#SEs", - "multi": false, - "name": "numSE", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSE\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "104", - "value": "104" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numCU\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "#CUs", - "multi": false, - "name": "numCU", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numCU\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "32", - "value": "32" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&maxWavesPerCU\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Max Waves/CU", - "multi": false, - "name": "maxWavesPerCU", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&maxWavesPerCU\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "1700", - "value": "1700" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&sclk\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "SCLK (MHz)", - "multi": false, - "name": "sclk", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&sclk\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "56", - "value": "56" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSQC\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "#SQC", - "multi": false, - "name": "numSQC", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSQC\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "1638.4", - "value": "1638.4" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&hbmBW\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "HBM BW (GB/s)", - "multi": false, - "name": "hbmBW", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&hbmBW\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "rocprofiler-compute_asw_mixbench_mi200", - "value": "rocprofiler-compute_asw_mixbench_mi200" - }, - "definition": "workload_names.names.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "hide": 0, - "includeAll": false, - "label": "Workload", - "multi": false, - "name": "Workload1", - "options": [], - "query": "workload_names.names.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "435369", - "value": "435369" - }, - "definition": "$Workload1.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"myAvg\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }, 1000] }, $sclk] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": { \"$round\": [\"&myAvg\", 0] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Kernel Cycles", - "multi": false, - "name": "kernelBusyCycles", - "options": [], - "query": "$Workload1.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"myAvg\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }, 1000] }, $sclk] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": { \"$round\": [\"&myAvg\", 0] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "103", - "value": "103" - }, - "definition": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"theAvg\": {\n \"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&GRBM_GUI_ACTIVE\", 0]},\n {\"$divide\": [{ \"$multiply\": [4, \"&SQ_BUSY_CU_CYCLES\"] }, \"&GRBM_GUI_ACTIVE\"]},\n \"\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": {\"$toInt\": { \"$min\": [{ \"$add\": [{ \"$multiply\": [{ \"$divide\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU] },8] }, { \"$min\": [{ \"$mod\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU] }, 8] }] }, $numCU] }}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"$array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"$array\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Active CUs", - "multi": false, - "name": "numActiveCUs", - "options": [], - "query": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"theAvg\": {\n \"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&GRBM_GUI_ACTIVE\", 0]},\n {\"$divide\": [{ \"$multiply\": [4, \"&SQ_BUSY_CU_CYCLES\"] }, \"&GRBM_GUI_ACTIVE\"]},\n \"\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": {\"$toInt\": { \"$min\": [{ \"$add\": [{ \"$multiply\": [{ \"$divide\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU] },8] }, { \"$min\": [{ \"$mod\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU] }, 8] }] }, $numCU] }}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"$array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"$array\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "definition": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": \"&Index\"\n }},\n {\"$sort\": {\n \"_id\": 1\n }}\n]);", - "description": "Defaults to all DispatchIDs", - "hide": 2, - "includeAll": true, - "label": "Filtered Dispatch ID", - "multi": false, - "name": "DispatchIDFilter", - "options": [], - "query": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": \"&Index\"\n }},\n {\"$sort\": {\n \"_id\": 1\n }}\n]);", - "refresh": 1, - "regex": "${DispatchID:text}", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": "", - "value": "" - }, - "description": "Desired DispatchID filters as regex ex. (1|18)", - "hide": 0, - "label": "Dispatch Filter", - "name": "DispatchID", - "options": [ - { - "selected": true, - "text": "", - "value": "" - } - ], - "query": "", - "skipUrlSync": false, - "type": "textbox" - }, - { - "current": { - "selected": false, - "text": "0", - "value": "0" - }, - "definition": "$Workload1.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&gpu-id\"\n }}\n]);", - "hide": 0, - "includeAll": false, - "label": "GCD", - "multi": false, - "name": "gpuFilter", - "options": [], - "query": "$Workload1.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&gpu-id\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 3, - "type": "query" - }, - { - "current": { - "selected": true, - "text": [ - "All" - ], - "value": [ - "$__all" - ] - }, - "definition": "$Workload1.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&KernelName\"\n }}\n]);", - "hide": 0, - "includeAll": true, - "label": "Kernels", - "multi": true, - "name": "KernelNameFilter", - "options": [], - "query": "$Workload1.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&KernelName\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "rocprofiler-compute_asw_mixbench_mi200", - "value": "rocprofiler-compute_asw_mixbench_mi200" - }, - "definition": "workload_names.names.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "hide": 0, - "includeAll": false, - "label": "Baseline Workload", - "multi": false, - "name": "Workload2", - "options": [], - "query": "workload_names.names.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "103", - "value": "103" - }, - "definition": "$Workload2.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"theAvg\": {\n \"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&GRBM_GUI_ACTIVE\", 0]},\n {\"$divide\": [{ \"$multiply\": [4, \"&SQ_BUSY_CU_CYCLES\"] }, \"&GRBM_GUI_ACTIVE\"]},\n \"\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": {\"$toInt\": { \"$min\": [{ \"$add\": [{ \"$multiply\": [{ \"$divide\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU2] },8] }, { \"$min\": [{ \"$mod\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU2] }, 8] }] }, $numCU2] }}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline ActiveCUs", - "multi": false, - "name": "numActiveCUs2", - "options": [], - "query": "$Workload2.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"theAvg\": {\n \"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&GRBM_GUI_ACTIVE\", 0]},\n {\"$divide\": [{ \"$multiply\": [4, \"&SQ_BUSY_CU_CYCLES\"] }, \"&GRBM_GUI_ACTIVE\"]},\n \"\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": {\"$toInt\": { \"$min\": [{ \"$add\": [{ \"$multiply\": [{ \"$divide\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU2] },8] }, { \"$min\": [{ \"$mod\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU2] }, 8] }] }, $numCU2] }}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "definition": "$Workload2.pmc_perf.aggregate([\n {\"$match\": {\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}}\n }},\n {\"$group\": {\n \"_id\": \"&Index\"\n }},\n {\"$sort\": {\n \"_id\": 1\n }}\n]);", - "description": "Defaults to all DispatchIDs", - "hide": 2, - "includeAll": true, - "label": "Baseline Dispatch IDs", - "multi": false, - "name": "DispatchIDFilter2", - "options": [], - "query": "$Workload2.pmc_perf.aggregate([\n {\"$match\": {\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}}\n }},\n {\"$group\": {\n \"_id\": \"&Index\"\n }},\n {\"$sort\": {\n \"_id\": 1\n }}\n]);", - "refresh": 1, - "regex": "${DispatchID2:text}", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": "", - "value": "" - }, - "description": "Desired DispatchID filters as regex ex. (1|18)", - "hide": 0, - "label": "Baseline Dispatch Filter", - "name": "DispatchID2", - "options": [ - { - "selected": true, - "text": "", - "value": "" - } - ], - "query": "", - "skipUrlSync": false, - "type": "textbox" - }, - { - "current": { - "selected": false, - "text": "0", - "value": "0" - }, - "definition": "$Workload2.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&gpu-id\"\n }}\n]);", - "hide": 0, - "includeAll": false, - "label": "Baseline GCD", - "multi": false, - "name": "gpuFilter2", - "options": [], - "query": "$Workload2.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&gpu-id\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": [ - "All" - ], - "value": [ - "$__all" - ] - }, - "definition": "$Workload2.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&KernelName\"\n }}\n]);", - "hide": 0, - "includeAll": true, - "label": "Baseline Kernels", - "multi": true, - "name": "KernelNameFilter2", - "options": [], - "query": "$Workload2.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&KernelName\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": [ - "System Info" - ], - "value": [ - "System Info" - ] - }, - "hide": 0, - "includeAll": false, - "label": "Comparison Panels", - "multi": true, - "name": "select", - "options": [ - { - "selected": true, - "text": "System Info", - "value": "System Info" - }, - { - "selected": false, - "text": "System Speed-of-Light", - "value": "System Speed-of-Light" - }, - { - "selected": false, - "text": "Roofline", - "value": "Roofline" - }, - { - "selected": false, - "text": "Command Processor", - "value": "Command Processor" - }, - { - "selected": false, - "text": "Shader Processor Input", - "value": "Shader Processor Input" - }, - { - "selected": false, - "text": "Wavefront", - "value": "Wavefront" - }, - { - "selected": false, - "text": "Compute Pipeline", - "value": "Compute Pipeline" - }, - { - "selected": false, - "text": "Instruction Mix", - "value": "Instruction Mix" - }, - { - "selected": false, - "text": "Local Data Share", - "value": "Local Data Share" - }, - { - "selected": false, - "text": "Instruction Cache", - "value": "Instruction Cache" - }, - { - "selected": false, - "text": "Scalar L1D Cache", - "value": "Scalar L1D Cache" - }, - { - "selected": false, - "text": "Texture Addr and Data", - "value": "Texture Addr and Data" - }, - { - "selected": false, - "text": "Vector L1D Cache", - "value": "Vector L1D Cache" - }, - { - "selected": false, - "text": "L2 Cache", - "value": "L2 Cache" - } - ], - "query": "System Info, \nSystem Speed-of-Light, \nRoofline,\nCommand Processor, \nShader Processor Input, \nWavefront,\nCompute Pipeline, \nInstruction Mix,\nLocal Data Share, \nInstruction Cache, \nScalar L1D Cache, \nTexture Addr and Data, \nVector L1D Cache,\nL2 Cache", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - }, - { - "current": { - "selected": false, - "text": "32", - "value": "32" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&L2Banks\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline L2 Channels", - "multi": false, - "name": "L2Banks2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&L2Banks\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "8", - "value": "8" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSE\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline #SEs", - "multi": false, - "name": "numSE2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSE\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "104", - "value": "104" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numCU\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline #CUs", - "multi": false, - "name": "numCU2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numCU\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "32", - "value": "32" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&maxWavesPerCU\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline Max Waves/CU", - "multi": false, - "name": "maxWavesPerCU2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&maxWavesPerCU\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "1700", - "value": "1700" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&sclk\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline SCLK (MHz)", - "multi": false, - "name": "sclk2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&sclk\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "56", - "value": "56" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSQC\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline #SQC", - "multi": false, - "name": "numSQC2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSQC\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "1638.4", - "value": "1638.4" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&hbmBW\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline HBM BW (GB/s)", - "multi": false, - "name": "hbmBW2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&hbmBW\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "mi200", - "value": "mi200" - }, - "definition": "${Workload1}.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "SOC", - "multi": false, - "name": "soc", - "options": [], - "query": "${Workload1}.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": "5", - "value": "5" - }, - "hide": 0, - "includeAll": false, - "multi": false, - "name": "TopN", - "options": [ - { - "selected": false, - "text": "1", - "value": "1" - }, - { - "selected": true, - "text": "5", - "value": "5" - }, - { - "selected": false, - "text": "10", - "value": "10" - }, - { - "selected": false, - "text": "15", - "value": "15" - }, - { - "selected": false, - "text": "20", - "value": "20" - }, - { - "selected": false, - "text": "50", - "value": "50" - }, - { - "selected": false, - "text": "100", - "value": "100" - } - ], - "query": "1,5,10,15,20,50,100", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - } - ] - }, - "time": { - "from": "2021-11-04T14:21:39.749Z", - "to": "2021-11-08T14:21:39.749Z" - }, - "timepicker": {}, - "timezone": "", - "title": "rocprofiler-compute_v1.0.3_pub", - "uid": "rocprofiler-compute_v1_0_063020221", - "version": 4, - "weekStart": "" -} diff --git a/projects/rocprofiler-compute/grafana/dashboards/RocProfCompute_v1.0.5_pub.json b/projects/rocprofiler-compute/grafana/dashboards/RocProfCompute_v1.0.5_pub.json deleted file mode 100644 index 9e32666d7a..0000000000 --- a/projects/rocprofiler-compute/grafana/dashboards/RocProfCompute_v1.0.5_pub.json +++ /dev/null @@ -1,13331 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 0, - "id": 41, - "iteration": 1670355676329, - "links": [], - "liveNow": false, - "panels": [ - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 217, - "panels": [ - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [] - }, - "gridPos": { - "h": 23, - "w": 13, - "x": 0, - "y": 1 - }, - "id": 159, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.sysinfo.aggregate([\n {\"$project\": {\n \"_id\": 0,\n \"date\":1,\n \"host_name\": 1,\n \"host_cpu\": 1,\n \"host_distro\": 1,\n \"host_kernel\": 1,\n \"host_rocmver\": 1,\n \"gpu_soc\": 1,\n \"name\": 1,\n \"numSE\": 1,\n \"numSQC\": 1,\n \"numCU\": 1,\n \"numSIMD\": 1,\n \"waveSize\": 1,\n \"maxWavesPerCU\": 1,\n \"maxWorkgroupSize\":1,\n \"L1\":1,\n \"L2\":1,\n \"L2Banks\": 1,\n \"sclk\":1,\n \"mclk\":1,\n \"cur_sclk\": 1,\n \"cur_mclk\":1,\n \"hbmBW\":1\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\":\"Date\",\n \"Value\": \"&date\"\n },\n {\n \"Metric\":\"Host Name\",\n \"Value\": \"&host_name\"\n },\n {\n \"Metric\":\"Host CPU\",\n \"Value\": \"&host_cpu\"\n },\n {\n \"Metric\":\"Host Distro\",\n \"Value\": \"&host_distro\"\n },\n {\n \"Metric\":\"Host Kernel\",\n \"Value\": \"&host_kernel\"\n },\n {\n \"Metric\":\"ROCm Version\",\n \"Value\": \"&host_rocmver\"\n },\n {\n \"Metric\":\"GFX SoC\",\n \"Value\": \"&name\"\n },\n {\n \"Metric\":\"GFX ID\",\n \"Value\": \"&gpu_soc\"\n },\n {\n \"Metric\":\"Total SEs\",\n \"Value\":\"&numSE\"\n },\n {\n \"Metric\":\"Total SQCs\",\n \"Value\":\"&numSQC\"\n },\n {\n\n \"Metric\":\"Total CUs\",\n \"Value\":\"&numCU\"\n },\n {\n \"Metric\":\"SIMDs/CU\",\n \"Value\": \"&numSIMD\"\n },\n {\n \"Metric\":\"Max Wavefronts Occupancy Per CU\",\n \"Value\":\"&maxWavesPerCU\"\n },\n {\n \"Metric\":\"Max Workgroup Size\",\n \"Value\":\"&maxWorkgroupSize\"\n },\n {\n \"Metric\":\"L1Cache per CU (KB)\",\n \"Value\":\"&L1\"\n },\n {\n \"Metric\":\"L2Cache (KB)\",\n \"Value\":\"&L2\"\n },\n {\n \"Metric\":\"L2Cache Channels\",\n \"Value\":\"&L2Banks\"\n },\n {\n \"Metric\":\"Sys Clock (Max) - MHz\",\n \"Value\":\"&sclk\"\n \n },\n {\n \"Metric\":\"Memory Clock (Max) - MHz\",\n \"Value\":\"&mclk\"\n },\n {\n \"Metric\":\"Sys Clock (Cur) - MHz\",\n \"Value\":\"&cur_sclk\"\n \n },\n {\n \"Metric\":\"Memory Clock (Cur) - MHz\",\n \"Value\":\"&cur_mclk\"\n },\n {\n \"Metric\":\"HBM Bandwidth - GB/s\",\n \"Value\":\"&hbmBW\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.sysinfo.aggregate([\n {\"$match\": {\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(System Info)\"}}\n }},\n\n {\"$project\": {\n \"_id\": 0,\n \"date\":1,\n \"host_name\": 1,\n \"host_cpu\": 1,\n \"host_distro\": 1,\n \"host_kernel\": 1,\n \"host_rocmver\": 1,\n \"gpu_soc\": 1,\n \"name\": 1,\n \"numSE\": 1,\n \"numSQC\": 1,\n \"numCU\": 1,\n \"numSIMD\": 1,\n \"waveSize\": 1,\n \"maxWavesPerCU\": 1,\n \"maxWorkgroupSize\":1,\n \"L1\":1,\n \"L2\":1,\n \"L2Banks\": 1,\n \"sclk\":1,\n \"mclk\":1,\n \"cur_sclk\": 1,\n \"cur_mclk\":1,\n \"hbmBW\":1\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\":\"Date\",\n \"Value\": \"&date\"\n },\n {\n \"Metric\":\"Host Name\",\n \"Value\": \"&host_name\"\n },\n {\n \"Metric\":\"Host CPU\",\n \"Value\": \"&host_cpu\"\n },\n {\n \"Metric\":\"Host Distro\",\n \"Value\": \"&host_distro\"\n },\n {\n \"Metric\":\"Host Kernel\",\n \"Value\": \"&host_kernel\"\n },\n {\n \"Metric\":\"ROCm Version\",\n \"Value\": \"&host_rocmver\"\n },\n {\n \"Metric\":\"GFX SoC\",\n \"Value\": \"&name\"\n },\n {\n \"Metric\":\"GFX ID\",\n \"Value\": \"&gpu_soc\"\n },\n {\n \"Metric\":\"Total SEs\",\n \"Value\":\"&numSE\"\n },\n {\n \"Metric\":\"Total SQCs\",\n \"Value\":\"&numSQC\"\n },\n {\n\n \"Metric\":\"Total CUs\",\n \"Value\":\"&numCU\"\n },\n {\n \"Metric\":\"SIMDs/CU\",\n \"Value\": \"&numSIMD\"\n },\n {\n \"Metric\":\"Max Wavefronts Occupancy Per CU\",\n \"Value\":\"&maxWavesPerCU\"\n },\n {\n \"Metric\":\"Max Workgroup Size\",\n \"Value\":\"&maxWorkgroupSize\"\n },\n {\n \"Metric\":\"L1Cache per CU (KB)\",\n \"Value\":\"&L1\"\n },\n {\n \"Metric\":\"L2Cache (KB)\",\n \"Value\":\"&L2\"\n },\n {\n \"Metric\":\"L2Cache Channels\",\n \"Value\":\"&L2Banks\"\n },\n {\n \"Metric\":\"Sys Clock (Max) - MHz\",\n \"Value\":\"&sclk\"\n \n },\n {\n \"Metric\":\"Memory Clock (Max) - MHz\",\n \"Value\":\"&mclk\"\n },\n {\n \"Metric\":\"Sys Clock (Cur) - MHz\",\n \"Value\":\"&cur_sclk\"\n \n },\n {\n \"Metric\":\"Memory Clock (Cur) - MHz\",\n \"Value\":\"&cur_mclk\"\n },\n {\n \"Metric\":\"HBM Bandwidth - GB/s\",\n \"Value\":\"&hbmBW\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "System Info", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true - }, - "indexByName": {}, - "renameByName": { - "Value 1": "Current", - "Value 2": "Baseline" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "System Info", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 1 - }, - "id": 108, - "panels": [ - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto", - "filterable": false - }, - "decimals": 0, - "links": [], - "mappings": [ - { - "options": { - "match": "false", - "result": { - "index": 0 - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text" - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Percent of Peak - PoP" - }, - "properties": [ - { - "id": "unit", - "value": "percent" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "transparent" - }, - { - "color": "orange", - "value": 50 - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - { - "id": "custom.displayMode", - "value": "color-background" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.displayMode", - "value": "color-text" - }, - { - "id": "custom.width", - "value": 252 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit 1" - }, - "properties": [ - { - "id": "custom.displayMode", - "value": "color-background" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 137 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 110 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 125 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg" - }, - "properties": [ - { - "id": "custom.width", - "value": 161 - } - ] - } - ] - }, - "gridPos": { - "h": 29, - "w": 15, - "x": 0, - "y": 2 - }, - "id": 110, - "interval": "2h", - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"valu_flops_val\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }] }] }\n ]}\n ,{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }]\n }},\n \n \"valu_intOps_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] }] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n },\n \n \"mfma_flops_f16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_bf16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f32_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f64_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_i8_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \n \n \"salu_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU] }] }\n },\n \n \"valu_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU] }] }\n },\n \n \"mfma_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU, 4] }] }\n },\n\n \n \"lds_bconf\": {\n \"$avg\": {\"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n } \n },\n \n \n \"lds_bw\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]}, \n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]}\n },\n \n \"lds_bw_pop\": {\n \"$avg\": {\"$divide\": [\n {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]}, \n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]}, \n {\"$multiply\": [$sclk, $numCU, 0.00128]}\n ]}\n },\n \n \"unpredthreads_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \n \"ipcIssue_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\", \"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"eaWriteLat_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\" , 0]},\n { \"$divide\": [\"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\"] },\n null \n ]\n }\n },\n \"eaReadLat_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\" , 0]},\n { \"$divide\": [\"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\"] },\n null \n ]\n }\n },\n \"eaWriteBW_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64] }, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n }, \n \"eaReadBW_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32] }, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] }] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n },\n \"l2_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }, 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }] },\n null \n ]\n }\n },\n \"vecl1_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]},\n { \"$subtract\": [100, { \"$divide\": [{ \"$multiply\": [100, { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }] }, \"&TCP_TOTAL_CACHE_ACCESSES_sum\"] }] },\n null\n ]\n }\n },\n \"vecl1_BW_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \"l1k_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\"]} , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\"]}] },\n null\n ]\n }\n },\n \"l1i_hitRate_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\"]}] }\n },\n \"l1i_BW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQC_ICACHE_REQ\",{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }, 64] }\n },\n \"l1k_BW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQC_DCACHE_REQ\", { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }, 64] }\n }\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"VALU FLOPs\",\n \"Value\": \"&valu_flops_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 64, 2 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&valu_flops_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 64, 2 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"VALU IOPs\",\n \"Value\": \"&valu_intOps_val\",\n \"Unit\": \"GIOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 64, 2 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&valu_intOps_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 64, 2 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (BF16)\",\n \"Value\": \"&mfma_flops_bf16_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 512 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_bf16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 512 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F16)\",\n \"Value\": \"&mfma_flops_f16_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 1024 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 1024 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F32)\",\n \"Value\": \"&mfma_flops_f32_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 256 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f32_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 256 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F64)\",\n \"Value\": \"&mfma_flops_f64_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 256 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f64_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 256 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA IOPs (Int8)\",\n \"Value\": \"&mfma_flops_i8_val\",\n \"Unit\": \"GIOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 1024 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_i8_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 1024 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"Active CUs\",\n \"Value\": $numActiveCUs,\n \"Unit\": \"CUs\",\n \"peak\": $numCU,\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, $numActiveCUs] }, $numCU]}\n },\n \n {\n \"Metric\": \"SALU Util\",\n \"Value\": \"&salu_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&salu_val\"\n },\n {\n \"Metric\": \"VALU Util\",\n \"Value\": \"&valu_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&valu_val\"\n },\n {\n \"Metric\": \"MFMA Util\",\n \"Value\": \"&mfma_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&mfma_val\"\n },\n {\n \"Metric\": \"VALU Active Threads/Wave\",\n \"Value\": \"&unpredthreads_val\",\n \"Unit\": \"Threads\",\n \"peak\": 64,\n \"Percent of Peak - PoP\": { \"$multiply\": [\"&unpredthreads_val\", 1.5625]}\n },\n {\n \"Metric\": \"IPC - Issue\",\n \"Value\": \"&ipcIssue_val\",\n \"Unit\": \"Instr/cycle\",\n \"peak\": 5,\n \"Percent of Peak - PoP\": {\"$divide\": [{ \"$multiply\": [100, \"&ipcIssue_val\"] }, 5] }\n },\n {\n \"Metric\": \"LDS BW\",\n \"Value\": \"&lds_bw\",\n \"Unit\": \"GB/sec\",\n \"peak\": {\"$multiply\": [$sclk, $numCU, 0.128]},\n \"Percent of Peak - PoP\": \"&lds_bw_pop\"\n },\n {\n \"Metric\": \"LDS Bank Conflict\",\n \"Value\": \"&lds_bconf\",\n \"Unit\": \"Conflicts/access\",\n \"peak\": \"32\",\n \"Percent of Peak - PoP\": {\"$divide\": [{ \"$multiply\": [100, \"&lds_bconf\"] }, 32] }\n },\n {\n \"Metric\": \"Instr Cache Hit Rate\",\n \"Value\": \"&l1i_hitRate_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l1i_hitRate_val\"\n }, \n {\n \"Metric\": \"Instr Cache BW\",\n \"Value\": \"&l1i_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numSQC]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&l1i_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numSQC]}] }\n },\n {\n \"Metric\": \"Scalar L1D Cache Hit Rate\",\n \"Value\": \"&l1k_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l1k_cacheHits_val\"\n },\n {\n \"Metric\": \"Scalar L1D Cache BW\",\n \"Value\": \"&l1k_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numSQC]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&l1k_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numSQC]}] }\n },\n\n {\n \"Metric\": \"Vector L1D Cache Hit Rate\",\n \"Value\": \"&vecl1_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&vecl1_cacheHits_val\"\n },\n {\n \"Metric\": \"Vector L1D Cache BW\",\n \"Value\": \"&vecl1_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numCU]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&vecl1_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numCU]}] }\n },\n {\n \"Metric\": \"L2 Cache Hit Rate\",\n \"Value\": \"&l2_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l2_cacheHits_val\"\n },\n {\n \"Metric\": \"L2-Fabric Read BW\",\n \"Value\": \"&eaReadBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": \"$hbmBW\",\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&eaReadBW_val\"] }, $hbmBW] }\n },\n {\n \"Metric\": \"L2-Fabric Write BW\",\n \"Value\": \"&eaWriteBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": \"$hbmBW\",\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&eaWriteBW_val\"] }, $hbmBW] }\n },\n {\n \"Metric\": \"L2-Fabric Read Latency\",\n \"Value\": \"&eaReadLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n },\n {\n \"Metric\": \"L2-Fabric Write Latency\",\n \"Value\": \"&eaWriteLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_LEVEL_WAVES\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"waveOcc_val\": {\n \"$avg\": { \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\"] }\n },\n \"waveOcc_pop\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\"] },{ \"$multiply\": [$maxWavesPerCU, $numCU] }] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave Occupancy\",\n \"Value\": \"&waveOcc_val\",\n \"Unit\": \"Wavefronts\",\n \"peak\": { \"$multiply\": [$maxWavesPerCU, $numCU] },\n \"Percent of Peak - PoP\": { \"$multiply\": [100, \"&waveOcc_pop\"] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n ]\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_IFETCH_LEVEL\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"instrFetchBW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQ_IFETCH\", { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }, 32] }\n },\n \"instrFetchLat_val\": {\n \"$avg\": { \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\"] }\n }\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Instr Fetch BW\",\n \"Value\": \"&instrFetchBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 32] }, $numSQC]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&instrFetchBW_val\"]}, { \"$multiply\": [$numSQC, { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 32] }] }] }\n },\n {\n \"Metric\": \"Instr Fetch Latency\",\n \"Value\": \"&instrFetchLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n ]\n }}\n\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"System Speed-of-Light\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"valu_flops_val\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }] }] }\n ]}\n ,{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }]\n }},\n \n \"valu_intOps_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] }] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n },\n \n \"mfma_flops_f16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_bf16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f32_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f64_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_i8_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \n \n \"salu_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2] }] }\n },\n \n \"valu_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2] }] }\n },\n \n \"mfma_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2, 4] }] }\n },\n \n \"lds_bconf\": {\n \"$avg\": {\"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n } \n },\n \n \"lds_bw\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks2\"}\n ]}, \n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]}\n },\n \n \"lds_bw_pop\": {\n \"$avg\": {\"$divide\": [\n {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks2\"}\n ]}, \n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]}, \n {\"$multiply\": [$sclk2, $numCU2, 0.00128]}\n ]}\n },\n \n \"unpredthreads_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \n \"ipcIssue_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\", \"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"eaWriteLat_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\" , 0]},\n { \"$divide\": [\"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\"] },\n null \n ]\n }\n },\n \"eaReadLat_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\" , 0]},\n { \"$divide\": [\"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\"] },\n null \n ]\n }\n },\n \"eaWriteBW_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64] }, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n }, \n \"eaReadBW_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32] }, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] }] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n },\n \"l2_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }, 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }] },\n null \n ]\n }\n },\n \"vecl1_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]},\n { \"$subtract\": [100, { \"$divide\": [{ \"$multiply\": [100, { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }] }, \"&TCP_TOTAL_CACHE_ACCESSES_sum\"] }] },\n null\n ]\n }\n },\n \"vecl1_BW_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \"l1k_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\"]} , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\"]}] },\n null\n ]\n }\n },\n \"l1i_hitRate_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\"]}] }\n },\n \"l1i_BW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQC_ICACHE_REQ\",{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }, 64] }\n },\n \"l1k_BW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQC_DCACHE_REQ\", { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }, 64] }\n }\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"VALU FLOPs\",\n \"Value\": \"&valu_flops_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 64, 2 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&valu_flops_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 64, 2 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"VALU IOPs\",\n \"Value\": \"&valu_intOps_val\",\n \"Unit\": \"GIOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 64, 2 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&valu_intOps_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 64, 2 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (BF16)\",\n \"Value\": \"&mfma_flops_bf16_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 512 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_bf16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 512 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F16)\",\n \"Value\": \"&mfma_flops_f16_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 1024 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 1024 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F32)\",\n \"Value\": \"&mfma_flops_f32_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 256 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f32_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 256 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F64)\",\n \"Value\": \"&mfma_flops_f64_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 256 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f64_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 256 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA IOPs (Int8)\",\n \"Value\": \"&mfma_flops_i8_val\",\n \"Unit\": \"GIOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 1024 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_i8_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 1024 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"Active CUs\",\n \"Value\": $numActiveCUs2,\n \"Unit\": \"CUs\",\n \"peak\": $numCU2,\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, $numActiveCUs2] }, $numCU2]}\n },\n \n {\n \"Metric\": \"SALU Util\",\n \"Value\": \"&salu_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&salu_val\"\n },\n {\n \"Metric\": \"VALU Util\",\n \"Value\": \"&valu_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&valu_val\"\n },\n {\n \"Metric\": \"MFMA Util\",\n \"Value\": \"&mfma_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&mfma_val\"\n },\n {\n \"Metric\": \"VALU Active Threads/Wave\",\n \"Value\": \"&unpredthreads_val\",\n \"Unit\": \"Threads\",\n \"peak\": 64,\n \"Percent of Peak - PoP\": { \"$multiply\": [\"&unpredthreads_val\", 1.5625]}\n },\n {\n \"Metric\": \"IPC - Issue\",\n \"Value\": \"&ipcIssue_val\",\n \"Unit\": \"Instr/cycle\",\n \"peak\": 5,\n \"Percent of Peak - PoP\": {\"$divide\": [{ \"$multiply\": [100, \"&ipcIssue_val\"] }, 5] }\n },\n {\n \"Metric\": \"LDS BW\",\n \"Value\": \"&lds_bw\",\n \"Unit\": \"GB/sec\",\n \"peak\": {\"$multiply\": [$sclk2, $numCU2, 0.128]},\n \"Percent of Peak - PoP\": \"&lds_bw_pop\"\n },\n {\n \"Metric\": \"LDS Bank Conflict\",\n \"Value\": \"&lds_bconf\",\n \"Unit\": \"Conflicts/access\",\n \"peak\": \"32\",\n \"Percent of Peak - PoP\": {\"$divide\": [{ \"$multiply\": [100, \"&lds_bconf\"] }, 32] }\n },\n {\n \"Metric\": \"Instr Cache Hit Rate\",\n \"Value\": \"&l1i_hitRate_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l1i_hitRate_val\"\n }, \n {\n \"Metric\": \"Instr Cache BW\",\n \"Value\": \"&l1i_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numSQC2]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&l1i_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numSQC2]}] }\n },\n {\n \"Metric\": \"Scalar L1D Cache Hit Rate\",\n \"Value\": \"&l1k_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l1k_cacheHits_val\"\n },\n {\n \"Metric\": \"Scalar L1D Cache BW\",\n \"Value\": \"&l1k_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numSQC2]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&l1k_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numSQC2]}] }\n },\n\n {\n \"Metric\": \"Vector L1D Cache Hit Rate\",\n \"Value\": \"&vecl1_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&vecl1_cacheHits_val\"\n },\n {\n \"Metric\": \"Vector L1D Cache BW\",\n \"Value\": \"&vecl1_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numCU2]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&vecl1_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numCU2]}] }\n },\n {\n \"Metric\": \"L2 Cache Hit Rate\",\n \"Value\": \"&l2_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l2_cacheHits_val\"\n }, \n {\n \"Metric\": \"L2-Fabric Read BW\",\n \"Value\": \"&eaReadBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": \"$hbmBW2\",\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&eaReadBW_val\"] }, $hbmBW2] }\n },\n {\n \"Metric\": \"L2-Fabric Write BW\",\n \"Value\": \"&eaWriteBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": \"$hbmBW2\",\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&eaWriteBW_val\"] }, $hbmBW2] }\n },\n {\n \"Metric\": \"L2-Fabric Read Latency\",\n \"Value\": \"&eaReadLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n },\n {\n \"Metric\": \"L2-Fabric Write Latency\",\n \"Value\": \"&eaWriteLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n }\n \n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_LEVEL_WAVES\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"System Speed-of-Light\"}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"waveOcc_val\": {\n \"$avg\": { \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\"] }\n },\n \"waveOcc_pop\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\"] },{ \"$multiply\": [$maxWavesPerCU2, $numCU2] }] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave Occupancy\",\n \"Value\": \"&waveOcc_val\",\n \"Unit\": \"Wavefronts\",\n \"peak\": { \"$multiply\": [$maxWavesPerCU2, $numCU2] },\n \"Percent of Peak - PoP\": { \"$multiply\": [100, \"&waveOcc_pop\"] }\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n ]\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_IFETCH_LEVEL\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"System Speed-of-Light\"}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"instrFetchBW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQ_IFETCH\", { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }, 32] }\n },\n \"instrFetchLat_val\": {\n \"$avg\": { \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\"] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Instr Fetch BW\",\n \"Value\": \"&instrFetchBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 32] }, $numSQC2]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&instrFetchBW_val\"]}, { \"$multiply\": [$numSQC2, { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 32] }] }] }\n },\n {\n \"Metric\": \"Instr Fetch Latency\",\n \"Value\": \"&instrFetchLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]\n }}\n\n ]);", - "type": "table" - } - ], - "title": "Speed of Light", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Metric 1": 0, - "Metric 2": 7, - "Percent of Peak - PoP 1": 5, - "Percent of Peak - PoP 2": 6, - "Unit 1": 8, - "Unit 2": 9, - "Value 1": 1, - "Value 2": 2, - "peak 1": 3, - "peak 2": 4 - }, - "renameByName": { - "Percent of Peak - PoP": "Pct-of-Peak", - "Percent of Peak - PoP 1": "Pct-of-Peak (Current)", - "Percent of Peak - PoP 2": "Pct-of-Peak (Baseline)", - "Unit": "", - "Value": "Avg", - "Value 1": "Avg (Current)", - "Value 2": "Avg (Baseline)", - "peak": "Theoretical Max", - "peak 1": "Theoretical Max (Current)", - "peak 2": "Theoretical Max (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Dispatch ID" - }, - "properties": [ - { - "id": "custom.width", - "value": 126 - } - ] - } - ] - }, - "gridPos": { - "h": 29, - "w": 4, - "x": 16, - "y": 2 - }, - "id": 175, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Dispatch ID\": \"&Index\",\n \"Kernel Name\": \"&KernelName\"\n }},\n {\"$sort\": {\n \"Dispatch ID\": 1\n }}\n],\n{ allowDiskUse: true }\n);", - "type": "table" - } - ], - "title": "Dispatch IDs - Current", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": {}, - "renameByName": { - "_id": "Dispatch ID" - } - } - } - ], - "type": "table" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Dispatch ID" - }, - "properties": [ - { - "id": "custom.width", - "value": 127 - } - ] - } - ] - }, - "gridPos": { - "h": 29, - "w": 4, - "x": 20, - "y": 2 - }, - "id": 215, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "tlh8EwUnk" - }, - "rawQuery": true, - "refId": "A", - "target": "$Workload2.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Dispatch ID\": \"&Index\",\n \"Kernel Name\": \"&KernelName\"\n }},\n {\"$sort\": {\n \"Dispatch ID\": 1\n }}\n]);", - "type": "table" - } - ], - "title": "Dispatch IDs - Baseline", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": {}, - "renameByName": { - "_id": "Dispatch ID" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "System Speed-of-Light", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 2 - }, - "id": 36, - "panels": [ - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "fillOpacity": 80, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineWidth": 1 - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - } - ] - }, - "unit": "µs" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 24, - "x": 0, - "y": 3 - }, - "id": 157, - "options": { - "bucketOffset": 0, - "legend": { - "calcs": [], - "displayMode": "hidden", - "placement": "bottom" - } - }, - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "u5Z2zJhnk" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"elapsedTime1\": {\n \"$divide\": [{\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}, 1000]\n }\n }},\n\n {\"$project\": {\n \"_id\": 0,\n \"elapsedTime1\": 1\n }}\n]);", - "type": "table" - } - ], - "title": "Kernel Time Histogram", - "transparent": true, - "type": "histogram" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "transparent" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "TotalDuration" - }, - "properties": [ - { - "id": "unit", - "value": "ns" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg Duration" - }, - "properties": [ - { - "id": "unit", - "value": "ns" - }, - { - "id": "custom.width", - "value": 107 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "LDS" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 110 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L1 Cache" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 95 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2 Cache" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 123 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "HBM BW " - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Calls" - }, - "properties": [ - { - "id": "custom.width", - "value": 69 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Name" - }, - "properties": [ - { - "id": "custom.width", - "value": 165 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Total Duration" - }, - "properties": [ - { - "id": "custom.width", - "value": 126 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F16)" - }, - "properties": [ - { - "id": "custom.width", - "value": 143 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (BF16)" - }, - "properties": [ - { - "id": "custom.width", - "value": 155 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F32)" - }, - "properties": [ - { - "id": "custom.width", - "value": 146 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F64)" - }, - "properties": [ - { - "id": "custom.width", - "value": 146 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Throughput" - }, - "properties": [ - { - "id": "unit", - "value": "gflops" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Total FLOPs" - }, - "properties": [ - { - "id": "decimals", - "value": 0 - }, - { - "id": "custom.width", - "value": 141 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "VALU FLOPs" - }, - "properties": [ - { - "id": "decimals", - "value": 0 - }, - { - "id": "custom.width", - "value": 130 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (HBM)" - }, - "properties": [ - { - "id": "custom.width", - "value": 89 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (L2 Cache)" - }, - "properties": [ - { - "id": "custom.width", - "value": 103 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (L1 Cache)" - }, - "properties": [ - { - "id": "custom.width", - "value": 114 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Performance" - }, - "properties": [ - { - "id": "custom.width", - "value": 144 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Peak FLOPs" - }, - "properties": [ - { - "id": "unit", - "value": "gflops" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "HBM" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - } - ] - } - ] - }, - "gridPos": { - "h": 12, - "w": 24, - "x": 0, - "y": 12 - }, - "id": 213, - "interval": "2h", - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [ - { - "desc": true, - "displayName": "L1 Cache (Bytes)" - } - ] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "HV80ot2nz" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n { \"$group\": { \n \"_id\": \"&KernelName\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n\n \"Throughput\": {\n \"$avg\": { \"$divide\": [\n \n {\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]},\n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]}\n },\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"LDS_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 128 ]} \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n },\n \"hbm_bw\": {\n \"$avg\": {\n \"$divide\": [\n {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n },\n {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}\n ]\n\n }\n }\n\n }},\n \n {\"$sort\": { \"TotalDuration\": -1 }},\n \n { \"$limit\": $TopN },\n\n {\"$addFields\": {\n \"ai_L1\": { \"$cond\": [\n {\"$ne\": [\"&L1cache_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"]},\n \"\"\n ]},\n \"ai_L2\": { \"$cond\": [\n {\"$ne\": [\"&L2cache_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"]},\n \"\"\n ]},\n \"ai_hbm\": { \"$cond\": [\n {\"$ne\": [\"&hbm_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"]},\n \"\"\n ]}\n }}\n]);", - "type": "table" - } - ], - "title": "Top Kernels", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "AvgDuration": 5, - "Calls": 1, - "L1cache_data": 16, - "L2cache_data": 17, - "LDS_data": 15, - "Throughput": 2, - "TotalDuration": 4, - "_id": 0, - "ai_L1": 6, - "ai_L2": 7, - "ai_hbm": 8, - "hbm_bw": 3, - "hbm_data": 18, - "mfma_flops_bf16": 12, - "mfma_flops_f16": 11, - "mfma_flops_f32": 13, - "mfma_flops_f64": 14, - "total_flops": 9, - "valu_flops": 10 - }, - "renameByName": { - "AvgDuration": "Avg Duration", - "Calls": "", - "L1cache_data": "Vector L1D Cache", - "L2cache_data": "L2 Cache", - "LDS_data": "LDS", - "Throughput": "Performance", - "TotalDuration": "Total Duration", - "_id": "Name", - "ai_L1": "AI (Vector L1D Cache)", - "ai_L2": "AI (L2 Cache)", - "ai_hbm": "AI (HBM)", - "hbm_bw": "HBM BW ", - "hbm_data": "HBM", - "mfma_flops_bf16": "MFMA FLOPs (BF16)", - "mfma_flops_f16": "MFMA FLOPs (F16)", - "mfma_flops_f32": "MFMA FLOPs (F32)", - "mfma_flops_f64": "MFMA FLOPs (F64)", - "peak_flops": "Peak FLOPs", - "total_flops": "Total FLOPs", - "valu_flops": "VALU FLOPs" - } - } - } - ], - "type": "table" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "transparent" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "TotalDuration" - }, - "properties": [ - { - "id": "unit", - "value": "ns" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg Duration" - }, - "properties": [ - { - "id": "unit", - "value": "ns" - }, - { - "id": "custom.width", - "value": 138 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "LDS " - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 110 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L1 Cache" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 95 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2 Cache" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 87 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "HBM BW " - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Calls" - }, - "properties": [ - { - "id": "custom.width", - "value": 69 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Name" - }, - "properties": [ - { - "id": "custom.width", - "value": 165 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Total Duration" - }, - "properties": [ - { - "id": "custom.width", - "value": 153 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F16)" - }, - "properties": [ - { - "id": "custom.width", - "value": 143 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (BF16)" - }, - "properties": [ - { - "id": "custom.width", - "value": 155 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F32)" - }, - "properties": [ - { - "id": "custom.width", - "value": 146 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F64)" - }, - "properties": [ - { - "id": "custom.width", - "value": 146 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Throughput" - }, - "properties": [ - { - "id": "unit", - "value": "gflops" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Total FLOPs" - }, - "properties": [ - { - "id": "decimals", - "value": 0 - }, - { - "id": "custom.width", - "value": 141 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "VALU FLOPs" - }, - "properties": [ - { - "id": "decimals", - "value": 0 - }, - { - "id": "custom.width", - "value": 130 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (HBM)" - }, - "properties": [ - { - "id": "custom.width", - "value": 89 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (L2 Cache)" - }, - "properties": [ - { - "id": "custom.width", - "value": 103 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (L1 Cache)" - }, - "properties": [ - { - "id": "custom.width", - "value": 114 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "LDS (Bytes)" - }, - "properties": [ - { - "id": "custom.width", - "value": 98 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "HBM" - }, - "properties": [ - { - "id": "custom.width", - "value": 124 - }, - { - "id": "unit", - "value": "decbytes" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Dispatch" - }, - "properties": [ - { - "id": "custom.width", - "value": 108 - } - ] - } - ] - }, - "gridPos": { - "h": 12, - "w": 24, - "x": 0, - "y": 24 - }, - "id": 251, - "interval": "2h", - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "HV80ot2nz" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n { \"$group\": { \n \"_id\": \"&Index\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n\n \"Throughput\": {\n \"$avg\": { \"$divide\": [\n \n {\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]},\n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]}\n },\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"LDS_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 128]\n } \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n },\n\n \"hbm_bw\": {\n \"$avg\": {\n \"$divide\": [\n {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n },\n {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}\n ]\n\n }\n }\n\n }},\n \n {\"$sort\": { \"TotalDuration\": -1 }},\n { \"$limit\": $TopN },\n\n {\"$addFields\": {\n \"ai_L1\": { \"$cond\": [\n {\"$ne\": [\"&L1cache_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"]},\n \"\"\n ]},\n \"ai_L2\": { \"$cond\": [\n {\"$ne\": [\"&L2cache_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"]},\n \"\"\n ]},\n \"ai_hbm\": { \"$cond\": [\n {\"$ne\": [\"&hbm_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"]},\n \"\"\n ]}\n\n }}\n]);", - "type": "table" - } - ], - "title": "Top Dispatches", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "AvgDuration": 5, - "Calls": 1, - "L1cache_data": 16, - "L2cache_data": 17, - "LDS_data": 15, - "Throughput": 2, - "TotalDuration": 4, - "_id": 0, - "ai_L1": 6, - "ai_L2": 7, - "ai_hbm": 8, - "hbm_bw": 3, - "hbm_data": 18, - "mfma_flops_bf16": 12, - "mfma_flops_f16": 11, - "mfma_flops_f32": 13, - "mfma_flops_f64": 14, - "peak_flops": 19, - "total_flops": 9, - "valu_flops": 10 - }, - "renameByName": { - "AvgDuration": "Avg Duration", - "Calls": "", - "L1cache_data": "Vector L1D Cache", - "L2cache_data": "L2 Cache", - "LDS_data": "LDS ", - "Throughput": "Performance", - "TotalDuration": "Total Duration", - "_id": "Dispatch", - "ai_L1": "AI (Vector L1D Cache)", - "ai_L2": "AI (L2 Cache)", - "ai_hbm": "AI (HBM)", - "hbm_bw": "HBM BW ", - "hbm_data": "HBM", - "mfma_flops_bf16": "MFMA FLOPs (BF16)", - "mfma_flops_f16": "MFMA FLOPs (F16)", - "mfma_flops_f32": "MFMA FLOPs (F32)", - "mfma_flops_f64": "MFMA FLOPs (F64)", - "total_flops": "Total FLOPs", - "valu_flops": "VALU FLOPs" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Kernel Statistics", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 3 - }, - "id": 40, - "panels": [ - { - "description": "All transaction units default to Billion, when per-sec norm is used", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 13, - "w": 24, - "x": 0, - "y": 4 - }, - "id": 285, - "options": { - "addAllIDs": false, - "captureMappings": false, - "eventAutoComplete": true, - "eventSource": "options.animateLogo(svgmap, data);\r\nconsole.log(\"Starting render\");\r\nlet buff = data.series[0].fields[2].values.buffer;\r\nlet valueCount = buff.length;\r\nconsole.log(\"The buff is \", valueCount, \" long\");\r\n\r\nsvgmap.wave_life_.text(buff[0]);\r\nsvgmap.active_cu_.text(buff[1]);\r\nsvgmap.salu_.text(buff[2]);\r\nsvgmap.smem_.text(buff[3]);\r\nsvgmap.valu_.text(buff[4]);\r\nsvgmap.mfma_.text(buff[5]);\r\nsvgmap.vmem_.text(buff[6]);\r\nsvgmap.lds_.text(buff[7]);\r\nsvgmap.gws_.text(buff[8]);\r\nsvgmap.br_.text(buff[9]);\r\nsvgmap.vgpr_.text(buff[10]);\r\nsvgmap.sgpr_.text(buff[11]);\r\nsvgmap.lds_alloc_.text(buff[12]);\r\nsvgmap.scratch_alloc_.text(buff[13]);\r\nsvgmap.wavefronts_.text(buff[14]);\r\nsvgmap.workgroups_.text(buff[15]);\r\nsvgmap.lds_req_.text(buff[16]);\r\nsvgmap.il1_fetch_.text(buff[17]);\r\nsvgmap.il1_hit_.text(buff[18]);\r\nsvgmap.il1_l2_rd_.text(buff[19]);\r\nsvgmap.sl1_rd_.text(buff[20]);\r\nsvgmap.sl1_hit_.text(buff[21]);\r\nsvgmap.sl1_l2_rd_.text(buff[22]);\r\nsvgmap.sl1_l2_wr_.text(buff[23]);\r\nsvgmap.sl1_l2_atom_.text(buff[24]);\r\nsvgmap.vl1_rd_.text(buff[25]);\r\nsvgmap.vl1_wr_.text(buff[26]);\r\nsvgmap.vl1_atom_.text(buff[27]);\r\nsvgmap.vl1_hit_.text(buff[28]);\r\nsvgmap.vl1_lat_.text(buff[29]);\r\nsvgmap.vl1_l2_rd_.text(buff[30]);\r\nsvgmap.vl1_l2_wr_.text(buff[31]);\r\nsvgmap.vl1_l2_atom_.text(buff[32]);\r\nsvgmap.l2_rd_.text(buff[33]);\r\nsvgmap.l2_wr_.text(buff[34])\r\nsvgmap.l2_atom_.text(buff[35]);\r\nsvgmap.l2_hit_.text(buff[36]);\r\nsvgmap.l2_rd_lat_.text(buff[37]);\r\nsvgmap.l2_wr_lat_.text(buff[38]);\r\nsvgmap.fabric_rd_lat_.text(buff[39]);\r\nsvgmap.fabric_wr_lat_.text(buff[40]);\r\nsvgmap.fabric_atom_lat_.text(buff[41]);\r\nsvgmap.l2_fabric_rd_.text(buff[42]);\r\nsvgmap.l2_fabric_wr_.text(buff[43]);\r\nsvgmap.l2_fabric_atom_.text(buff[44]);\r\nsvgmap.hbm_rd_.text(buff[45]);\r\nsvgmap.hbm_wr_.text(buff[46]);\r\nsvgmap.lds_util_.text(buff[47]);\r\nsvgmap.vl1_coales_.text(buff[48]);\r\nsvgmap.vl1_stall_.text(buff[49]);\r\nsvgmap.wave_occ_.text(buff[50]);\r\nsvgmap.lds_lat_.text(buff[51]);\r\nsvgmap.il1_lat_.text(buff[52]);\r\nsvgmap.sl1_lat_.text(buff[53]);\r\nsvgmap.gds_req_.text(buff[54]);", - "initAutoComplete": true, - "initSource": "options.animateLogo = (svgmap, data) => {\r\n \r\n}\r\n ", - "svgMappings": [ - { - "mappedName": "wave_life_", - "svgId": "wave_life" - }, - { - "mappedName": "wave_occ_", - "svgId": "wave_occ" - }, - { - "mappedName": "salu_", - "svgId": "salu" - }, - { - "mappedName": "smem_", - "svgId": "smem" - }, - { - "mappedName": "valu_", - "svgId": "valu" - }, - { - "mappedName": "mfma_", - "svgId": "mfma" - }, - { - "mappedName": "vmem_", - "svgId": "vmem" - }, - { - "mappedName": "lds_", - "svgId": "lds" - }, - { - "mappedName": "gws_", - "svgId": "gws" - }, - { - "mappedName": "br_", - "svgId": "br" - }, - { - "mappedName": "active_cu_", - "svgId": "active_cu" - }, - { - "mappedName": "vgpr_", - "svgId": "vgpr" - }, - { - "mappedName": "sgpr_", - "svgId": "sgpr" - }, - { - "mappedName": "lds_alloc_", - "svgId": "lds_alloc" - }, - { - "mappedName": "scratch_alloc_", - "svgId": "scratch_alloc" - }, - { - "mappedName": "wavefronts_", - "svgId": "wavefronts" - }, - { - "mappedName": "workgroups_", - "svgId": "workgroups" - }, - { - "mappedName": "lds_req_", - "svgId": "lds_req" - }, - { - "mappedName": "vl1_wr_", - "svgId": "vl1_wr" - }, - { - "mappedName": "vl1_atom_", - "svgId": "vl1_atom" - }, - { - "mappedName": "sl1_rd_", - "svgId": "sl1_rd" - }, - { - "mappedName": "il1_fetch_", - "svgId": "il1_fetch" - }, - { - "mappedName": "lds_lat_", - "svgId": "lds_lat" - }, - { - "mappedName": "lds_bw_", - "svgId": "lds_bw" - }, - { - "mappedName": "lds_util_", - "svgId": "lds_util" - }, - { - "mappedName": "vl1_hit_", - "svgId": "vl1_hit" - }, - { - "mappedName": "vl1_lat_", - "svgId": "vl1_lat" - }, - { - "mappedName": "vl1_coales_", - "svgId": "vl1_coales" - }, - { - "mappedName": "vl1_stall_", - "svgId": "vl1_stall" - }, - { - "mappedName": "sl1_hit_", - "svgId": "sl1_hit" - }, - { - "mappedName": "sl1_lat_", - "svgId": "sl1_lat" - }, - { - "mappedName": "il1_hit_", - "svgId": "il1_hit" - }, - { - "mappedName": "il1_lat_", - "svgId": "il1_lat" - }, - { - "mappedName": "sl1_l2_rd_", - "svgId": "sl1_l2_rd" - }, - { - "mappedName": "sl1_l2_wr_", - "svgId": "sl1_l2_wr" - }, - { - "mappedName": "sl1_l2_atom_", - "svgId": "sl1_l2_atom" - }, - { - "mappedName": "il1_l2_rd_", - "svgId": "il1_l2_rd" - }, - { - "mappedName": "sl1_l2_rd_", - "svgId": "sl1_l2_rd" - }, - { - "mappedName": "sl1_l2_wr_", - "svgId": "sl1_l2_wr" - }, - { - "mappedName": "sl1_l2_atom_", - "svgId": "sl1_l2_atom" - }, - { - "mappedName": "l2_rd_", - "svgId": "l2_rd" - }, - { - "mappedName": "l2_wr_", - "svgId": "l2_wr" - }, - { - "mappedName": "l2_atom_", - "svgId": "l2_atom" - }, - { - "mappedName": "l2_hit_", - "svgId": "l2_hit" - }, - { - "mappedName": "l2_rd_lat_", - "svgId": "l2_rd_lat" - }, - { - "mappedName": "l2_wr_lat_", - "svgId": "l2_wr_lat" - }, - { - "mappedName": "l2_fabric_rd_", - "svgId": "l2_fabric_rd" - }, - { - "mappedName": "l2_fabric_wr_", - "svgId": "l2_fabric_wr" - }, - { - "mappedName": "l2_fabric_atom_", - "svgId": "l2_fabric_atom" - }, - { - "mappedName": "fabric_rd_lat_", - "svgId": "fabric_rd_lat" - }, - { - "mappedName": "fabric_wr_lat_", - "svgId": "fabric_wr_lat" - }, - { - "mappedName": "fabric_atom_lat_", - "svgId": "fabric_atom_lat" - }, - { - "mappedName": "fabric_hbm_rd_", - "svgId": "fabric_hbm_rd" - }, - { - "mappedName": "fabric_hbm_wr_", - "svgId": "fabric_hbm_wr" - }, - { - "mappedName": "vl1_rd_", - "svgId": "vl1_rd" - }, - { - "mappedName": "vl1_l2_rd_", - "svgId": "vl1_l2_rd" - }, - { - "mappedName": "vl1_l2_wr_", - "svgId": "vl1_l2_wr" - }, - { - "mappedName": "vl1_l2_atom_", - "svgId": "vl1_l2_atom" - }, - { - "mappedName": "hbm_rd_", - "svgId": "hbm_rd" - }, - { - "mappedName": "hbm_wr_", - "svgId": "hbm_wr" - } - ], - "svgSource": "\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Wave Occupancy\r\n \r\n Wave Life\r\n \r\n \r\n \r\n xGMI /\r\n PCIe\r\n \r\n GMI\r\n \r\n HBM\r\n \r\n Fabric\r\n \r\n \r\n SALU:\r\n 00000\r\n \r\n \r\n SMEM:\r\n 00000\r\n \r\n \r\n VALU:\r\n 00000\r\n \r\n \r\n MFMA:\r\n 00000\r\n \r\n \r\n VMEM:\r\n 00000\r\n \r\n \r\n LDS:\r\n 00000\r\n \r\n \r\n GWS:\r\n 00000\r\n \r\n \r\n Br:\r\n 00000\r\n \r\n \r\n cycles\r\n Rd:\r\n 00000\r\n \r\n \r\n cycles\r\n Wr:\r\n 00000\r\n \r\n \r\n cycles\r\n Atomic:\r\n 00000\r\n \r\n \r\n Rd:\r\n 00000\r\n \r\n \r\n Wr:\r\n \r\n \r\n 00000\r\n \r\n \r\n Atomic:\r\n 00000\r\n \r\n \r\n cycles\r\n Lat:\r\n 00000\r\n \r\n \r\n %\r\n Hit:\r\n 00000\r\n \r\n \r\n cycles\r\n Lat:\r\n 00000\r\n \r\n \r\n %\r\n Hit:\r\n 00000\r\n \r\n \r\n cycles\r\n Lat:\r\n 00000\r\n 00000\r\n Rd:\r\n 00000\r\n Wr:\r\n 00000\r\n Req:\r\n 00000\r\n 00000\r\n 00000\r\n Rd:\r\n Wr:\r\n Atomic:\r\n per-GCD\r\n cycles\r\n \r\n \r\n %\r\n Hit:\r\n 00000\r\n \r\n \r\n cycles\r\n Rd:\r\n 00000\r\n \r\n \r\n cycles\r\n Wr:\r\n 00000\r\n Wave 0 Instr buff\r\n Wave N-1 Instr buff\r\n Active CUs\r\n \r\n \r\n %\r\n Hit:\r\n 00000\r\n \r\n \r\n cycles\r\n Lat:\r\n 00000\r\n \r\n \r\n %\r\n Util:\r\n 00000\r\n \r\n \r\n %\r\n Coales:\r\n 00000\r\n Exec\r\n Instr Buff\r\n Instr Dispatch\r\n LDS\r\n Vector L1 Cache\r\n Scalar L1D Cache\r\n Instr L1 Cache\r\n L2 Cache\r\n 00000\r\n Req:\r\n \r\n \r\n %\r\n Stall:\r\n 00000\r\n 00000\r\n Fetch:\r\n 0000000\r\n 00000\r\n 000/000\r\n \r\n Latency\r\n \r\n LDS Alloc:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 00000\r\n \r\n Scratch Alloc:\r\n \r\n 00000\r\n \r\n Wavefronts:\r\n \r\n 00000\r\n \r\n Workgroups:\r\n \r\n 00000\r\n \r\n VGPRs:\r\n \r\n 00000\r\n \r\n SGPRs:\r\n \r\n 00000\r\n \r\n \r\n 00000\r\n Rd:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 00000\r\n 00000\r\n 00000\r\n Rd:\r\n Wr:\r\n Atomic:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 00000\r\n 00000\r\n 00000\r\n Rd:\r\n Wr:\r\n Atomic:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 00000\r\n 00000\r\n 00000\r\n Rd:\r\n Wr:\r\n Atomic:\r\n \r\n \r\n \r\n Latency\r\n \r\n \r\n \r\n \r\n Text is not SVG - cannot display\r\n \r\n \r\n" - }, - "pluginVersion": "8.4.0", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "rawQuery": true, - "refId": "pmc_perf", - "target": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"wave_life\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [\"&SQ_WAVES\", 0] },\n { \"$multiply\": [4, { \"$divide\": [\"&SQ_WAVE_CYCLES\", \"&SQ_WAVES\"] }] },\n null\n ]\n }\n },\n \"salu\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SALU\", \"&denom\" ] }\n },\n \"smem\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SMEM\", \"&denom\" ] }\n },\n \"valu\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_VALU\", \"&denom\"] }\n },\n \"mfma\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_MFMA\", \"&denom\"] }\n },\n \"vmem\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_VMEM\", \"&denom\"] }\n },\n \"lds_instr\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_LDS\", \"&denom\"] }\n },\n \"gws\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_GDS\", \"&denom\"] }\n },\n \"br\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_BRANCH\", \"&denom\"] }\n },\n \"vgpr\": {\n \"$avg\": \"&vgpr\"\n },\n \"sgpr\": {\n \"$avg\": \"&sgpr\"\n },\n \"lds_alloc\": {\n \"$avg\": \"&lds\"\n },\n \"scratch_alloc\": {\n \"$avg\": \"&scr\"\n },\n \"wavefronts\": {\n \"$avg\": \"&SPI_CSN_WAVE\"\n },\n \"workgroups\": {\n \"$avg\": \"&SPI_CSN_NUM_THREADGROUPS\"\n },\n \"lds_req\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_LDS\", \"&denom\"] }\n }, \n \"lds_util\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [ 100, \"&SQ_LDS_IDX_ACTIVE\" ]}, \n {\"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}\n ]}\n },\n \"vl1_rd\": {\n \"$avg\": { \"$divide\": [\"&TCP_TOTAL_READ_sum\", \"&denom\"] }\n },\n \"vl1_wr\": {\n \"$avg\": { \"$divide\": [\"&TCP_TOTAL_WRITE_sum\", \"&denom\"] }\n },\n \"vl1_atom\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"] }\n },\n \"il1_fetch\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n \"il1_hit\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_REQ\"] }\n },\n \"il1_l2_req\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_INST_REQ\", \"&denom\"] }\n },\n \"sl1_rd\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n \"sl1_hit\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQC_DCACHE_REQ\", 0]},\n { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_REQ\"] },\n \"\"\n ]\n }\n},\n \"sl1_l2_rd\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n \"sl1_l2_wr\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n \"sl1_l2_atom\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n \"vl1_hit\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0] },\n { \"$subtract\": [100, { \"$divide\": [{ \"$multiply\": [100, { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }] }, \"&TCP_TOTAL_CACHE_ACCESSES_sum\"] }] },\n null\n ]\n }\n },\n \"vl1_lat\": {\n \"$avg\": { \n \"$cond\": [\n { \"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0] },\n { \"$divide\": [\"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\"] },\n null\n ]\n }\n },\n \"vl1_coales\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_TOTAL_ACCESSES_sum\", 0] },\n { \"$divide\": [{\"$multiply\": [\"&TA_TOTAL_WAVEFRONTS_sum\", 64, 100]}, {\"$multiply\": [\"&TCP_TOTAL_ACCESSES_sum\", 4]}] },\n 0\n ]\n }\n },\n \"vl1_stall\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n \"\"\n ]\n }},\n \"vl1_l2_rd\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_READ_REQ_sum\", \"&denom\"] }\n },\n \"vl1_l2_wr\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"vl1_l2_atom\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }\n },\n \"l2_rd\": {\n \"$avg\": { \"$divide\": [\"&TCC_READ_sum\", \"&denom\"] }\n },\n \"l2_wr\": {\n \"$avg\": { \"$divide\": [\"&TCC_WRITE_sum\", \"&denom\"] }\n },\n \"l2_atom\": {\n \"$avg\": { \"$divide\": [\"&TCC_ATOMIC_sum\", \"&denom\"] }\n },\n \"l2_hit\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [{ \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }, 0] },\n { \"$divide\": [{ \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }] },\n null\n ]\n }\n },\n \"l2_rd_lat\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [{ \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }, 0] },\n { \"$divide\": [\"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }] },\n null\n ]\n }\n },\n \"l2_wr_lat\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [{ \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 0] },\n { \"$divide\": [\"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }] },\n null\n ]\n }\n },\n \"fabric_rd_lat\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [\"&TCC_EA_RDREQ_sum\", 0] },\n { \"$divide\": [\"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\"] },\n null\n ]\n }\n },\n \"fabric_wr_lat\": { \n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [\"&TCC_EA_WRREQ_sum\", 0] },\n { \"$divide\": [\"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\"] },\n null\n ]\n }\n },\n \"fabric_atom_lat\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0] },\n { \"$divide\": [\"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\"] },\n null\n ]\n }\n },\n \"l2_fabric_rd\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_RDREQ_sum\", \"&denom\"] }\n },\n \"l2_fabric_wr\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_WRREQ_sum\", \"&denom\"] }\n },\n \"l2_fabric_atom\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_ATOMIC_sum\", \"&denom\"] }\n },\n \"hbm_rd\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\"] }\n },\n \"hbm_wr\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\"] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave Life\",\n \"Alias\": \"wave_life_\",\n \"Value\": { \"$round\": [\"&wave_life\", 0] }\n },\n {\n \"Metric\": \"Active CUs\",\n \"Alias\": \"active_cu_\",\n \"Value\": {\"$concat\": [\"$numActiveCUs\", \"/\", \"$numCU\"]}\n },\n {\n \"Metric\": \"SALU\",\n \"Alias\": \"salu_\",\n \"Value\": { \"$round\": [\"&salu\", 0] }\n },\n {\n \"Metric\": \"SMEM\",\n \"Alias\": \"smem_\",\n \"Value\": { \"$round\": [\"&smem\", 0] }\n },\n {\n \"Metric\": \"VALU\",\n \"Alias\": \"valu_\",\n \"Value\": { \"$round\": [\"&valu\", 0] }\n },\n {\n \"Metric\": \"MFMA\",\n \"Alias\": \"mfma_\",\n \"Value\": { \"$round\": [\"&mfma\", 0] }\n },\n {\n \"Metric\": \"VMEM\",\n \"Alias\": \"vmem_\",\n \"Value\": { \"$round\": [\"&vmem\", 0] }\n },\n {\n \"Metric\": \"LDS\",\n \"Alias\": \"lds_\",\n \"Value\": { \"$round\": [\"&lds_instr\", 0] }\n },\n {\n \"Metric\": \"GWS\",\n \"Alias\": \"gws_\",\n \"Value\": { \"$round\": [\"&gws\", 0] }\n },\n {\n \"Metric\": \"BR\",\n \"Alias\": \"br_\",\n \"Value\": { \"$round\": [\"&br\", 0] }\n },\n {\n \"Metric\": \"VGPR\",\n \"Alias\": \"vgpr_\",\n \"Value\": { \"$round\": [\"&vgpr\", 0] }\n },\n {\n \"Metric\": \"SGPR\",\n \"Alias\": \"sgpr_\",\n \"Value\": { \"$round\": [\"&sgpr\", 0] }\n },\n {\n \"Metric\": \"LDS Allocation\",\n \"Alias\": \"lds_alloc_\",\n \"Value\": { \"$round\": [\"&lds_alloc\", 0] }\n },\n {\n \"Metric\": \"Scratch Allocation\",\n \"Alias\": \"scratch_alloc_\",\n \"Value\": { \"$round\": [\"&scratch_alloc\", 0] }\n },\n {\n \"Metric\": \"Wavefronts\",\n \"Alias\": \"wavefronts_\",\n \"Value\": { \"$round\": [\"&wavefronts\", 0] }\n },\n {\n \"Metric\": \"Workgroups\",\n \"Alias\": \"workgroups_\",\n \"Value\": { \"$round\": [\"&workgroups\", 0] }\n },\n {\n \"Metric\": \"LDS Req\",\n \"Alias\": \"lds_req_\",\n \"Value\": { \"$round\": [\"&lds_req\", 0] }\n },\n {\n \"Metric\": \"IL1 Fetch\",\n \"Alias\": \"il1_fetch_\",\n \"Value\": { \"$round\": [\"&il1_fetch\", 0] }\n },\n {\n \"Metric\": \"IL1 Hit\",\n \"Alias\": \"il1_hit_\",\n \"Value\": { \"$round\": [{ \"$multiply\": [\"&il1_hit\", 100] }, 0] }\n },\n {\n \"Metric\": \"IL1_L2 Rd\",\n \"Alias\": \"il1_l2_req_\",\n \"Value\": { \"$round\": [\"&il1_l2_req\", 0] }\n },\n {\n \"Metric\": \"vL1D Rd\",\n \"Alias\": \"sl1_rd_\",\n \"Value\": { \"$round\": [\"&sl1_rd\", 0] }\n },\n {\n \"Metric\": \"vL1D Hit\",\n \"Alias\": \"sl1_hit_\",\n \"Value\": { \"$round\": [{ \"$multiply\": [\"&sl1_hit\", 100] }, 0] }\n },\n {\n \"Metric\": \"vL1D_L2 Rd\",\n \"Alias\": \"sl1_l2_rd_\",\n \"Value\": { \"$round\": [\"&sl1_l2_rd\", 0] }\n },\n {\n \"Metric\": \"vL1D_L2 Wr\",\n \"Alias\": \"sl1_l2_wr_\",\n \"Value\": { \"$round\": [\"&sl1_l2_wr\", 0] }\n },\n {\n \"Metric\": \"vL1D_L2 Atomic\",\n \"Alias\": \"sl1_l2_atom_\",\n \"Value\": { \"$round\": [\"&sl1_l2_atom\", 0] }\n },\n {\n \"Metric\": \"VL1 Rd\",\n \"Alias\": \"vl1_rd_\",\n \"Value\": { \"$round\": [\"&vl1_rd\", 0] }\n },\n {\n \"Metric\": \"VL1 Wr\",\n \"Alias\": \"vl1_wr_\",\n \"Value\": { \"$round\": [\"&vl1_wr\", 0] }\n },\n {\n \"Metric\": \"VL1 Atomic\",\n \"Alias\": \"vl1_atom_\",\n \"Value\": { \"$round\": [\"&vl1_atom\", 0] }\n },\n {\n \"Metric\": \"VL1 Hit\",\n \"Alias\": \"vl1_hit_\",\n \"Value\": { \"$round\": [\"&vl1_hit\", 0] }\n },\n {\n \"Metric\": \"VL1 Lat\",\n \"Alias\": \"vl1_lat_\",\n \"Value\": { \"$round\": [\"&vl1_lat\", 0] }\n },\n {\n \"Metric\": \"VL1_L2 Rd\",\n \"Alias\": \"vl1_l2_rd_\",\n \"Value\": { \"$round\": [\"&vl1_l2_rd\", 0] }\n },\n {\n \"Metric\": \"VL1_L2 Wr\",\n \"Alias\": \"vl1_l2_wr_\",\n \"Value\": { \"$round\": [\"&vl1_l2_wr\", 0] }\n },\n {\n \"Metric\": \"vL1_L2 Atomic\",\n \"Alias\": \"vl1_l2_atom_\",\n \"Value\": { \"$round\": [\"&vl1_l2_atom\", 0] }\n },\n {\n \"Metric\": \"L2 Rd\",\n \"Alias\": \"l2_rd_\",\n \"Value\": { \"$round\": [\"&l2_rd\", 0] }\n },\n {\n \"Metric\": \"L2 Wr\",\n \"Alias\": \"l2_wr_\",\n \"Value\": { \"$round\": [\"&l2_wr\", 0] }\n },\n {\n \"Metric\": \"L2 Atomic\",\n \"Alias\": \"l2_atom_\",\n \"Value\": { \"$round\": [\"&l2_atom\", 0] }\n },\n {\n \"Metric\": \"L2 Hit\",\n \"Alias\": \"l2_hit_\",\n \"Value\": { \"$round\": [\"&l2_hit\", 0] }\n },\n {\n \"Metric\": \"L2 Rd Lat\",\n \"Alias\": \"l2_rd_lat_\",\n \"Value\": { \"$round\": [\"&l2_rd_lat\", 0] }\n },\n {\n \"Metric\": \"L2 Wr Lat\",\n \"Alias\": \"l2_wr_lat_\",\n \"Value\": { \"$round\": [\"&l2_wr_lat\", 0] }\n },\n {\n \"Metric\": \"Fabric Rd Lat\",\n \"Alias\": \"fabric_rd_lat_\",\n \"Value\": { \"$round\": [\"&fabric_rd_lat\", 0] }\n },\n {\n \"Metric\": \"Fabric Wr Lat\",\n \"Alias\": \"fabric_wr_lat_\",\n \"Value\": { \"$round\": [\"&fabric_wr_lat\", 0] }\n },\n {\n \"Metric\": \"Fabric Atomic Lat\",\n \"Alias\": \"fabric_atom_lat_\",\n \"Value\": { \"$round\": [\"&fabric_atom_lat\", 0] }\n },\n {\n \"Metric\": \"Fabric_L2 Rd\",\n \"Alias\": \"l2_fabric_rd_\",\n \"Value\": { \"$round\": [\"&l2_fabric_rd\", 0] }\n },\n {\n \"Metric\": \"Fabric_L2 Wr\",\n \"Alias\": \"l2_fabric_wr_\",\n \"Value\": { \"$round\": [\"&l2_fabric_wr\", 0] }\n },\n {\n \"Metric\": \"Fabric_l2 Atomic\",\n \"Alias\": \"l2_fabric_atom_\",\n \"Value\": { \"$round\": [\"&l2_fabric_atom\", 0] }\n },\n {\n \"Metric\": \"HBM Rd\",\n \"Alias\": \"hbm_rd_\",\n \"Value\": { \"$round\": [\"&hbm_rd\", 0] }\n },\n {\n \"Metric\": \"HBM Wr\",\n \"Alias\": \"hbm_wr_\",\n \"Value\": { \"$round\": [\"&hbm_wr\", 0] }\n },\n {\n \"Metric\": \"LDS Util\",\n \"Alias\": \"lds_util_\",\n \"Value\": { \"$round\": [\"&lds_util\", 0] }\n },\n {\n \"Metric\": \"VL1 Coalesce\",\n \"Alias\": \"vl1_coales_\",\n \"Value\": { \"$round\": [\"&vl1_coales\", 0]}\n },\n {\n \"Metric\": \"VL1 Stall\",\n \"Alias\": \"vl1_stall_\",\n \"Value\": { \"$round\": [\"&vl1_stall\", 0]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"$array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"$array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_LEVEL_WAVES", - "target": "$Workload1.SQ_LEVEL_WAVES.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"wave_occ\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\",\"&GRBM_GUI_ACTIVE\"] }, $numActiveCUs]}\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave Occupancy\",\n \"Alias\": \"wave_occ_\",\n \"Value\":{ \"$round\": [\"&wave_occ\", 0] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_LDS", - "target": "$Workload1.SQ_INST_LEVEL_LDS.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"lds_lat\": {\n \"$avg\": { \n \"$cond\": [\n { \"$ne\": [\"&SQ_INSTS_LDS\", 0] },\n { \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\"] },\n null\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"LDS Lat\",\n \"Alias\": \"lds_lat_\",\n \"Value\":{ \"$round\": [\"&lds_lat\", 0] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQC_ICACHE_INFLIGHT", - "target": "$Workload1.pmc_perf.aggregate([\n\t{\"$match\": {\n\t\t\"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \t\t\"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \t\t\"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n \t}},\n\t{\"$lookup\": {\n\t\t\"from\": \"SQ_IFETCH_LEVEL\",\n\t\t\"localField\": \"Index\",\n\t\t\"foreignField\": \"Index\",\n\t\t\"as\": \"SQ_IFETCH_LEVEL\",\n\t\t\"pipeline\": [\n\t\t\t{\"$match\": {\n\t\t\t\t\"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \t\t\t\t\"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \t\t\t\t\"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n \t\t\t}},\n\t\t\t{\"$project\":{\n\t\t\t\t\"_id\": 0,\n\t\t\t\t\"SQ_ACCUM_PREV_HIRES\": 1\n\t\t\t}}\n\t\t]\n\t}},\n\t{\"$unwind\":{\n\t\t\"path\": \"&SQ_IFETCH_LEVEL\"\n\t}},\n\t{\"$group\":{\n\t\t\"_id\": null,\n\t\t\"il1_lat\": {\n\t\t\t\"$avg\":{\n\t\t\t\t\"$cond\":[\n\t\t\t\t\t\t{\"$ne\":[\"&SQC_ICACHE_REQ\",0]},\n\t\t\t\t\t\t{\"$divide\":[\"&SQ_IFETCH_LEVEL.SQ_ACCUM_PREV_HIRES\",\"&SQC_ICACHE_REQ\"]},\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t}\n\t\t} \n\t}},\n\t{\"$set\": {\n \t\t\"array\": [\n \t\t{\n \t\t\t\"Metric\": \"IL1 Lat\",\n \t\t\t\"Alias\": \"il1_lat_\",\n \t\t\t\"Value\": { \"$round\": [\"&il1_lat\", 0] }\n \t\t}\n \t\t]\n\t}},\n \t{\"$unwind\": {\n \t\t\"path\": \"&array\"\n \t}},\n \t{\"$replaceRoot\": {\n \t\t\"newRoot\": \"&array\"\n \t}}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQC_DCACHE_INFLIGHT_LEVEL", - "target": "$Workload1.pmc_perf.aggregate([\n\t{\"$match\": {\n\t\t\"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \t\t\"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \t\t\"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n \t}},\n\t{\"$lookup\": {\n\t\t\"from\": \"SQ_IFETCH_LEVEL\",\n\t\t\"localField\": \"Index\",\n\t\t\"foreignField\": \"Index\",\n\t\t\"as\": \"SQ_IFETCH_LEVEL\",\n\t\t\"pipeline\": [\n\t\t\t{\"$match\": {\n\t\t\t\t\"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \t\t\t\t\"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \t\t\t\t\"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n \t\t\t}},\n\t\t\t{\"$project\":{\n\t\t\t\t\"_id\": 0,\n\t\t\t\t\"SQ_ACCUM_PREV_HIRES\": 1\n\t\t\t}}\n\t\t]\n\t}},\n\t{\"$unwind\":{\n\t\t\"path\": \"&SQ_IFETCH_LEVEL\"\n\t}},\n\t{\"$group\":{\n\t\t\"_id\": null,\n\t\t\"sl1_lat\": {\n\t\t\t\"$avg\":{\n\t\t\t\t\"$cond\":[\n\t\t\t\t\t\t{\"$ne\":[\"&SQC_DCACHE_REQ\",0]},\n\t\t\t\t\t\t{\"$divide\":[\"&SQ_IFETCH_LEVEL.SQ_ACCUM_PREV_HIRES\",\"&SQC_DCACHE_REQ\"]},\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t}\n\t\t} \n\t}},\n\t{\"$set\": {\n \t\t\"array\": [\n \t\t{\n \t\t\t\"Metric\": \"vL1D Lat\",\n \t\t\t\"Alias\": \"sl1_lat_\",\n \t\t\t\"Value\": { \"$round\": [\"&sl1_lat\", 0] }\n \t\t}\n \t\t]\n\t}},\n \t{\"$unwind\": {\n \t\t\"path\": \"&array\"\n \t}},\n \t{\"$replaceRoot\": {\n \t\t\"newRoot\": \"&array\"\n \t}}\n]);", - "type": "table" - } - ], - "title": "Memory Chart (Normalization: $normUnit\")", - "transformations": [ - { - "id": "convertFieldType", - "options": { - "conversions": [ - { - "destinationType": "string", - "targetField": "Value" - } - ], - "fields": {} - } - }, - { - "id": "merge", - "options": {} - } - ], - "type": "amd-custom-svg" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Memory Chart Analysis", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 4 - }, - "id": 241, - "panels": [ - { - "gridPos": { - "h": 28, - "w": 24, - "x": 0, - "y": 5 - }, - "id": 253, - "pconfig": { - "fixScale": "", - "layout": { - "dragmode": "zoom", - "font": { - "family": "\"Open Sans\", Helvetica, Arial, sans-serif" - }, - "hovermode": "closest", - "legend": { - "orientation": "v" - }, - "showlegend": true, - "xaxis": { - "range": [ - -2, - 3.8 - ], - "rangemode": "between", - "showgrid": true, - "title": "Arithmetic Intensity (FLOP/Byte)", - "type": "log", - "zeroline": false - }, - "yaxis": { - "rangemode": "normal", - "showgrid": true, - "title": "Performance (GFLOP/sec)", - "type": "log", - "zeroline": false - }, - "zaxis": { - "rangemode": "normal", - "showgrid": true, - "type": "linear", - "zeroline": false - } - }, - "loadFromCDN": false, - "settings": { - "displayModeBar": false, - "type": "scatter" - }, - "showAnnotations": true, - "traces": [ - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "xrange", - "y": "roofline_hbm" - }, - "name": "HBM-VLAU", - "settings": { - "color_option": "ramp", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#33B5E5", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 15, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "circle" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "xrange", - "y": "roofline_L2" - }, - "name": "L2-VALU", - "settings": { - "color_option": "ramp", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#33B5E5", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 15, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "circle" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "xrange", - "y": "roofline_L1" - }, - "name": "vL1D-VALU", - "settings": { - "color_option": "ramp", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#33B5E5", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 15, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "circle" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "LDSBw_peak", - "x": "xrange", - "y": "roofline_LDS" - }, - "name": "LDS-VALU", - "settings": { - "color_option": "ramp", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#33B5E5", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 15, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "circle" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "cur_ai_hbm", - "y": "cur_perf" - }, - "name": "Cur - HBM", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#F2495C", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "square" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "cur_ai_L2", - "y": "cur_perf" - }, - "name": "Cur - L2", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#5794F2", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "diamond" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "cur_ai_L1", - "y": "cur_perf" - }, - "name": "Cur - vL1D", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "base_ai_hbm", - "y": "base_perf" - }, - "name": "Baseline - HBM", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#F2495C", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "square-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "base_ai_L2", - "y": "base_perf" - }, - "name": "Baseline - L2", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#5794F2", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "diamond-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "base_ai_L1", - "y": "base_perf" - }, - "name": "Baseline - vL1D", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "xrange", - "y": "roofline_hbm_MFMA" - }, - "name": "HBM-MFMA", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "xrange", - "y": "roofline_L2_MFMA" - }, - "name": "L2-MFMA", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "xrange", - "y": "roofline_L1_MFMA" - }, - "name": "vL1D-MFMA", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "LDSBw_peak", - "x": "xrange", - "y": "roofline_LDS_MFMA" - }, - "name": "LDS-MFMA", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - } - ] - }, - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "rawQuery": true, - "refId": "HBM-VALU", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&FP32Flops\", \"&FP64Flops\"]\n },\n \"then\": \"&FP64Flops\",\n \"else\": \"&FP32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_hbm\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&HBMBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&HBMBw\"] },\n \"else\": \"$high_flop\"\n }\n },\n \"hbmBw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&HBMBw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "HBM-MFMA", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&MFMAF32Flops\", \"&MFMAF64Flops\"]\n },\n \"then\": \"&MFMAF64Flops\",\n \"else\": \"&MFMAF32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_hbm_MFMA\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&HBMBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&HBMBw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L2-VALU", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&FP32Flops\", \"&FP64Flops\"]\n },\n \"then\": \"&FP64Flops\",\n \"else\": \"&FP32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L2\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L2Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L2Bw\"] },\n \"else\": \"$high_flop\"\n }\n },\n\n \"L2Bw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&L2Bw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L1-VALU", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&FP32Flops\", \"&FP64Flops\"]\n },\n \"then\": \"&FP64Flops\",\n \"else\": \"&FP32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L1\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L1Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L1Bw\"] },\n \"else\": \"&high_flop\"\n }\n },\n\n \"L1Bw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&L1Bw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "LDS", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&FP32Flops\", \"&FP64Flops\"]\n },\n \"then\": \"&FP64Flops\",\n \"else\": \"&FP32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_LDS\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&LDSBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&LDSBw\"] },\n \"else\": \"$high_flop\"\n }\n },\n\n \"LDSBw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&LDSBw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "Cur Workload", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n { \"$group\": { \n \"_id\": \"&KernelName\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"lds_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]\n } \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n }\n\n\n }},\n {\"$sort\": { \"TotalDuration\": -1 }},\n { \"$limit\": 10 },\n {\"$project\": {\n \"_id\": 0,\n \"Kernel\": \"&KernelName\",\n \"cur_ai_L1\": {\n \"$cond\": [\n { \"$ne\": [\"&L1cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"] },\n 0\n ]\n },\n \"cur_ai_L2\": {\n \"$cond\": [\n { \"$ne\": [\"&L2cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"] },\n 0\n ]\n },\n \"cur_ai_hbm\": {\n \"$cond\": [\n { \"$ne\": [\"&hbm_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"] },\n 0\n ]\n },\n \"cur_perf\": { \n \"$cond\": [\n { \"$ne\": [\"&AvgDuration\", 0] },\n { \"$divide\": [\"&total_flops\", \"&AvgDuration\"] },\n 0\n ]\n }\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "Baseline Workload", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Roofline)\"}}\n }},\n { \"$group\": { \n \"_id\": \"&KernelName\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"lds_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]\n } \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n }\n\n\n }},\n {\"$sort\": { \"TotalDuration\": -1 }},\n { \"$limit\": 10 },\n {\"$project\": {\n \"_id\": 0,\n \"Kernel\": \"&KernelName\",\n \"base_ai_L1\": {\n \"$cond\": [\n { \"$ne\": [\"&L1cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"] },\n 0\n ]\n },\n \"base_ai_L2\": {\n \"$cond\": [\n { \"$ne\": [\"&L2cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"] },\n 0\n ]\n },\n \"base_ai_hbm\": {\n \"$cond\": [\n { \"$ne\": [\"&hbm_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"] },\n 0\n ]\n },\n \"base_perf\": { \n \"$cond\": [\n { \"$ne\": [\"&AvgDuration\", 0] },\n { \"$divide\": [\"&total_flops\", \"&AvgDuration\"] },\n 0\n ]\n }\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L2-MFMA", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&MFMAF32Flops\", \"&MFMAF64Flops\"]\n },\n \"then\": \"&MFMAF64Flops\",\n \"else\": \"&MFMAF32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L2_MFMA\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L2Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L2Bw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L1-MFMA", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&MFMAF32Flops\", \"&MFMAF64Flops\"]\n },\n \"then\": \"&MFMAF64Flops\",\n \"else\": \"&MFMAF32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L1_MFMA\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L1Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L1Bw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "jYrBWHfnz" - }, - "hide": false, - "rawQuery": true, - "refId": "LDS-MFMA", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&MFMAF32Flops\", \"&MFMAF64Flops\"]\n },\n \"then\": \"&MFMAF64Flops\",\n \"else\": \"&MFMAF32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_LDS_MFMA\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&LDSBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&LDSBw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - } - ], - "title": "Empirical Roofline FP32/FP64 (MI200)", - "type": "natel-plotly-panel", - "version": 1 - }, - { - "gridPos": { - "h": 28, - "w": 24, - "x": 0, - "y": 33 - }, - "id": 312, - "pconfig": { - "fixScale": "", - "layout": { - "dragmode": "zoom", - "font": { - "family": "\"Open Sans\", Helvetica, Arial, sans-serif" - }, - "hovermode": "closest", - "legend": { - "orientation": "v" - }, - "showlegend": true, - "xaxis": { - "range": [ - -2, - 3.8 - ], - "rangemode": "between", - "showgrid": true, - "title": "Arithmetic Intensity (FLOP/Byte)", - "type": "log", - "zeroline": false - }, - "yaxis": { - "rangemode": "normal", - "showgrid": true, - "title": "Performance (GFLOP/sec)", - "type": "log", - "zeroline": false - }, - "zaxis": { - "rangemode": "normal", - "showgrid": true, - "type": "linear", - "zeroline": false - } - }, - "loadFromCDN": false, - "settings": { - "displayModeBar": false, - "type": "scatter" - }, - "showAnnotations": true, - "traces": [ - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "cur_ai_hbm", - "y": "cur_perf" - }, - "name": "Cur - HBM", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#F2495C", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "square" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "cur_ai_L2", - "y": "cur_perf" - }, - "name": "Cur - L2", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#5794F2", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "diamond" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "cur_ai_L1", - "y": "cur_perf" - }, - "name": "Cur - vL1D", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "base_ai_hbm", - "y": "base_perf" - }, - "name": "Baseline - HBM", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#F2495C", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "square-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "base_ai_L2", - "y": "base_perf" - }, - "name": "Baseline - L2", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#5794F2", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "diamond-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "base_ai_L1", - "y": "base_perf" - }, - "name": "Baseline - vL1D", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "xrange", - "y": "roofline_hbm_MFMA_fp16" - }, - "name": "HBM-MFMA-FP16", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "xrange", - "y": "roofline_L2_MFMA_fp16" - }, - "name": "L2-MFMA-FP16", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "xrange", - "y": "roofline_L1_MFMA_fp16" - }, - "name": "vL1D-MFMA-FP16", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "LDSBw_peak", - "x": "xrange", - "y": "roofline_LDS_MFMA_fp16" - }, - "name": "LDS-MFMA-FP16", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "xrange", - "y": "roofline_hbm_MFMA_i8" - }, - "name": "HBM-MFMA-I8", - "settings": { - "color_option": "solid", - "line": { - "color": "#FA6400", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "xrange", - "y": "roofline_L2_MFMA_i8" - }, - "name": "L2-MFMA-I8", - "settings": { - "color_option": "solid", - "line": { - "color": "#FA6400", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "xrange", - "y": "roofline_L1_MFMA_i8" - }, - "name": "vL1D-MFMA-I8", - "settings": { - "color_option": "solid", - "line": { - "color": "#FA6400", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "LDSBw_peak", - "x": "xrange", - "y": "roofline_LDS_MFMA_i8" - }, - "name": "LDS-MFMA-I8", - "settings": { - "color_option": "solid", - "line": { - "color": "#FA6400", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - } - ] - }, - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "HBM-MFMA-FP16", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAF16Flops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_hbm_MFMA_fp16\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&HBMBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&HBMBw\"] },\n \"else\": \"$high_flop\"\n }\n },\n \"hbmBw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&HBMBw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "HBM-MFMA-I8", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAI8Ops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_hbm_MFMA_i8\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&HBMBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&HBMBw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "Cur Workload", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n { \"$group\": { \n \"_id\": \"&KernelName\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"lds_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]\n } \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n }\n\n\n }},\n {\"$sort\": { \"TotalDuration\": -1 }},\n { \"$limit\": 10 },\n {\"$project\": {\n \"_id\": 0,\n \"Kernel\": \"&KernelName\",\n \"cur_ai_L1\": {\n \"$cond\": [\n { \"$ne\": [\"&L1cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"] },\n 0\n ]\n },\n \"cur_ai_L2\": {\n \"$cond\": [\n { \"$ne\": [\"&L2cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"] },\n 0\n ]\n },\n \"cur_ai_hbm\": {\n \"$cond\": [\n { \"$ne\": [\"&hbm_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"] },\n 0\n ]\n },\n \"cur_perf\": { \n \"$cond\": [\n { \"$ne\": [\"&AvgDuration\", 0] },\n { \"$divide\": [\"&total_flops\", \"&AvgDuration\"] },\n 0\n ]\n }\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "Baseline Workload", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Roofline)\"}}\n }},\n { \"$group\": { \n \"_id\": \"&KernelName\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"lds_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]\n } \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n }\n\n\n }},\n {\"$sort\": { \"TotalDuration\": -1 }},\n { \"$limit\": 10 },\n {\"$project\": {\n \"_id\": 0,\n \"Kernel\": \"&KernelName\",\n \"base_ai_L1\": {\n \"$cond\": [\n { \"$ne\": [\"&L1cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"] },\n 0\n ]\n },\n \"base_ai_L2\": {\n \"$cond\": [\n { \"$ne\": [\"&L2cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"] },\n 0\n ]\n },\n \"base_ai_hbm\": {\n \"$cond\": [\n { \"$ne\": [\"&hbm_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"] },\n 0\n ]\n },\n \"base_perf\": { \n \"$cond\": [\n { \"$ne\": [\"&AvgDuration\", 0] },\n { \"$divide\": [\"&total_flops\", \"&AvgDuration\"] },\n 0\n ]\n }\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L2-MFMA-FP16", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAF16Flops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L2_MFMA_fp16\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L2Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L2Bw\"] },\n \"else\": \"$high_flop\"\n }\n },\n \"L2Bw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&L2Bw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L2-MFMA-I8", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAI8Ops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L2_MFMA_i8\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L2Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L2Bw\"] },\n \"else\": \"$high_flop\"\n }\n }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L1-MFMA-FP16", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAF16Flops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L1_MFMA_fp16\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L1Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L1Bw\"] },\n \"else\": \"$high_flop\"\n }\n },\n \"L1Bw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&L1Bw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L1-MFMA-I8", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAI8Ops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L1_MFMA_i8\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L1Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L1Bw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "jYrBWHfnz" - }, - "hide": false, - "rawQuery": true, - "refId": "LDS-MFMA-FP16", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAF16Flops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_LDS_MFMA_fp16\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&LDSBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&LDSBw\"] },\n \"else\": \"$high_flop\"\n }\n },\n \"LDSBw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&LDSBw\", 1] },0, 32]}, \" GB/s\"] }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "jYrBWHfnz" - }, - "hide": false, - "rawQuery": true, - "refId": "LDS-MFMA-I8", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAI8Ops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_LDS_MFMA_i8\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&LDSBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&LDSBw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - } - ], - "title": "Empirical Roofline FP16/INT8 (MI200)", - "type": "natel-plotly-panel", - "version": 1 - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Roofline Analysis", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 5 - }, - "id": 2, - "panels": [ - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 115 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 118 - } - ] - } - ] - }, - "gridPos": { - "h": 13, - "w": 13, - "x": 0, - "y": 62 - }, - "id": 6, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1 \n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"gpuBusy_avg\": {\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\": {\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\": {\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n\n \"cpfBusy_avg\": {\"$avg\": \"&CPF_CPF_STAT_BUSY\"},\n \"cpfBusy_min\": {\"$min\": \"&CPF_CPF_STAT_BUSY\"},\n \"cpfBusy_max\": {\"$max\": \"&CPF_CPF_STAT_BUSY\"},\n\n \"cpfUtil_avg\": {\"$avg\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n \"cpfUtil_min\": {\"$min\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n \"cpfUtil_max\": {\"$max\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n\n \"cpfStall_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n \"cpfStall_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n \"cpfStall_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n\n \"l2CacheBusy_avg\": {\"$avg\": \"&CPF_CPF_TCIU_BUSY\"},\n \"l2CacheBusy_min\": {\"$min\": \"&CPF_CPF_TCIU_BUSY\"},\n \"l2CacheBusy_max\": {\"$max\": \"&CPF_CPF_TCIU_BUSY\"},\n\n \"l2CacheUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheStall_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n \"l2CacheStall_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n \"l2CacheStall_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n\n \"utcL1Stall_avg\": {\"$avg\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_min\": {\"$min\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_max\": {\"$max\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"}\n\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy Cycles\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"CPF Busy\",\n \"Avg\": \"&cpfBusy_avg\",\n \"Min\": \"&cpfBusy_min\",\n \"Max\": \"&cpfBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"CPF Util\",\n \"Avg\": \"&cpfUtil_avg\",\n \"Min\": \"&cpfUtil_min\",\n \"Max\": \"&cpfUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPF Stall\",\n \"Avg\": \"&cpfStall_avg\",\n \"Min\": \"&cpfStall_min\",\n \"Max\": \"&cpfStall_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"L2Cache Intf Busy\",\n \"Avg\": \"&l2CacheBusy_avg\",\n \"Min\": \"&l2CacheBusy_min\",\n \"Max\": \"&l2CacheBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"L2Cache Intf Util\",\n \"Avg\": \"&l2CacheUtil_avg\",\n \"Min\": \"&l2CacheUtil_min\",\n \"Max\": \"&l2CacheUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"L2Cache Intf Stall\",\n \"Avg\": \"&l2CacheStall_avg\",\n \"Min\": \"&l2CacheStall_min\",\n \"Max\": \"&l2CacheStall_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"UTCL1 Stall\",\n \"Avg\": \"&utcL1Stall_avg\",\n \"Min\": \"&utcL1Stall_min\",\n \"Max\": \"&utcL1Stall_max\", \n \"Unit\": \"Cycles/Kernel\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Command Processor)\"}}\n }},\n\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1 \n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"gpuBusy_avg\": {\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\": {\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\": {\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n \"cpfBusy_avg\": {\"$avg\": \"&CPF_CPF_STAT_BUSY\"},\n \"cpfBusy_min\": {\"$min\": \"&CPF_CPF_STAT_BUSY\"},\n \"cpfBusy_max\": {\"$max\": \"&CPF_CPF_STAT_BUSY\"},\n\n \"cpfUtil_avg\": {\"$avg\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n \"cpfUtil_min\": {\"$min\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n \"cpfUtil_max\": {\"$max\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n\n \"cpfStall_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n \"cpfStall_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n \"cpfStall_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n\n \"l2CacheBusy_avg\": {\"$avg\": \"&CPF_CPF_TCIU_BUSY\"},\n \"l2CacheBusy_min\": {\"$min\": \"&CPF_CPF_TCIU_BUSY\"},\n \"l2CacheBusy_max\": {\"$max\": \"&CPF_CPF_TCIU_BUSY\"},\n\n \"l2CacheUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheStall_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n \"l2CacheStall_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n \"l2CacheStall_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n\n \"utcL1Stall_avg\": {\"$avg\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_min\": {\"$min\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_max\": {\"$max\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"}\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy Cycles\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"CPF Busy\",\n \"Avg\": \"&cpfBusy_avg\",\n \"Min\": \"&cpfBusy_min\",\n \"Max\": \"&cpfBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"CPF Util\",\n \"Avg\": \"&cpfUtil_avg\",\n \"Min\": \"&cpfUtil_min\",\n \"Max\": \"&cpfUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPF Stall\",\n \"Avg\": \"&cpfStall_avg\",\n \"Min\": \"&cpfStall_min\",\n \"Max\": \"&cpfStall_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"L2Cache Intf Busy\",\n \"Avg\": \"&l2CacheBusy_avg\",\n \"Min\": \"&l2CacheBusy_min\",\n \"Max\": \"&l2CacheBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"L2Cache Intf Util\",\n \"Avg\": \"&l2CacheUtil_avg\",\n \"Min\": \"&l2CacheUtil_min\",\n \"Max\": \"&l2CacheUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"L2Cache Intf Stall\",\n \"Avg\": \"&l2CacheStall_avg\",\n \"Min\": \"&l2CacheStall_min\",\n \"Max\": \"&l2CacheStall_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"UTCL1 Stall\",\n \"Avg\": \"&utcL1Stall_avg\",\n \"Min\": \"&utcL1Stall_min\",\n \"Max\": \"&utcL1Stall_max\", \n \"Unit\": \"Cycles/Kernel\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Command Processor Fetcher", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 83 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 171 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 148 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 180 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 118 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baselin)" - }, - "properties": [ - { - "id": "custom.width", - "value": 139 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 138 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 147 - } - ] - } - ] - }, - "gridPos": { - "h": 13, - "w": 11, - "x": 13, - "y": 62 - }, - "id": 4, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \n \"gpuBusy_avg\": {\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\": {\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\": {\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n\n \"cpcBusy_avg\": {\"$avg\": \"&CPC_CPC_STAT_BUSY\"},\n \"cpcBusy_min\": {\"$min\": \"&CPC_CPC_STAT_BUSY\"},\n \"cpcBusy_max\": {\"$max\": \"&CPC_CPC_STAT_BUSY\"},\n\n \"cpcUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n \"cpcUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n \"cpcUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n\n \"cpcStall_avg\": {\"$avg\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStall_min\": {\"$min\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStall_max\": {\"$max\": \"&CPC_CPC_STAT_STALL\"},\n\n \"cpcStallCycles_avg\": {\"$avg\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStallCycles_min\": {\"$min\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStallCycles_max\": {\"$max\": \"&CPC_CPC_STAT_STALL\"},\n\n \"cpcStallRate_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"cpcStallRate_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"cpcStallRate_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n\n \"cpcPacketDecoding_avg\":{\"$avg\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n \"cpcPacketDecoding_min\":{\"$min\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n \"cpcPacketDecoding_max\":{\"$max\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n\n \"spiBusy_avg\":{\"$avg\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n \"spiBusy_min\":{\"$min\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n \"spiBusy_max\":{\"$max\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n\n \"spiUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"spiUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"spiUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n\n \"l2CacheBusy_avg\":{\"$avg\": \"&CPC_CPC_TCIU_BUSY\"},\n \"l2CacheBusy_min\":{\"$min\": \"&CPC_CPC_TCIU_BUSY\"},\n \"l2CacheBusy_max\":{\"$max\": \"&CPC_CPC_TCIU_BUSY\"},\n\n \"l2CacheUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n \"l2CacheUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n \"l2CacheUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n\n \"utcL1Stall_avg\":{\"$avg\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_min\":{\"$min\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_max\":{\"$max\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n\n \"utcL2Busy_avg\":{\"$avg\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n \"utcL2Busy_min\":{\"$min\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n \"utcL2Busy_max\":{\"$max\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n\n \"utcL2Util_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }},\n \"utcL2Util_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }},\n \"utcL2Util_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }}\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy Cycles\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Busy Cycles\",\n \"Avg\": \"&cpcBusy_avg\",\n \"Min\": \"&cpcBusy_min\",\n \"Max\": \"&cpcBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Util\",\n \"Avg\": \"&cpcUtil_avg\",\n \"Min\": \"&cpcUtil_min\",\n \"Max\": \"&cpcUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPC Stall Cycles\",\n \"Avg\": \"&cpcStallCycles_avg\",\n \"Min\": \"&cpcStallCycles_min\",\n \"Max\": \"&cpcStallCycles_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Stall Rate\",\n \"Avg\": \"&cpcStallRate_avg\",\n \"Min\": \"&cpcStallRate_min\",\n \"Max\": \"&cpcStallRate_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPC Packet Decoding\",\n \"Avg\": \"&cpcPacketDecoding_avg\",\n \"Min\": \"&cpcPacketDecoding_min\",\n \"Max\": \"&cpcPacketDecoding_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Intf Busy Cycles\",\n \"Avg\": \"&spiBusy_avg\",\n \"Min\": \"&spiBusy_min\",\n \"Max\": \"&spiBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Intf Util\",\n \"Avg\": \"&spiUtil_avg\",\n \"Min\": \"&spiUtil_min\",\n \"Max\": \"&spiUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"L2Cache Intf Util\",\n \"Avg\": \"&l2CacheUtil_avg\",\n \"Min\": \"&l2CacheUtil_min\",\n \"Max\": \"&l2CacheUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"UTCL1 Stall Cycles\",\n \"Avg\": \"&utcL1Stall_avg\",\n \"Min\": \"&utcL1Stall_min\",\n \"Max\": \"&utcL1Stall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"UTCL2 Intf Busy Cycles\",\n \"Avg\": \"&utcL2Busy_avg\",\n \"Min\": \"&utcL2Busy_min\",\n \"Max\": \"&utcL2Busy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"UTCL2 Intf Util\",\n \"Avg\": \"&utcL2Util_avg\",\n \"Min\": \"&utcL2Util_min\",\n \"Max\": \"&utcL2Util_max\", \n \"Unit\": \"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Command Processor)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \n \"gpuBusy_avg\": {\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\": {\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\": {\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n \"cpcBusy_avg\": {\"$avg\": \"&CPC_CPC_STAT_BUSY\"},\n \"cpcBusy_min\": {\"$min\": \"&CPC_CPC_STAT_BUSY\"},\n \"cpcBusy_max\": {\"$max\": \"&CPC_CPC_STAT_BUSY\"},\n\n \"cpcUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n \"cpcUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n \"cpcUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n\n \"cpcStall_avg\": {\"$avg\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStall_min\": {\"$min\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStall_max\": {\"$max\": \"&CPC_CPC_STAT_STALL\"},\n\n \"cpcStallCycles_avg\": {\"$avg\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStallCycles_min\": {\"$min\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStallCycles_max\": {\"$max\": \"&CPC_CPC_STAT_STALL\"},\n\n \"cpcStallRate_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"cpcStallRate_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"cpcStallRate_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n\n \"cpcPacketDecoding_avg\":{\"$avg\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n \"cpcPacketDecoding_min\":{\"$min\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n \"cpcPacketDecoding_max\":{\"$max\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n\n \"spiBusy_avg\":{\"$avg\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n \"spiBusy_min\":{\"$min\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n \"spiBusy_max\":{\"$max\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n\n \"spiUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"spiUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"spiUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n\n \"l2CacheBusy_avg\":{\"$avg\": \"&CPC_CPC_TCIU_BUSY\"},\n \"l2CacheBusy_min\":{\"$min\": \"&CPC_CPC_TCIU_BUSY\"},\n \"l2CacheBusy_max\":{\"$max\": \"&CPC_CPC_TCIU_BUSY\"},\n\n \"l2CacheUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n \"l2CacheUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n \"l2CacheUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n\n \"utcL1Stall_avg\":{\"$avg\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_min\":{\"$min\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_max\":{\"$max\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n\n \"utcL2Busy_avg\":{\"$avg\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n \"utcL2Busy_min\":{\"$min\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n \"utcL2Busy_max\":{\"$max\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n\n \"utcL2Util_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }},\n \"utcL2Util_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }},\n \"utcL2Util_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }}\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy Cycles\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Busy Cycles\",\n \"Avg\": \"&cpcBusy_avg\",\n \"Min\": \"&cpcBusy_min\",\n \"Max\": \"&cpcBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Util\",\n \"Avg\": \"&cpcUtil_avg\",\n \"Min\": \"&cpcUtil_min\",\n \"Max\": \"&cpcUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPC Stall Cycles\",\n \"Avg\": \"&cpcStallCycles_avg\",\n \"Min\": \"&cpcStallCycles_min\",\n \"Max\": \"&cpcStallCycles_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Stall Rate\",\n \"Avg\": \"&cpcStallRate_avg\",\n \"Min\": \"&cpcStallRate_min\",\n \"Max\": \"&cpcStallRate_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPC Packet Decoding\",\n \"Avg\": \"&cpcPacketDecoding_avg\",\n \"Min\": \"&cpcPacketDecoding_min\",\n \"Max\": \"&cpcPacketDecoding_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Intf Busy Cycles\",\n \"Avg\": \"&spiBusy_avg\",\n \"Min\": \"&spiBusy_min\",\n \"Max\": \"&spiBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Intf Util\",\n \"Avg\": \"&spiUtil_avg\",\n \"Min\": \"&spiUtil_min\",\n \"Max\": \"&spiUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"L2Cache Intf Util\",\n \"Avg\": \"&l2CacheUtil_avg\",\n \"Min\": \"&l2CacheUtil_min\",\n \"Max\": \"&l2CacheUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"UTCL1 Stall Cycles\",\n \"Avg\": \"&utcL1Stall_avg\",\n \"Min\": \"&utcL1Stall_min\",\n \"Max\": \"&utcL1Stall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"UTCL2 Intf Busy Cycles\",\n \"Avg\": \"&utcL2Busy_avg\",\n \"Min\": \"&utcL2Busy_min\",\n \"Max\": \"&utcL2Busy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"UTCL2 Intf Util\",\n \"Avg\": \"&utcL2Util_avg\",\n \"Min\": \"&utcL2Util_min\",\n \"Max\": \"&utcL2Util_max\", \n \"Unit\": \"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Command Processor Compute", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Metric 1": "", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Command Processor (CPC/CPF)", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 6 - }, - "id": 102, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 101 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg 1" - }, - "properties": [ - { - "id": "custom.width", - "value": 121 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min 1" - }, - "properties": [ - { - "id": "custom.width", - "value": 96 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max 1" - }, - "properties": [ - { - "id": "custom.width", - "value": 145 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg 2" - }, - "properties": [ - { - "id": "custom.width", - "value": 97 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min 2" - }, - "properties": [ - { - "id": "custom.width", - "value": 128 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 130 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 123 - } - ] - } - ] - }, - "gridPos": { - "h": 15, - "w": 12, - "x": 0, - "y": 63 - }, - "id": 106, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"csBusy_avg\":{\"$avg\": \"&SPI_CSN_BUSY\"},\n \"csBusy_min\":{\"$min\": \"&SPI_CSN_BUSY\"},\n \"csBusy_max\":{\"$max\": \"&SPI_CSN_BUSY\"},\n\n \"gpuBusy_avg\":{\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\":{\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\":{\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n \"spiBusy_avg\":{\"$avg\": \"&GRBM_SPI_BUSY\"},\n \"spiBusy_min\":{\"$min\": \"&GRBM_SPI_BUSY\"},\n \"spiBusy_max\":{\"$max\": \"&GRBM_SPI_BUSY\"},\n\n \"sqBusy_avg\":{\"$avg\": \"&SQ_BUSY_CYCLES\"},\n \"sqBusy_min\":{\"$min\": \"&SQ_BUSY_CYCLES\"},\n \"sqBusy_max\":{\"$max\": \"&SQ_BUSY_CYCLES\"},\n\n \"dispatchedWorkgroups_avg\":{\"$avg\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n \"dispatchedWorkgroups_min\":{\"$min\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n \"dispatchedWorkgroups_max\":{\"$max\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n\n \"dispatchedWavefronts_avg\":{\"$avg\": \"&SPI_CSN_WAVE\"},\n \"dispatchedWavefronts_min\":{\"$min\": \"&SPI_CSN_WAVE\"},\n \"dispatchedWavefronts_max\":{\"$max\": \"&SPI_CSN_WAVE\"},\n\n\n \"waveAllocFail_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC\"},\n \"waveAllocFail_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC\"},\n \"waveAllocFail_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC\"},\n\n \"waveAllocFailCS_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveAllocFailCS_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveAllocFailCS_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"}\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Busy\",\n \"Avg\": \"&csBusy_avg\",\n \"Min\": \"&csBusy_min\",\n \"Max\": \"&csBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Busy\",\n \"Avg\": \"&spiBusy_avg\",\n \"Min\": \"&spiBusy_min\",\n \"Max\": \"&spiBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SQ Busy\",\n \"Avg\": \"&sqBusy_avg\",\n \"Min\": \"&sqBusy_min\",\n \"Max\": \"&sqBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Dispatched Workgroups\",\n \"Avg\": \"&dispatchedWorkgroups_avg\",\n \"Min\": \"&dispatchedWorkgroups_min\",\n \"Max\": \"&dispatchedWorkgroups_max\", \n \"Unit\": \"Workgroups\"\n },\n {\n \"Metric\": \"Dispatched Wavefronts\",\n \"Avg\": \"&dispatchedWavefronts_avg\",\n \"Min\": \"&dispatchedWavefronts_min\",\n \"Max\": \"&dispatchedWavefronts_max\", \n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Wave Alloc Failed\",\n \"Avg\": \"&waveAllocFail_avg\",\n \"Min\": \"&waveAllocFail_min\",\n \"Max\": \"&waveAllocFail_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Wave Alloc Failed - CS\",\n \"Avg\": \"&waveAllocFailCS_avg\",\n \"Min\": \"&waveAllocFailCS_min\",\n \"Max\": \"&waveAllocFailCS_max\", \n \"Unit\": \"Cycles\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Shader Processor Input)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"csBusy_avg\":{\"$avg\": \"&SPI_CSN_BUSY\"},\n \"csBusy_min\":{\"$min\": \"&SPI_CSN_BUSY\"},\n \"csBusy_max\":{\"$max\": \"&SPI_CSN_BUSY\"},\n\n \"gpuBusy_avg\":{\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\":{\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\":{\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n \"spiBusy_avg\":{\"$avg\": \"&GRBM_SPI_BUSY\"},\n \"spiBusy_min\":{\"$min\": \"&GRBM_SPI_BUSY\"},\n \"spiBusy_max\":{\"$max\": \"&GRBM_SPI_BUSY\"},\n\n \"sqBusy_avg\":{\"$avg\": \"&SQ_BUSY_CYCLES\"},\n \"sqBusy_min\":{\"$min\": \"&SQ_BUSY_CYCLES\"},\n \"sqBusy_max\":{\"$max\": \"&SQ_BUSY_CYCLES\"},\n\n \"dispatchedWorkgroups_avg\":{\"$avg\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n \"dispatchedWorkgroups_min\":{\"$min\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n \"dispatchedWorkgroups_max\":{\"$max\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n\n \"dispatchedWavefronts_avg\":{\"$avg\": \"&SPI_CSN_WAVE\"},\n \"dispatchedWavefronts_min\":{\"$min\": \"&SPI_CSN_WAVE\"},\n \"dispatchedWavefronts_max\":{\"$max\": \"&SPI_CSN_WAVE\"},\n\n \"waveAllocFail_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC\"},\n \"waveAllocFail_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC\"},\n \"waveAllocFail_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC\"},\n\n \"waveAllocFailCS_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveAllocFailCS_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveAllocFailCS_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"}\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Busy\",\n \"Avg\": \"&csBusy_avg\",\n \"Min\": \"&csBusy_min\",\n \"Max\": \"&csBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Busy\",\n \"Avg\": \"&spiBusy_avg\",\n \"Min\": \"&spiBusy_min\",\n \"Max\": \"&spiBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SQ Busy\",\n \"Avg\": \"&sqBusy_avg\",\n \"Min\": \"&sqBusy_min\",\n \"Max\": \"&sqBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Dispatched Workgroups\",\n \"Avg\": \"&dispatchedWorkgroups_avg\",\n \"Min\": \"&dispatchedWorkgroups_min\",\n \"Max\": \"&dispatchedWorkgroups_max\", \n \"Unit\": \"Workgroups\"\n },\n {\n \"Metric\": \"Dispatched Wavefronts\",\n \"Avg\": \"&dispatchedWavefronts_avg\",\n \"Min\": \"&dispatchedWavefronts_min\",\n \"Max\": \"&dispatchedWavefronts_max\", \n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Wave Alloc Failed\",\n \"Avg\": \"&waveAllocFail_avg\",\n \"Min\": \"&waveAllocFail_min\",\n \"Max\": \"&waveAllocFail_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Wave Alloc Failed - CS\",\n \"Avg\": \"&waveAllocFailCS_avg\",\n \"Min\": \"&waveAllocFailCS_min\",\n \"Max\": \"&waveAllocFailCS_max\", \n \"Unit\": \"Cycles\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "SPI Stats", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)", - "Unit 1": "" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 117 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 110 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 121 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 285 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 102 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 122 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 242 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 121 - } - ] - } - ] - }, - "gridPos": { - "h": 15, - "w": 12, - "x": 12, - "y": 63 - }, - "id": 104, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"waveReqFailCS_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveReqFailCS_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveReqFailCS_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n\n \"csStall_avg\":{\"$avg\": \"&SPI_RA_RES_STALL_CSN\"},\n \"csStall_min\":{\"$min\": \"&SPI_RA_RES_STALL_CSN\"},\n \"csStall_max\":{\"$max\": \"&SPI_RA_RES_STALL_CSN\"},\n\n \"csStallRate_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n \"csStallRate_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n \"csStallRate_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n\n \"scratchStall_avg\":{\"$avg\": \"&SPI_RA_TMP_STALL_CSN\"},\n \"scratchStall_min\":{\"$min\": \"&SPI_RA_TMP_STALL_CSN\"},\n \"scratchStall_max\":{\"$max\": \"&SPI_RA_TMP_STALL_CSN\"},\n\n \"simdWaveslots_avg\":{\"$avg\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n \"simdWaveslots_min\":{\"$min\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n \"simdWaveslots_max\":{\"$max\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n\n \"simdVGPRs_avg\":{\"$avg\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n \"simdVGPRs_min\":{\"$min\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n \"simdVGPRs_max\":{\"$max\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n\n \"simdSGPRs_avg\":{\"$avg\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n \"simdSGPRs_min\":{\"$min\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n \"simdSGPRs_max\":{\"$max\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n\n \"cuLDS_avg\":{\"$avg\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n \"cuLDS_min\":{\"$min\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n \"cuLDS_max\":{\"$max\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n\n \"cuBarries_avg\":{\"$avg\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n \"cuBarries_min\":{\"$min\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n \"cuBarries_max\":{\"$max\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n\n \"bulkyResource_avg\":{\"$avg\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n \"bulkyResource_min\":{\"$min\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n \"bulkyResource_max\":{\"$max\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n\n \"threadgroupLimit_avg\":{\"$avg\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n \"threadgroupLimit_min\":{\"$min\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n \"threadgroupLimit_max\":{\"$max\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n\n \"waveLimit_avg\":{\"$avg\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n \"waveLimit_min\":{\"$min\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n \"waveLimit_max\":{\"$max\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n\n \"vgprsWrites_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n \"vgprsWrites_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n \"vgprsWrites_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n\n \"sgprsWrites_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \"sgprsWrites_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \"sgprsWrites_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \n \n \"sgprsWritesUti_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }},\n \"sgprsWritesUti_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }},\n \"sgprsWritesUti_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }}\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave request Failed (CS)\",\n \"Avg\": \"&waveReqFailCS_avg\",\n \"Min\": \"&waveReqFailCS_min\",\n \"Max\": \"&waveReqFailCS_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Stall\",\n \"Avg\": \"&csStall_avg\",\n \"Min\": \"&csStall_min\",\n \"Max\": \"&csStall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Stall Rate\",\n \"Avg\": \"&csStallRate_avg\",\n \"Min\": \"&csStallRate_min\",\n \"Max\": \"&csStallRate_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"Scratch Stall\",\n \"Avg\": \"&scratchStall_avg\",\n \"Min\": \"&scratchStall_min\",\n \"Max\": \"&scratchStall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Insufficient SIMD Waveslots\",\n \"Avg\": \"&simdWaveslots_avg\",\n \"Min\": \"&simdWaveslots_min\",\n \"Max\": \"&simdWaveslots_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient SIMD VGPRs\",\n \"Avg\": \"&simdVGPRs_avg\",\n \"Min\": \"&simdVGPRs_min\",\n \"Max\": \"&simdVGPRs_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient SIMD SGPRs\",\n \"Avg\": \"&simdSGPRs_avg\",\n \"Min\": \"&simdSGPRs_min\",\n \"Max\": \"&simdSGPRs_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient CU LDS\",\n \"Avg\": \"&cuLDS_avg\",\n \"Min\": \"&cuLDS_min\",\n \"Max\": \"&cuLDS_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Insufficient CU Barries\",\n \"Avg\": \"&cuBarries_avg\",\n \"Min\": \"&cuBarries_min\",\n \"Max\": \"&cuBarries_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Insufficient Bulky Resource\",\n \"Avg\": \"&bulkyResource_avg\",\n \"Min\": \"&bulkyResource_min\",\n \"Max\": \"&bulkyResource_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Reach CU Threadgroups Limit\",\n \"Avg\": \"&threadgroupLimit_avg\",\n \"Min\": \"&threadgroupLimit_min\",\n \"Max\": \"&threadgroupLimit_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Reach CU Wave Limit\",\n \"Avg\": \"&waveLimit_avg\",\n \"Min\": \"&waveLimit_min\",\n \"Max\": \"&waveLimit_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"VGPR Writes\",\n \"Avg\": \"&vgprsWrites_avg\",\n \"Min\": \"&vgprsWrites_min\",\n \"Max\": \"&vgprsWrites_max\", \n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"SGPR Writes\",\n \"Avg\": \"&sgprsWrites_avg\",\n \"Min\": \"&sgprsWrites_min\",\n \"Max\": \"&sgprsWrites_max\", \n \"Unit\": \"Cycles/wave\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Shader Processor Input)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"waveReqFailCS_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveReqFailCS_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveReqFailCS_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n\n \"csStall_avg\":{\"$avg\": \"&SPI_RA_RES_STALL_CSN\"},\n \"csStall_min\":{\"$min\": \"&SPI_RA_RES_STALL_CSN\"},\n \"csStall_max\":{\"$max\": \"&SPI_RA_RES_STALL_CSN\"},\n\n \"csStallRate_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n \"csStallRate_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n \"csStallRate_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n\n \"scratchStall_avg\":{\"$avg\": \"&SPI_RA_TMP_STALL_CSN\"},\n \"scratchStall_min\":{\"$min\": \"&SPI_RA_TMP_STALL_CSN\"},\n \"scratchStall_max\":{\"$max\": \"&SPI_RA_TMP_STALL_CSN\"},\n\n \"simdWaveslots_avg\":{\"$avg\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n \"simdWaveslots_min\":{\"$min\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n \"simdWaveslots_max\":{\"$max\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n\n \"simdVGPRs_avg\":{\"$avg\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n \"simdVGPRs_min\":{\"$min\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n \"simdVGPRs_max\":{\"$max\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n\n \"simdSGPRs_avg\":{\"$avg\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n \"simdSGPRs_min\":{\"$min\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n \"simdSGPRs_max\":{\"$max\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n\n \"cuLDS_avg\":{\"$avg\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n \"cuLDS_min\":{\"$min\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n \"cuLDS_max\":{\"$max\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n\n \"cuBarries_avg\":{\"$avg\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n \"cuBarries_min\":{\"$min\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n \"cuBarries_max\":{\"$max\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n\n \"bulkyResource_avg\":{\"$avg\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n \"bulkyResource_min\":{\"$min\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n \"bulkyResource_max\":{\"$max\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n\n \"threadgroupLimit_avg\":{\"$avg\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n \"threadgroupLimit_min\":{\"$min\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n \"threadgroupLimit_max\":{\"$max\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n\n \"waveLimit_avg\":{\"$avg\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n \"waveLimit_min\":{\"$min\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n \"waveLimit_max\":{\"$max\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n\n \"vgprsWrites_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n \"vgprsWrites_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n \"vgprsWrites_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n\n \"sgprsWrites_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \"sgprsWrites_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \"sgprsWrites_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \n \n \"sgprsWritesUti_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }},\n \"sgprsWritesUti_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }},\n \"sgprsWritesUti_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }}\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave request Failed (CS)\",\n \"Avg\": \"&waveReqFailCS_avg\",\n \"Min\": \"&waveReqFailCS_min\",\n \"Max\": \"&waveReqFailCS_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Stall\",\n \"Avg\": \"&csStall_avg\",\n \"Min\": \"&csStall_min\",\n \"Max\": \"&csStall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Stall Rate\",\n \"Avg\": \"&csStallRate_avg\",\n \"Min\": \"&csStallRate_min\",\n \"Max\": \"&csStallRate_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"Scratch Stall\",\n \"Avg\": \"&scratchStall_avg\",\n \"Min\": \"&scratchStall_min\",\n \"Max\": \"&scratchStall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Insufficient SIMD Waveslots\",\n \"Avg\": \"&simdWaveslots_avg\",\n \"Min\": \"&simdWaveslots_min\",\n \"Max\": \"&simdWaveslots_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient SIMD VGPRs\",\n \"Avg\": \"&simdVGPRs_avg\",\n \"Min\": \"&simdVGPRs_min\",\n \"Max\": \"&simdVGPRs_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient SIMD SGPRs\",\n \"Avg\": \"&simdSGPRs_avg\",\n \"Min\": \"&simdSGPRs_min\",\n \"Max\": \"&simdSGPRs_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient CU LDS\",\n \"Avg\": \"&cuLDS_avg\",\n \"Min\": \"&cuLDS_min\",\n \"Max\": \"&cuLDS_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Insufficient CU Barries\",\n \"Avg\": \"&cuBarries_avg\",\n \"Min\": \"&cuBarries_min\",\n \"Max\": \"&cuBarries_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Insufficient Bulky Resource\",\n \"Avg\": \"&bulkyResource_avg\",\n \"Min\": \"&bulkyResource_min\",\n \"Max\": \"&bulkyResource_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Reach CU Threadgroups Limit\",\n \"Avg\": \"&threadgroupLimit_avg\",\n \"Min\": \"&threadgroupLimit_min\",\n \"Max\": \"&threadgroupLimit_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Reach CU Wave Limit\",\n \"Avg\": \"&waveLimit_avg\",\n \"Min\": \"&waveLimit_min\",\n \"Max\": \"&waveLimit_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"VGPR Writes\",\n \"Avg\": \"&vgprsWrites_avg\",\n \"Min\": \"&vgprsWrites_min\",\n \"Max\": \"&vgprsWrites_max\", \n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"SGPR Writes\",\n \"Avg\": \"&sgprsWrites_avg\",\n \"Min\": \"&sgprsWrites_min\",\n \"Max\": \"&sgprsWrites_max\", \n \"Unit\": \"Cycles/wave\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "SPI Resource Allocation", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Shader Processor Input (SPI)", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 7 - }, - "id": 185, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 169 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 142 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 196 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 174 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max" - }, - "properties": [ - { - "id": "custom.width", - "value": 168 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min" - }, - "properties": [ - { - "id": "custom.width", - "value": 272 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg" - }, - "properties": [ - { - "id": "custom.width", - "value": 225 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 100 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 103 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 115 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 117 - } - ] - } - ] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 0, - "y": 64 - }, - "id": 10, - "interval": "12h", - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"gridSize_avg\":{\"$avg\": \"&grd\"},\n \"gridSize_min\":{\"$min\": \"&grd\"},\n \"gridSize_max\":{\"$max\": \"&grd\"},\n\n \"workSize_avg\":{\"$avg\": \"&wgr\"},\n \"workSize_min\":{\"$min\": \"&wgr\"},\n \"workSize_max\":{\"$max\": \"&wgr\"},\n\n \"totWavefront_avg\":{\"$avg\": \"&SPI_CSN_WAVE\"},\n \"totWavefront_min\":{\"$min\": \"&SPI_CSN_WAVE\"},\n \"totWavefront_max\":{\"$max\": \"&SPI_CSN_WAVE\"},\n\n \"savedWavefront_avg\":{\"$avg\": \"&SQ_WAVES_SAVED\"},\n \"savedWavefront_min\":{\"$min\": \"&SQ_WAVES_SAVED\"},\n \"savedWavefront_max\":{\"$max\": \"&SQ_WAVES_SAVED\"},\n\n \"restoredWavefront_avg\":{\"$avg\": \"&SQ_WAVES_RESTORED\"},\n \"restoredWavefront_min\":{\"$min\": \"&SQ_WAVES_RESTORED\"},\n \"restoredWavefront_max\":{\"$max\": \"&SQ_WAVES_RESTORED\"},\n\n \"vgprs_avg\":{\"$avg\": \"&vgpr\"},\n \"vgprs_min\":{\"$min\": \"&vgpr\"},\n \"vgprs_max\":{\"$max\": \"&vgpr\"},\n\n \"sgprs_avg\":{\"$avg\": \"&sgpr\"},\n \"sgprs_min\":{\"$min\": \"&sgpr\"},\n \"sgprs_max\":{\"$max\": \"&sgpr\"},\n\n \"ldsAlloc_avg\":{\"$avg\": \"&lds\"},\n \"ldsAlloc_min\":{\"$min\": \"&lds\"},\n \"ldsAlloc_max\":{\"$max\": \"&lds\"},\n\n \"scratchAlloc_avg\":{\"$avg\": \"&scr\"},\n \"scratchAlloc_min\":{\"$min\": \"&scr\"},\n \"scratchAlloc_max\":{\"$max\": \"&scr\"}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Grid Size\",\n \"Avg\": \"&gridSize_avg\",\n \"Min\": \"&gridSize_min\",\n \"Max\": \"&gridSize_max\",\n \"Unit\": \"Work Items\"\n },\n {\n \"Metric\": \"Workgroup Size\",\n \"Avg\": \"&workSize_avg\",\n \"Min\": \"&workSize_min\",\n \"Max\": \"&workSize_max\",\n \"Unit\": \"Work Items\"\n },\n {\n \"Metric\": \"Total Wavefronts\",\n \"Avg\": \"&totWavefront_avg\",\n \"Min\": \"&totWavefront_min\",\n \"Max\": \"&totWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Saved Wavefronts\",\n \"Avg\": \"&savedWavefront_avg\",\n \"Min\": \"&savedWavefront_min\",\n \"Max\": \"&savedWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Restored Wavefronts\",\n \"Avg\": \"&restoredWavefront_avg\",\n \"Min\": \"&restoredWavefront_min\",\n \"Max\": \"&restoredWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"VGPRs\",\n \"Avg\": \"&vgprs_avg\",\n \"Min\": \"&vgprs_min\",\n \"Max\": \"&vgprs_max\",\n \"Unit\": \"Registers\"\n },\n {\n \"Metric\": \"SGPRs\",\n \"Avg\": \"&sgprs_avg\",\n \"Min\": \"&sgprs_min\",\n \"Max\": \"&sgprs_max\",\n \"Unit\":\"Registers\"\n },\n {\n \"Metric\": \"LDS Allocation\",\n \"Avg\": \"&ldsAlloc_avg\",\n \"Min\": \"&ldsAlloc_min\",\n \"Max\": \"&ldsAlloc_max\",\n \"Unit\": \"Bytes\"\n },\n {\n \"Metric\": \"Scratch Allocation\",\n \"Avg\": \"&scratchAlloc_avg\",\n \"Min\": \"&scratchAlloc_min\",\n \"Max\": \"&scratchAlloc_max\",\n \"Unit\": \"Bytes\"\n }\n \n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Wavefront)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"gridSize_avg\":{\"$avg\": \"&grd\"},\n \"gridSize_min\":{\"$min\": \"&grd\"},\n \"gridSize_max\":{\"$max\": \"&grd\"},\n\n \"workSize_avg\":{\"$avg\": \"&wgr\"},\n \"workSize_min\":{\"$min\": \"&wgr\"},\n \"workSize_max\":{\"$max\": \"&wgr\"},\n\n\n \"totWavefront_avg\":{\"$avg\": \"&SPI_CSN_WAVE\"},\n \"totWavefront_min\":{\"$min\": \"&SPI_CSN_WAVE\"},\n \"totWavefront_max\":{\"$max\": \"&SPI_CSN_WAVE\"},\n\n \"savedWavefront_avg\":{\"$avg\": \"&SQ_WAVES_SAVED\"},\n \"savedWavefront_min\":{\"$min\": \"&SQ_WAVES_SAVED\"},\n \"savedWavefront_max\":{\"$max\": \"&SQ_WAVES_SAVED\"},\n\n \"restoredWavefront_avg\":{\"$avg\": \"&SQ_WAVES_RESTORED\"},\n \"restoredWavefront_min\":{\"$min\": \"&SQ_WAVES_RESTORED\"},\n \"restoredWavefront_max\":{\"$max\": \"&SQ_WAVES_RESTORED\"},\n\n\n \"vgprs_avg\":{\"$avg\": \"&vgpr\"},\n \"vgprs_min\":{\"$min\": \"&vgpr\"},\n \"vgprs_max\":{\"$max\": \"&vgpr\"},\n\n \"sgprs_avg\":{\"$avg\": \"&sgpr\"},\n \"sgprs_min\":{\"$min\": \"&sgpr\"},\n \"sgprs_max\":{\"$max\": \"&sgpr\"},\n\n \"ldsAlloc_avg\":{\"$avg\": \"&lds\"},\n \"ldsAlloc_min\":{\"$min\": \"&lds\"},\n \"ldsAlloc_max\":{\"$max\": \"&lds\"},\n\n \"scratchAlloc_avg\":{\"$avg\": \"&scr\"},\n \"scratchAlloc_min\":{\"$min\": \"&scr\"},\n \"scratchAlloc_max\":{\"$max\": \"&scr\"}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Grid Size\",\n \"Avg\": \"&gridSize_avg\",\n \"Min\": \"&gridSize_min\",\n \"Max\": \"&gridSize_max\",\n \"Unit\": \"Work Items\"\n },\n {\n \"Metric\": \"Workgroup Size\",\n \"Avg\": \"&workSize_avg\",\n \"Min\": \"&workSize_min\",\n \"Max\": \"&workSize_max\",\n \"Unit\": \"Work Items\"\n },\n {\n \"Metric\": \"Total Wavefronts\",\n \"Avg\": \"&totWavefront_avg\",\n \"Min\": \"&totWavefront_min\",\n \"Max\": \"&totWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Saved Wavefronts\",\n \"Avg\": \"&savedWavefront_avg\",\n \"Min\": \"&savedWavefront_min\",\n \"Max\": \"&savedWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Restored Wavefronts\",\n \"Avg\": \"&restoredWavefront_avg\",\n \"Min\": \"&restoredWavefront_min\",\n \"Max\": \"&restoredWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"VGPRs\",\n \"Avg\": \"&vgprs_avg\",\n \"Min\": \"&vgprs_min\",\n \"Max\": \"&vgprs_max\",\n \"Unit\": \"Registers\"\n },\n {\n \"Metric\": \"SGPRs\",\n \"Avg\": \"&sgprs_avg\",\n \"Min\": \"&sgprs_min\",\n \"Max\": \"&sgprs_max\",\n \"Unit\":\"Registers\"\n },\n {\n \"Metric\": \"LDS Allocation\",\n \"Avg\": \"&ldsAlloc_avg\",\n \"Min\": \"&ldsAlloc_min\",\n \"Max\": \"&ldsAlloc_max\",\n \"Unit\": \"Bytes\"\n },\n {\n \"Metric\": \"Scratch Allocation\",\n \"Avg\": \"&scratchAlloc_avg\",\n \"Min\": \"&scratchAlloc_min\",\n \"Max\": \"&scratchAlloc_max\",\n \"Unit\": \"Bytes\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Wavefront Launch Stats", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true, - "Units 2": true, - "metric 2": true - }, - "indexByName": { - "Avg 1": 1, - "Avg 2": 2, - "Max 1": 5, - "Max 2": 6, - "Metric 1": 0, - "Metric 2": 7, - "Min 1": 3, - "Min 2": 4, - "Unit 1": 9, - "Unit 2": 8 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 148 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 122 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 106 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg" - }, - "properties": [ - { - "id": "custom.width", - "value": 223 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 169 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 165 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 133 - } - ] - } - ] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 12, - "y": 64 - }, - "id": 34, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"instrWavefront_avg\":{\"$avg\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n \"instrWavefront_min\":{\"$min\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n \"instrWavefront_max\":{\"$max\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n\n \"waveCycles_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n \"waveCycles_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n \"waveCycles_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n\n \"depWaitingCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"depWaitingCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"depWaitingCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"issueWaitCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"issueWaitCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"issueWaitCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"activeCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"activeCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"activeCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"kernelTime_avg\":{\"$avg\": {\"$subtract\": [ \"&EndNs\", \"&BeginNs\" ]}},\n \"kernelTime_min\":{\"$min\": {\"$subtract\": [ \"&EndNs\", \"&BeginNs\" ]}},\n \"kernelTime_max\":{\"$max\": {\"$subtract\": [ \"&EndNs\", \"&BeginNs\" ]}},\n\n \"kernelCycle_avg\":{\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"kernelCycle_min\":{\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"kernelCycle_max\":{\"$max\": \"&GRBM_GUI_ACTIVE\"}\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Kernel Time (Nanosec)\",\n \"Avg\": \"&kernelTime_avg\",\n \"Min\": \"&kernelTime_min\",\n \"Max\": \"&kernelTime_max\",\n \"Unit\":\"ns\"\n },\n {\n \"Metric\": \"Kernel Time (Cycles)\",\n \"Avg\": \"&kernelCycle_avg\",\n \"Min\": \"&kernelCycle_min\",\n \"Max\": \"&kernelCycle_max\",\n \"Unit\":\"Cycle\"\n },\n\n {\n \"Metric\": \"Instr/wavefront\",\n \"Avg\": \"&instrWavefront_avg\",\n \"Min\": \"&instrWavefront_min\",\n \"Max\": \"&instrWavefront_max\",\n \"Unit\": \"Instr/wavefront\"\n },\n {\n \"Metric\": \"Wave Cycles\",\n \"Avg\": \"&waveCycles_avg\",\n \"Min\": \"&waveCycles_min\",\n \"Max\": \"&waveCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Dependency Wait Cycles\",\n \"Avg\": \"&depWaitingCycles_avg\",\n \"Min\": \"&depWaitingCycles_min\",\n \"Max\": \"&depWaitingCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Issue Wait Cycles\",\n \"Avg\": \"&issueWaitCycles_avg\",\n \"Min\": \"&issueWaitCycles_min\",\n \"Max\": \"&issueWaitCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Active Cycles\",\n \"Avg\": \"&activeCycles_avg\",\n \"Min\": \"&activeCycles_min\",\n \"Max\": \"&activeCycles_max\",\n \"Unit\": \"Cycles/wave\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_LEVEL_WAVES\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"occAvg\": {\"$avg\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } },\n \"occMin\": {\"$min\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } },\n \"occMax\": {\"$max\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } }\n }},\n {\"$project\": {\n \"_id\":0,\n \"Metric\": \"Wavefront Occupancy\",\n \"Avg\": \"&occAvg\",\n \"Min\":\"&occMin\",\n \"Max\":\"&occMax\",\n \"Unit\":\"Wavefronts\"\n }}\n ]\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Wavefront)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"instrWavefront_avg\":{\"$avg\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n \"instrWavefront_min\":{\"$min\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n \"instrWavefront_max\":{\"$max\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n\n \"waveCycles_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n \"waveCycles_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n \"waveCycles_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n\n \"depWaitingCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"depWaitingCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"depWaitingCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"issueWaitCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"issueWaitCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"issueWaitCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"activeCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"activeCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"activeCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"kernelTime_avg\":{\"$avg\": {\"$subtract\": [ \"&EndNs\", \"&BeginNs\" ]}},\n \"kernelTime_min\":{\"$min\": {\"$subtract\": [ \"&EndNs\", \"&BeginNs\" ]}},\n \"kernelTime_max\":{\"$max\": {\"$subtract\": [ \"&EndNs\", \"&BeginNs\" ]}},\n\n \"kernelCycle_avg\":{\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"kernelCycle_min\":{\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"kernelCycle_max\":{\"$max\": \"&GRBM_GUI_ACTIVE\"}\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Kernel Time (Nanosec)\",\n \"Avg\": \"&kernelTime_avg\",\n \"Min\": \"&kernelTime_min\",\n \"Max\": \"&kernelTime_max\",\n \"Unit\":\"ns\"\n },\n {\n \"Metric\": \"Kernel Time (Cycles)\",\n \"Avg\": \"&kernelCycle_avg\",\n \"Min\": \"&kernelCycle_min\",\n \"Max\": \"&kernelCycle_max\",\n \"Unit\":\"Cycle\"\n },\n\n {\n \"Metric\": \"Instr/wavefront\",\n \"Avg\": \"&instrWavefront_avg\",\n \"Min\": \"&instrWavefront_min\",\n \"Max\": \"&instrWavefront_max\",\n \"Unit\": \"Instr/wavefront\"\n },\n {\n \"Metric\": \"Wave Cycles\",\n \"Avg\": \"&waveCycles_avg\",\n \"Min\": \"&waveCycles_min\",\n \"Max\": \"&waveCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Dependency Wait Cycles\",\n \"Avg\": \"&depWaitingCycles_avg\",\n \"Min\": \"&depWaitingCycles_min\",\n \"Max\": \"&depWaitingCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Issue Wait Cycles\",\n \"Avg\": \"&issueWaitCycles_avg\",\n \"Min\": \"&issueWaitCycles_min\",\n \"Max\": \"&issueWaitCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Active Cycles\",\n \"Avg\": \"&activeCycles_avg\",\n \"Min\": \"&activeCycles_min\",\n \"Max\": \"&activeCycles_max\",\n \"Unit\": \"Cycles/wave\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_LEVEL_WAVES\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Wavefront)\"}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"occAvg\": {\"$avg\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } },\n \"occMin\": {\"$min\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } },\n \"occMax\": {\"$max\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } }\n }},\n {\"$project\": {\n \"_id\":0,\n \"Metric\": \"Wavefront Occupancy\",\n \"Avg\": \"&occAvg\",\n \"Min\":\"&occMin\",\n \"Max\":\"&occMax\",\n \"Unit\":\"Wavefronts\"\n }}\n ]\n }}\n ]);", - "type": "table" - } - ], - "title": "Wavefront Runtime Stats", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg": "", - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)", - "Unit 1": "", - "Unit 2": "" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Wavefront", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 8 - }, - "id": 209, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [] - }, - "gridPos": { - "h": 17, - "w": 12, - "x": 0, - "y": 9 - }, - "id": 12, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "text": { - "valueSize": 16 - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"valu\": {\n \"$avg\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_MFMA\"]}, \"&denom\" ] }\n },\n \"mfma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_MFMA\", \"&denom\" ] }\n },\n \"vmem\": {\n \"$avg\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VMEM\", \"&SQ_INSTS_FLAT_LDS_ONLY\"]}, \"&denom\" ] }\n },\n \"lds\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_LDS\", \"&denom\" ] }\n },\n \"salu\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SALU\", \"&denom\" ] }\n },\n \"smem\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SMEM\", \"&denom\" ] }\n },\n \"branch\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_BRANCH\", \"&denom\" ] }\n },\n \"gds\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_GDS\", \"&denom\" ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"VALU - Vector\",\n \"count\": \"&valu\"\n },\n {\n \"metric\": \"VMEM\",\n \"count\": \"&vmem\"\n },\n {\n \"metric\": \"LDS\",\n \"count\": \"&lds\"\n },\n {\n \"metric\": \"VALU - MFMA\",\n \"count\": \"&mfma\"\n },\n {\n \"metric\": \"SALU\",\n \"count\": \"&salu\"\n },\n {\n \"metric\": \"SMEM\",\n \"count\": \"&smem\"\n },\n {\n \"metric\": \"Branch\",\n \"count\": \"&branch\"\n },\n {\n \"metric\": \"GDS\",\n \"count\": \"&gds\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "$Workload2.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Mix)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n \n {\"$group\": {\n \"_id\": null,\n \"valu\": {\n \"$avg\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_MFMA\"]}, \"&denom\" ] }\n },\n \"mfma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_MFMA\", \"&denom\" ] }\n },\n \"vmem\": {\n \"$avg\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VMEM\", \"&SQ_INSTS_FLAT_LDS_ONLY\"]}, \"&denom\" ] }\n },\n \"lds\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_LDS\", \"&denom\" ] }\n },\n \"salu\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SALU\", \"&denom\" ] }\n },\n \"smem\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SMEM\", \"&denom\" ] }\n },\n \"branch\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_BRANCH\", \"&denom\" ] }\n },\n \"gds\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_GDS\", \"&denom\" ] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"VALU - Vector (Baseline)\",\n \"count\": \"&valu\"\n },\n {\n \"metric\": \"VMEM (Baseline)\",\n \"count\": \"&vmem\"\n },\n {\n \"metric\": \"LDS (Baseline)\",\n \"count\": \"&lds\"\n },\n {\n \"metric\": \"VALU - MFMA (Baseline)\",\n \"count\": \"&mfma\"\n },\n {\n \"metric\": \"SALU (Baseline)\",\n \"count\": \"&salu\"\n },\n {\n \"metric\": \"SMEM (Baseline)\",\n \"count\": \"&smem\"\n },\n {\n \"metric\": \"Branch (Baseline)\",\n \"count\": \"&branch\"\n },\n {\n \"metric\": \"GDS (Baseline)\",\n \"count\": \"&gds\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "Instruction Mix", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "field": "metric" - } - ] - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 24, - "w": 12, - "x": 12, - "y": 9 - }, - "id": 24, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "/^count$/", - "limit": 100, - "values": true - }, - "showUnfilled": true, - "text": {} - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"count_int_i32\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_INT32\", \"&denom\" ] }\n },\n \"count_int_i64\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_INT64\", \"&denom\" ] }\n },\n \"count_f16_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F16\", \"&denom\" ] }\n },\n \"count_f16_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F16\", \"&denom\" ] }\n },\n \"count_f16_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F16\", \"&denom\" ] }\n },\n \"count_f16_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F16\", \"&denom\" ] }\n },\n \"count_f32_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F32\", \"&denom\" ] }\n },\n \"count_f32_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F32\", \"&denom\" ] }\n },\n \"count_f32_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F32\", \"&denom\" ] }\n },\n \"count_f32_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F32\", \"&denom\" ] }\n },\n \"count_f64_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F64\", \"&denom\" ] }\n },\n \"count_f64_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F64\", \"&denom\" ] }\n },\n \"count_f64_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F64\", \"&denom\" ] }\n },\n \"count_f64_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F64\", \"&denom\" ] }\n },\n \"conversion\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_CVT\", \"&denom\" ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"INT32\",\n \"count\": \"&count_int_i32\"\n },\n {\n \"metric\": \"INT64\",\n \"count\": \"&count_int_i64\"\n },\n {\n \"metric\": \"F16-ADD\",\n \"count\": \"&count_f16_add\"\n },\n {\n \"metric\": \"F16-MUL\",\n \"count\": \"&count_f16_MUL\"\n },\n {\n \"metric\": \"F16-FMA\",\n \"count\": \"&count_f16_fma\"\n },\n {\n \"metric\": \"F16-Trans\",\n \"count\": \"&count_f16_trans\"\n },\n {\n \"metric\": \"F32-ADD\",\n \"count\": \"&count_f32_add\"\n },\n {\n \"metric\": \"F32-MUL\",\n \"count\": \"&count_f32_MUL\"\n },\n {\n \"metric\": \"F32-FMA\",\n \"count\": \"&count_f32_fma\"\n },\n {\n \"metric\": \"F32-Trans\",\n \"count\": \"&count_f32_trans\"\n },\n {\n \"metric\": \"F64-ADD\",\n \"count\": \"&count_f64_add\"\n },\n {\n \"metric\": \"F64-MUL\",\n \"count\": \"&count_f64_MUL\"\n },\n {\n \"metric\": \"F64-FMA\",\n \"count\": \"&count_f64_fma\"\n },\n {\n \"metric\": \"F64-Trans\",\n \"count\": \"&count_f64_trans\"\n },\n {\n \"metric\": \"Conversion\",\n \"count\": \"&conversion\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Mix)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"count_int_i32\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_INT32\", \"&denom\" ] }\n },\n \"count_int_i64\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_INT64\", \"&denom\" ] }\n },\n \"count_f16_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F16\", \"&denom\" ] }\n },\n \"count_f16_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F16\", \"&denom\" ] }\n },\n \"count_f16_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F16\", \"&denom\" ] }\n },\n \"count_f16_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F16\", \"&denom\" ] }\n },\n \"count_f32_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F32\", \"&denom\" ] }\n },\n \"count_f32_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F32\", \"&denom\" ] }\n },\n \"count_f32_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F32\", \"&denom\" ] }\n },\n \"count_f32_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F32\", \"&denom\" ] }\n },\n \"count_f64_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F64\", \"&denom\" ] }\n },\n \"count_f64_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F64\", \"&denom\" ] }\n },\n \"count_f64_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F64\", \"&denom\" ] }\n },\n \"count_f64_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F64\", \"&denom\" ] }\n },\n \"conversion\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_CVT\", \"&denom\" ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"INT32 (Baseline)\",\n \"count\": \"&count_int_i32\"\n },\n {\n \"metric\": \"INT64 (Baseline)\",\n \"count\": \"&count_int_i64\"\n },\n {\n \"metric\": \"F16-ADD (Baseline)\",\n \"count\": \"&count_f16_add\"\n },\n {\n \"metric\": \"F16-MUL (Baseline)\",\n \"count\": \"&count_f16_MUL\"\n },\n {\n \"metric\": \"F16-FMA (Baseline)\",\n \"count\": \"&count_f16_fma\"\n },\n {\n \"metric\": \"F16-Trans (Baseline)\",\n \"count\": \"&count_f16_trans\"\n },\n {\n \"metric\": \"F32-ADD (Baseline)\",\n \"count\": \"&count_f32_add\"\n },\n {\n \"metric\": \"F32-MUL (Baseline)\",\n \"count\": \"&count_f32_MUL\"\n },\n {\n \"metric\": \"F32-FMA (Baseline)\",\n \"count\": \"&count_f32_fma\"\n },\n {\n \"metric\": \"F32-Trans (Baseline)\",\n \"count\": \"&count_f32_trans\"\n },\n {\n \"metric\": \"F64-ADD (Baseline)\",\n \"count\": \"&count_f64_add\"\n },\n {\n \"metric\": \"F64-MUL (Baseline)\",\n \"count\": \"&count_f64_MUL\"\n },\n {\n \"metric\": \"F64-FMA (Baseline)\",\n \"count\": \"&count_f64_fma\"\n },\n {\n \"metric\": \"F64-Trans (Baseline)\",\n \"count\": \"&count_f64_trans\"\n },\n {\n \"metric\": \"Conversion (Baseline)\",\n \"count\": \"&conversion\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "VALU Arithmetic Instr Mix", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "field": "metric" - } - ] - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 0, - "y": 26 - }, - "id": 275, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"buffer_instr\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_read\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_write\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_atomic\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \n \"flat_instr\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_read\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_write\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_atomic\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\" ] }\n }\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"type\": \"Buffer Instr\",\n \"count\": \"&buffer_instr\"\n },\n {\n \"type\": \"Buffer Read\",\n \"count\": \"&buffer_read\"\n },\n {\n \"type\": \"Buffer Write\",\n \"count\": \"&buffer_write\"\n },\n {\n \"type\": \"Buffer Atomic\",\n \"count\": \"&buffer_atomic\"\n },\n {\n \"type\": \"Flat Instr\",\n \"count\": \"&flat_instr\"\n },\n {\n \"type\": \"Flat Read\",\n \"count\": \"&flat_read\"\n },\n {\n \"type\": \"Flat Write\",\n \"count\": \"&flat_write\"\n },\n {\n \"type\": \"Flat Atomic\",\n \"count\": \"&flat_atomic\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Mix)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"buffer_instr\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_read\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_write\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_atomic\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n\n \"flat_instr\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_read\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_write\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_atomic\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\" ] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"type\": \"Buffer Instr (Baseline)\",\n \"count\": \"&buffer_instr\"\n },\n {\n \"type\": \"Buffer Read (Baseline)\",\n \"count\": \"&buffer_read\"\n },\n {\n \"type\": \"Buffer Write (Baseline)\",\n \"count\": \"&buffer_write\"\n },\n {\n \"type\": \"Buffer Atomic (Baseline)\",\n \"count\": \"&buffer_atomic\"\n },\n {\n \"type\": \"Flat Instr (Baseline)\",\n \"count\": \"&flat_instr\"\n },\n {\n \"type\": \"Flat Read (Baseline)\",\n \"count\": \"&flat_read\"\n },\n {\n \"type\": \"Flat Write (Baseline)\",\n \"count\": \"&flat_write\"\n },\n {\n \"type\": \"Flat Atomic (Baseline)\",\n \"count\": \"&flat_atomic\"\n }\n\n ]\n }},\n\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "VMEM Instr Mix", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "type 2": true - }, - "indexByName": {}, - "renameByName": { - "count": "Count", - "count 1": "Avg (Current)", - "count 2": "Avg (Baseline)", - "type": "VMEM Instr", - "type 1": "VMEM Instr" - } - } - } - ], - "transparent": true, - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 12, - "x": 12, - "y": 33 - }, - "id": 16, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"mmfa_i8\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_I8\", \"&SQ_WAVES\" ] }\n },\n \"mmfa_f16\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F16\", \"&SQ_WAVES\" ] }\n },\n \"mmfa_bf16\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_BF16\", \"&SQ_WAVES\" ] }\n },\n \"mfma_f32\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F32\", \"&SQ_WAVES\" ] }\n },\n \"mfma_f64\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F64\", \"&SQ_WAVES\" ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"type\": \"MFMA-I8\",\n \"count\": \"&mmfa_i8\"\n },\n {\n \"type\": \"MFMA-F16\",\n \"count\": \"&mmfa_f16\"\n },\n {\n \"type\": \"MFMA-BF16\",\n \"count\": \"&mmfa_bf16\"\n },\n {\n \"type\": \"MFMA-F32\",\n \"count\": \"&mfma_f32\"\n },\n {\n \"type\": \"MFMA-F64\",\n \"count\": \"&mfma_f64\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Mix)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"mmfa_i8\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_I8\", \"&SQ_WAVES\" ] }\n },\n \"mmfa_f16\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F16\", \"&SQ_WAVES\" ] }\n },\n \"mmfa_bf16\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_BF16\", \"&SQ_WAVES\" ] }\n },\n \"mfma_f32\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F32\", \"&SQ_WAVES\" ] }\n },\n \"mfma_f64\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F64\", \"&SQ_WAVES\" ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"type\": \"MFMA-I8 (Baseline)\",\n \"count\": \"&mmfa_i8\"\n },\n {\n \"type\": \"MFMA-F16 (Baseline)\",\n \"count\": \"&mmfa_f16\"\n },\n {\n \"type\": \"MFMA-BF16 (Baseline)\",\n \"count\": \"&mmfa_bf16\"\n },\n {\n \"type\": \"MFMA-F32 (Baseline)\",\n \"count\": \"&mfma_f32\"\n },\n {\n \"type\": \"MFMA-F64 (Baseline)\",\n \"count\": \"&mfma_f64\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "MFMA Arithmetic Instr Mix", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "type 2": true - }, - "indexByName": {}, - "renameByName": { - "count": "Count", - "count 1": "Avg (Current)", - "count 2": "Avg (Baseline)", - "type": "MFMA Instr", - "type 1": "MFMA Instr" - } - } - } - ], - "transparent": true, - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Compute Unit - Instruction Mix", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 9 - }, - "id": 8, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 0, - "y": 10 - }, - "id": 211, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "/.*/", - "values": true - }, - "showUnfilled": true, - "text": { - "titleSize": 14, - "valueSize": 14 - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"valu_flops_val\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }] }] }\n ]}\n ,{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }]\n }},\n\n \"mfma_flops_f16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_bf16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f32_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f64_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_i8_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } }\n\n }}, \n {\"$set\": {\n \"array\": [\n {\n \"valu_flops_pop\": {\"$divide\": [{ \"$multiply\": [100, \"&valu_flops_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 64, 2 ]}, 1000] }] },\n \"mfma_flops_bf16_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_bf16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 512 ]}, 1000] }]},\n \"mfma_flops_f16_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 1024 ]}, 1000] }]},\n \"mfma_flops_f32_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f32_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 256 ]}, 1000] }]},\n \"mfma_flops_f64_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f64_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 256 ]}, 1000] }]},\n \"mfma_flops_i8_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_i8_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 1024 ]}, 1000] }]}\n }\n ]\n }},\n\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n \n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"valu_flops_val\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }] }] }\n ]}\n ,{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }]\n }},\n\n \"mfma_flops_f16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_bf16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f32_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f64_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_i8_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n\n \"instr_val\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS\", { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n }\n\n }}, \n {\"$set\": {\n \"array\": [\n {\n \"valu_flops_pop\": {\"$divide\": [{ \"$multiply\": [100, \"&valu_flops_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 64, 2 ]}, 1000] }] },\n \"mfma_flops_bf16_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_bf16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 512 ]}, 1000] }]},\n \"mfma_flops_f16_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 1024 ]}, 1000] }]},\n \"mfma_flops_f32_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f32_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 256 ]}, 1000] }]},\n \"mfma_flops_f64_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f64_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 256 ]}, 1000] }]},\n \"mfma_flops_i8_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_i8_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 1024 ]}, 1000] }]}\n }\n ]\n }},\n\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n \n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - } - ], - "title": "Speed-of-Light: Compute Pipeline", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "mfma_flops_bf16_pop 1": 4, - "mfma_flops_bf16_pop 2": 5, - "mfma_flops_f16_pop 1": 6, - "mfma_flops_f16_pop 2": 7, - "mfma_flops_f32_pop 1": 8, - "mfma_flops_f32_pop 2": 9, - "mfma_flops_f64_pop 1": 10, - "mfma_flops_f64_pop 2": 11, - "mfma_flops_i8_pop 1": 12, - "mfma_flops_i8_pop 2": 13, - "valu_flops_pop 1": 0, - "valu_flops_pop 2": 1, - "valu_iops_pop 1": 2, - "valu_iops_pop 2": 3 - }, - "renameByName": { - "BW (Pct-of-Peak) 1": "BW Pct-of-Peak (Current)", - "BW (Pct-of-Peak) 2": "BW Pct-of-Peak (Baseline)", - "Bandwith (Pct-of-Peak)": "", - "Bandwith (Pct-of-Peak) 1": "BW Pct-of-Peak (Current)", - "Bandwith (Pct-of-Peak) 2": "BW Pct-of-Peak (Baseline) ", - "Bank Conflict Rate 1": "Bank Conflict Rate (Current)", - "Bank Conflict Rate 2": "Bank Conflict Rate (Baseline)", - "Cache Hit 1": "Cache Hit (Current)", - "Cache Hit 2": "Cache Hit (Baseline)", - "Latency (Cycles) 1": "Latency (Current) [Cycles]", - "Latency (Cycles) 2": "Latency (Baseline) [Cycles]", - "Stall 1": "Stall (Current)", - "Stall 2": "Stall (Baseline)", - "Util 1": "Util (Current)", - "Util 2": "Util (Baseline)", - "flops_pop": "FLOPs", - "flops_pop 1": "FLOPs (Current)", - "flops_pop 2": "FLOPs (Baseline)", - "iops_pop": "IOPs", - "iops_pop 1": "IOPs (Current)", - "iops_pop 2": "IOPs (Baseline)", - "mfma_flops_bf16_pop": "MFMA- BF16 (FLOPs)", - "mfma_flops_bf16_pop 1": "MFMA-BF16 (Cur)", - "mfma_flops_bf16_pop 2": "MFMA-BF16 (Baseline)", - "mfma_flops_f16_pop": "MFMA-F16 (FLOPs)", - "mfma_flops_f16_pop 1": "MFMA-F16 (Cur)", - "mfma_flops_f16_pop 2": "MFMA-F16 (Baseline)", - "mfma_flops_f32_pop": "MFMA-F32 (FLOPs)", - "mfma_flops_f32_pop 1": "MFMA-F32 (Cur)", - "mfma_flops_f32_pop 2": "MFMA-F32 (Baseline)", - "mfma_flops_f64_pop": "MFMA-F64 (FLOPs)", - "mfma_flops_f64_pop 1": "MFMA-F64 (Cur)", - "mfma_flops_f64_pop 2": "MFMA-F64 (Baseline)", - "mfma_flops_i8_pop": "MFMA-i8 (IOPs)", - "mfma_flops_i8_pop 1": "MFMA-I8 (Cur)", - "mfma_flops_i8_pop 2": "MFMA-I8 (Baseline)", - "valu_flops_pop": "VALU (FLOPs)", - "valu_flops_pop 1": "VALU FLOPs (Cur)", - "valu_flops_pop 2": "VALU FLOPs (Baseline)", - "valu_iops_pop": "VALU (IOPs)", - "valu_iops_pop 1": "VALU IOPs (Cur)", - "valu_iops_pop 2": "VALU IOPs (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 12, - "y": 10 - }, - "id": 257, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "rawQuery": true, - "refId": "pmc_perf", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_ipcAvg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] }\n },\n \"min_ipcAvg\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] } \n },\n \"max_ipcAvg\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] }\n },\n \n \"avg_ipcIssue\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"min_ipcIssue\": {\n \"$min\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"max_ipcIssue\": {\n \"$max\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n\n \"avg_saluUtil\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU ] }\n },\n \"min_saluUtil\": {\n \"$min\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU ] }\n },\n \"max_saluUtil\": {\n \"$max\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU ] }\n },\n\n \"avg_valuUtil\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU ] }\n },\n \"min_valuUtil\": {\n \"$min\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU ] }\n },\n \"max_valuUtil\": {\n \"$max\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU ] }\n },\n\n \"avg_mfmaUtil\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $numCU, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n \"min_mfmaUtil\": {\n \"$min\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $numCU, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n \"max_mfmaUtil\": {\n \"$max\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $numCU, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n\n \"avg_mfmaInstrCycles\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n \"min_mfmaInstrCycles\": {\n \"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n \"max_mfmaInstrCycles\": {\n \"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n\n\n \"avg_unpredthreads_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \"min_unpredthreads_val\": {\n \"$min\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \"max_unpredthreads_val\": {\n \"$max\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n\n \"avg_instrFetchBand\": {\n \"$avg\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \"min_instrFetchBand\": {\n \"$min\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \"max_instrFetchBand\": {\n \"$max\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n }\n\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"IPC (Avg)\",\n \"Avg\": \"&avg_ipcAvg\",\n \"Min\": \"&min_ipcAvg\",\n \"Max\": \"&max_ipcAvg\",\n \"Unit\": \"Instr/cycle\"\n },\n {\n \"Metric\": \"IPC (Issue)\",\n \"Avg\": \"&avg_ipcIssue\",\n \"Min\": \"&min_ipcIssue\",\n \"Max\": \"&max_ipcIssue\",\n \"Unit\": \"Instr/cycle\"\n },\n {\n \"Metric\": \"SALU Util\",\n \"Avg\": \"&avg_saluUtil\",\n \"Min\": \"&min_saluUtil\",\n \"Max\": \"&max_saluUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"VALU Util\",\n \"Avg\": \"&avg_valuUtil\",\n \"Min\": \"&min_valuUtil\",\n \"Max\": \"&max_valuUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"VALU Active Threads\",\n \"Avg\": \"&avg_unpredthreads_val\",\n \"Min\": \"&min_unpredthreads_val\",\n \"Max\": \"&max_unpredthreads_val\",\n \"Unit\": \"Threads\"\n },\n {\n \"Metric\": \"MFMA Util\",\n \"Avg\": \"&avg_mfmaUtil\",\n \"Min\": \"&min_mfmaUtil\",\n \"Max\": \"&max_mfmaUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"MFMA Instr Cycles\",\n \"Avg\": \"&avg_mfmaInstrCycles\",\n \"Min\": \"&min_mfmaInstrCycles\",\n \"Max\": \"&max_mfmaInstrCycles\",\n \"Unit\": \"cycles/instr\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "pmc_perf2", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_ipcAvg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] }\n },\n \"min_ipcAvg\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] } \n },\n \"max_ipcAvg\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] }\n },\n \n \"avg_ipcIssue\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"min_ipcIssue\": {\n \"$min\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"max_ipcIssue\": {\n \"$max\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n\n \"avg_saluUtil\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU2 ] }\n },\n \"min_saluUtil\": {\n \"$min\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU2 ] }\n },\n \"max_saluUtil\": {\n \"$max\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU2 ] }\n },\n\n \"avg_valuUtil\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU2 ] }\n },\n \"min_valuUtil\": {\n \"$min\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU2 ] }\n },\n \"max_valuUtil\": {\n \"$max\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU2 ] }\n },\n\n\n \"avg_mfmaUtil\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $numCU2, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n \"min_mfmaUtil\": {\n \"$min\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $numCU2, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n \"max_mfmaUtil\": {\n \"$max\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $numCU2, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n\n \"avg_mfmaInstrCycles\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n \"min_mfmaInstrCycles\": {\n \"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n \"max_mfmaInstrCycles\": {\n \"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n\n \"avg_unpredthreads_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \"min_unpredthreads_val\": {\n \"$min\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \"max_unpredthreads_val\": {\n \"$max\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n\n \"avg_instrFetchBand\": {\n \"$avg\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \"min_instrFetchBand\": {\n \"$min\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \"max_instrFetchBand\": {\n \"$max\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"IPC (Avg)\",\n \"Avg 2\": \"&avg_ipcAvg\",\n \"Min 2\": \"&min_ipcAvg\",\n \"Max 2\": \"&max_ipcAvg\",\n \"Unit\": \"Instr/cycle\"\n },\n {\n \"Metric\": \"IPC (Issue)\",\n \"Avg 2\": \"&avg_ipcIssue\",\n \"Min 2\": \"&min_ipcIssue\",\n \"Max 2\": \"&max_ipcIssue\",\n \"Unit\": \"Instr/cycle\"\n },\n {\n \"Metric\": \"SALU Util\",\n \"Avg 2\": \"&avg_saluUtil\",\n \"Min 2\": \"&min_saluUtil\",\n \"Max 2\": \"&max_saluUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"VALU Util\",\n \"Avg 2\": \"&avg_valuUtil\",\n \"Min 2\": \"&min_valuUtil\",\n \"Max 2\": \"&max_valuUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"VALU Active Threads\",\n \"Avg 2\": \"&avg_unpredthreads_val\",\n \"Min 2\": \"&min_unpredthreads_val\",\n \"Max 2\": \"&max_unpredthreads_val\",\n \"Unit\": \"Threads\"\n },\n {\n \"Metric\": \"MFMA Util\",\n \"Avg 2\": \"&avg_mfmaUtil\",\n \"Min 2\": \"&min_mfmaUtil\",\n \"Max 2\": \"&max_mfmaUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"MFMA Instr Cycles\",\n \"Avg 2\": \"&avg_mfmaInstrCycles\",\n \"Min 2\": \"&min_mfmaInstrCycles\",\n \"Max 2\": \"&max_mfmaInstrCycles\",\n \"Unit\": \"cycles/instr\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Pipeline Stats", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Avg": 1, - "Avg 2": 2, - "Max": 5, - "Max 2": 6, - "Metric": 0, - "Min": 3, - "Min 2": 4, - "Unit": 7 - }, - "renameByName": { - "Avg 2": "Avg (Baseline)", - "Max 2": "Max (Baseline)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 111 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 117 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 135 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 112 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 83 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 118 - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 21 - }, - "id": 96, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_intOps\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n \"min_intOps\":{\"$min\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n \"max_intOps\":{\"$max\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n\n\n \"avg_flops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"min_flops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n\n \"max_flops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n\n\n \"avg_int8Ops\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n \"min_int8Ops\":{\"$min\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n \"max_int8Ops\":{\"$max\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n\n \"avg_int32Ops\":{\"$avg\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n \"min_int32Ops\":{\"$min\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n \"max_int32Ops\":{\"$max\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n\n \"avg_int64Ops\":{\"$avg\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n \"min_int64Ops\":{\"$min\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n \"max_int64Ops\":{\"$max\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n\n \"avg_f16Ops\":{\"$avg\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n \"min_f16Ops\":{\"$min\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n \"max_f16Ops\":{\"$max\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n\n\n\n \"avg_bf16Ops\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n \"min_bf16Ops\":{\"$min\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n \"max_bf16Ops\":{\"$max\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n\n \"avg_f32Ops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n \"min_f32Ops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n \"max_f32Ops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n\n \"avg_f64Ops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"min_f64Ops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"max_f64Ops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"FLOPs (Total)\",\n \"Avg\": \"&avg_flops\",\n \"Min\": \"&min_flops\",\n \"Max\": \"&max_flops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"INT8 OPs\",\n \"Avg\": \"&avg_int8Ops\",\n \"Min\": \"&min_int8Ops\",\n \"Max\": \"&max_int8Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"F16 OPs\",\n \"Avg\": \"&avg_f16Ops\",\n \"Min\": \"&min_f16Ops\",\n \"Max\": \"&max_f16Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"BF16 OPs\",\n \"Avg\": \"&avg_bf16Ops\",\n \"Min\": \"&min_bf16Ops\",\n \"Max\": \"&max_bf16Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n\n {\n \"Metric\": \"F32 OPs\",\n \"Avg\": \"&avg_f32Ops\",\n \"Min\": \"&min_f32Ops\",\n \"Max\": \"&max_f32Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"F64 OPs\",\n \"Avg\": \"&avg_f64Ops\",\n \"Min\": \"&min_f64Ops\",\n \"Max\": \"&max_f64Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_intOps\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n \"min_intOps\":{\"$min\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n \"max_intOps\":{\"$max\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n\n\n \"avg_flops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"min_flops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n\n \"max_flops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n\n\n \"avg_int8Ops\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n \"min_int8Ops\":{\"$min\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n \"max_int8Ops\":{\"$max\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n\n \"avg_int32Ops\":{\"$avg\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n \"min_int32Ops\":{\"$min\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n \"max_int32Ops\":{\"$max\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n\n \"avg_int64Ops\":{\"$avg\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n \"min_int64Ops\":{\"$min\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n \"max_int64Ops\":{\"$max\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n\n \"avg_f16Ops\":{\"$avg\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n \"min_f16Ops\":{\"$min\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n \"max_f16Ops\":{\"$max\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n\n\n\n \"avg_bf16Ops\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n \"min_bf16Ops\":{\"$min\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n \"max_bf16Ops\":{\"$max\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n\n \"avg_f32Ops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n \"min_f32Ops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n \"max_f32Ops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n\n \"avg_f64Ops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"min_f64Ops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"max_f64Ops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"FLOPs (Total)\",\n \"Avg\": \"&avg_flops\",\n \"Min\": \"&min_flops\",\n \"Max\": \"&max_flops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"INT8 OPs\",\n \"Avg\": \"&avg_int8Ops\",\n \"Min\": \"&min_int8Ops\",\n \"Max\": \"&max_int8Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"F16 OPs\",\n \"Avg\": \"&avg_f16Ops\",\n \"Min\": \"&min_f16Ops\",\n \"Max\": \"&max_f16Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"BF16 OPs\",\n \"Avg\": \"&avg_bf16Ops\",\n \"Min\": \"&min_bf16Ops\",\n \"Max\": \"&max_bf16Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n\n {\n \"Metric\": \"F32 OPs\",\n \"Avg\": \"&avg_f32Ops\",\n \"Min\": \"&min_f32Ops\",\n \"Max\": \"&max_f32Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"F64 OPs\",\n \"Avg\": \"&avg_f64Ops\",\n \"Min\": \"&min_f64Ops\",\n \"Max\": \"&max_f64Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Arithmetic Operations", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 1, - "Avg 2": 2, - "Max 1": 5, - "Max 2": 6, - "Metric 1": 0, - "Metric 2": 7, - "Min 1": 3, - "Min 2": 4, - "Unit 1": 9, - "Unit 2": 8 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 21 - }, - "id": 255, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_VMEM", - "target": "${Workload1}.SQ_INST_LEVEL_VMEM.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_vmemLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n },\n \"min_vmemLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n },\n \"max_vmemLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"VMEM Latency\",\n \"Avg\": \"&avg_vmemLat\",\n \"Min\": \"&min_vmemLat\",\n \"Max\": \"&max_vmemLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_SMEM", - "target": "${Workload1}.SQ_INST_LEVEL_SMEM.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_smemLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n },\n \"min_smemLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n },\n \"max_smemLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"SMEM Latency\",\n \"Avg\":\"&avg_smemLat\",\n \"Min\":\"&min_smemLat\",\n \"Max\":\"&max_smemLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_IFETCH_LEVEL", - "target": "${Workload1}.SQ_IFETCH_LEVEL.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_instrFetchLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n },\n \"min_instrFetchLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n },\n \"max_instrFetchLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"Instr Fetch Latency\",\n \"Avg\":\"&avg_instrFetchLat\",\n \"Min\":\"&min_instrFetchLat\",\n \"Max\":\"&max_instrFetchLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_LDS", - "target": "${Workload1}.SQ_INST_LEVEL_LDS.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_ldsLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"min_ldsLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"max_ldsLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"LDS Latency\",\n \"Avg\":\"&avg_ldsLat\",\n \"Min\":\"&min_ldsLat\",\n \"Max\":\"&max_ldsLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_VMEM2", - "target": "${Workload2}.SQ_INST_LEVEL_VMEM.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_vmemLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n },\n \"min_vmemLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n },\n \"max_vmemLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"VMEM Latency\",\n \"Avg 2\": \"&avg_vmemLat\",\n \"Min 2\": \"&min_vmemLat\",\n \"Max 2\": \"&max_vmemLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_SMEM2", - "target": "${Workload2}.SQ_INST_LEVEL_SMEM.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_smemLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n },\n \"min_smemLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n },\n \"max_smemLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"SMEM Latency\",\n \"Avg 2\":\"&avg_smemLat\",\n \"Min 2\":\"&min_smemLat\",\n \"Max 2\":\"&max_smemLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_IFETCH_LEVEL2", - "target": "${Workload2}.SQ_IFETCH_LEVEL.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_instrFetchLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n },\n \"min_instrFetchLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n },\n \"max_instrFetchLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"Instr Fetch Latency\",\n \"Avg 2\":\"&avg_instrFetchLat\",\n \"Min 2\":\"&min_instrFetchLat\",\n \"Max 2\":\"&max_instrFetchLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_LDS2", - "target": "${Workload2}.SQ_INST_LEVEL_LDS.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_ldsLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"min_ldsLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"max_ldsLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"LDS Latency\",\n \"Avg 2\":\"&avg_ldsLat\",\n \"Min 2\":\"&min_ldsLat\",\n \"Max 2\":\"&max_ldsLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - } - ], - "title": "Memory Latencies", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Avg": 1, - "Avg 2": 2, - "Max": 5, - "Max 2": 6, - "Metric": 0, - "Min": 3, - "Min 2": 4, - "Unit": 7 - }, - "renameByName": { - "Avg": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Compute Unit - Compute Pipeline", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 10 - }, - "id": 98, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 11 - }, - "id": 205, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "/.*/", - "values": true - }, - "showUnfilled": true, - "text": { - "titleSize": 14, - "valueSize": 16 - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \n \"bconf_rate\": {\n \"$avg\": {\"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n {\"$multiply\": [\"&SQ_LDS_BANK_CONFLICT\", 3.125]},\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n } \n },\n \n \"bw_pop\": {\n \"$avg\": {\"$divide\": [\n {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]}, \n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]},\n \n {\"$multiply\": [$sclk, $numCU, 0.00128]}\n ]}\n },\n\n \"lds_util\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [ 100, \"&SQ_LDS_IDX_ACTIVE\" ]}, \n {\"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}\n ]}\n },\n\n \"lds_access_rate\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [200, \"&SQ_ACTIVE_INST_LDS\" ]}, \n {\"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}\n ]}\n }\n \n }},\n \n {\"$set\": {\n \"array\": [\n {\n \"Utilization\": \"&lds_util\",\n \"Access Rate\": \"&lds_access_rate\",\n \"Bandwith (Pct-of-Peak)\": \"&bw_pop\",\n \"Bank Conflict Rate\": \"&bconf_rate\"\n }\n \n ]\n }},\n \n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n \n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n \n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Local Data Share)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"bconf_rate\": {\n \"$avg\": {\"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n {\"$multiply\": [\"&SQ_LDS_BANK_CONFLICT\", 3.125]},\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n } \n },\n\n \"bw_pop\": {\n \"$avg\": {\"$divide\": [\n {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks2\"}\n ]}, \n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]},\n \n {\"$multiply\": [$sclk2, $numCU2, 0.00128]}\n ]}\n },\n \"lds_util\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [ 100, \"&SQ_LDS_IDX_ACTIVE\" ]}, \n {\"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}\n ]}\n },\n\n \"lds_access_rate\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [200, \"&SQ_ACTIVE_INST_LDS\" ]}, \n {\"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}\n ]}\n }\n\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Utilization\": \"&lds_util\",\n \"Access Rate\": \"&lds_access_rate\",\n \"Bandwith (Pct-of-Peak)\": \"&bw_pop\",\n \"Bank Conflict Rate\": \"&bconf_rate\"\n }\n\n ]\n }},\n\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n \n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - } - ], - "title": "Speed-of-Light: LDS", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Access Rate 1": 6, - "Access Rate 2": 7, - "Bandwith (Pct-of-Peak) 1": 0, - "Bandwith (Pct-of-Peak) 2": 1, - "Bank Conflict Rate 1": 2, - "Bank Conflict Rate 2": 3, - "Utilization 1": 4, - "Utilization 2": 5 - }, - "renameByName": { - "Access Rate 1": "Access Rate (Current)", - "Access Rate 2": "Access Rate (Baseline)", - "BW (Pct-of-Peak) 1": "BW Pct-of-Peak (Current)", - "BW (Pct-of-Peak) 2": "BW Pct-of-Peak (Baseline)", - "Bandwith (Pct-of-Peak)": "", - "Bandwith (Pct-of-Peak) 1": "BW Pct-of-Peak (Current)", - "Bandwith (Pct-of-Peak) 2": "BW Pct-of-Peak (Baseline) ", - "Bank Conflict Rate 1": "Bank Conflict Rate (Current)", - "Bank Conflict Rate 2": "Bank Conflict Rate (Baseline)", - "Cache Hit 1": "Cache Hit (Current)", - "Cache Hit 2": "Cache Hit (Baseline)", - "Latency (Cycles) 1": "Latency (Current) [Cycles]", - "Latency (Cycles) 2": "Latency (Baseline) [Cycles]", - "Stall 1": "Stall (Current)", - "Stall 2": "Stall (Baseline)", - "Util 1": "Util (Current)", - "Util 2": "Util (Baseline)", - "Utilization 1": "Util (Current)", - "Utilization 2": "Util (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "min": -100000000000000000000, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 114 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 107 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 128 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 115 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 138 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 141 - } - ] - } - ] - }, - "gridPos": { - "h": 12, - "w": 12, - "x": 12, - "y": 11 - }, - "id": 100, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_waveCycles\": {\n \"$avg\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ] }\n },\n \"min_waveCycles\": {\n \"$min\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ] }\n },\n \"max_waveCycles\": {\n \"$max\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ] }\n },\n \n \"avg_ldsInstrs\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \"min_ldsInstrs\": {\n \"$min\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \"max_ldsInstrs\": {\n \"$max\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \n \"avg_indexAccesses\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \"min_indexAccesses\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \"max_indexAccesses\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \n \"avg_atomicCycles\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \"min_atomicCycles\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \"max_atomicCycles\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \n \"avg_bankConflicts\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \"min_bankConflicts\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \"max_bankConflicts\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \n \"avg_addrConflicts\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \"min_addrConflicts\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \"max_addrConflicts\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \n \n \"avg_unalignedStall\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \"min_unalignedStall\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \"max_unalignedStall\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \n \"avg_memViolations\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \"min_memViolations\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \"max_memViolations\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \n \"avg_bconf_per_op\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \"min_bconf_per_op\": {\n \"$min\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \"max_bconf_per_op\": {\n \"$max\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \n \"avg_bw\": {\n \"$avg\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$L2Banks\"}]}, \n \"&denom\"\n ]\n }\n },\n \"min_bw\": {\n \"$min\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$L2Banks\"}]}, \n \"&denom\"\n ]\n }\n },\n \"max_bw\": {\n \"$max\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$L2Banks\"}]}, \n \"&denom\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Wave Cycles\",\n \"avg\": \"&avg_waveCycles\",\n \"min\": \"&min_waveCycles\",\n \"max\": \"&max_waveCycles\",\n \"Unit\": \"Cycles/Wave\"\n },\n {\n \"metric\": \"LDS Instrs\",\n \"avg\": \"&avg_ldsInstrs\",\n \"min\": \"&min_ldsInstrs\",\n \"max\": \"&max_ldsInstrs\",\n \"Unit\":{\"$concat\": [\"Instr \", $normUnit]} \n },\n {\n \"metric\": \"Bandwidth\",\n \"avg\": \"&avg_bw\",\n \"min\": \"&min_bw\",\n \"max\": \"&max_bw\",\n \"Unit\": {\"$concat\": [\"Bytes \", $normUnit]}\n },\n {\n \"metric\": \"Bank Conficts/Access\",\n \"avg\": \"&avg_bconf_per_op\",\n \"min\": \"&min_bconf_per_op\",\n \"max\": \"&max_bconf_per_op\",\n \"Unit\": \"Conflicts/Access\"\n },\n {\n \"metric\": \"Index Accesses\",\n \"avg\": \"&avg_indexAccesses\",\n \"min\": \"&min_indexAccesses\",\n \"max\": \"&max_indexAccesses\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Cycles\",\n \"avg\": \"&avg_atomicCycles\",\n \"min\": \"&min_atomicCycles\",\n \"max\": \"&max_atomicCycles\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Bank Conflict\",\n \"avg\": \"&avg_bankConflicts\",\n \"min\": \"&min_bankConflicts\",\n \"max\": \"&max_bankConflicts\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Addr Conflict\",\n \"avg\": \"&avg_addrConflicts\",\n \"min\": \"&min_addrConflicts\",\n \"max\": \"&max_addrConflicts\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Unaligned Stall\",\n \"avg\": \"&avg_unalignedStall\",\n \"min\": \"&min_unalignedStall\",\n \"max\": \"&max_unalignedStall\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Mem Violations\",\n \"avg\": \"&avg_memViolations\",\n \"min\": \"&min_memViolations\",\n \"max\": \"&max_memViolations\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_INST_LEVEL_LDS\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"avg_ldsLatency\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"min_ldsLatency\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"max_ldsLatency\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"metric\": \"LDS Latency\",\n \"avg\": \"&avg_ldsLatency\",\n \"min\": \"&min_ldsLatency\",\n \"max\": \"&max_ldsLatency\",\n \"Unit\": \"Cycles\"\n }}\n ]\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}}, \n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Local Data Share)\"}}\n \n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_waveCycles\": {\n \"$avg\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ] }\n },\n \"min_waveCycles\": {\n \"$min\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ] }\n },\n \"max_waveCycles\": {\n \"$max\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ] }\n },\n \n \"avg_ldsInstrs\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \"min_ldsInstrs\": {\n \"$min\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \"max_ldsInstrs\": {\n \"$max\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \n \"avg_indexAccesses\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \"min_indexAccesses\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \"max_indexAccesses\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \n \"avg_atomicCycles\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \"min_atomicCycles\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \"max_atomicCycles\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \n \"avg_bankConflicts\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \"min_bankConflicts\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \"max_bankConflicts\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \n \"avg_addrConflicts\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \"min_addrConflicts\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \"max_addrConflicts\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \"avg_unalignedStall\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \"min_unalignedStall\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \"max_unalignedStall\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \n \"avg_memViolations\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \"min_memViolations\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \"max_memViolations\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \n \n \"avg_bconf_per_op\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \"min_bconf_per_op\": {\n \"$min\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \"max_bconf_per_op\": {\n \"$max\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \n \"avg_bw\": {\n \"$avg\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$L2Banks\"}]}, \n \"&denom\"\n ]\n }\n },\n \"min_bw\": {\n \"$min\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$L2Banks\"}]}, \n \"&denom\"\n ]\n }\n },\n \"max_bw\": {\n \"$max\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$L2Banks\"}]}, \n \"&denom\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Wave Cycles\",\n \"avg\": \"&avg_waveCycles\",\n \"min\": \"&min_waveCycles\",\n \"max\": \"&max_waveCycles\",\n \"Unit\": \"Cycles/Wave\"\n },\n {\n \"metric\": \"LDS Instrs\",\n \"avg\": \"&avg_ldsInstrs\",\n \"min\": \"&min_ldsInstrs\",\n \"max\": \"&max_ldsInstrs\",\n \"Unit\":{\"$concat\": [\"Instr \", $normUnit]} \n },\n {\n \"metric\": \"Bandwidth\",\n \"avg\": \"&avg_bw\",\n \"min\": \"&min_bw\",\n \"max\": \"&max_bw\",\n \"Unit\": {\"$concat\": [\"Bytes \", $normUnit]}\n },\n {\n \"metric\": \"Bank Conficts/Access\",\n \"avg\": \"&avg_bconf_per_op\",\n \"min\": \"&min_bconf_per_op\",\n \"max\": \"&max_bconf_per_op\",\n \"Unit\": \"Conflicts/Access\"\n },\n {\n \"metric\": \"Index Accesses\",\n \"avg\": \"&avg_indexAccesses\",\n \"min\": \"&min_indexAccesses\",\n \"max\": \"&max_indexAccesses\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Cycles\",\n \"avg\": \"&avg_atomicCycles\",\n \"min\": \"&min_atomicCycles\",\n \"max\": \"&max_atomicCycles\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Bank Conflict\",\n \"avg\": \"&avg_bankConflicts\",\n \"min\": \"&min_bankConflicts\",\n \"max\": \"&max_bankConflicts\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Addr Conflict\",\n \"avg\": \"&avg_addrConflicts\",\n \"min\": \"&min_addrConflicts\",\n \"max\": \"&max_addrConflicts\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Unaligned Stall\",\n \"avg\": \"&avg_unalignedStall\",\n \"min\": \"&min_unalignedStall\",\n \"max\": \"&max_unalignedStall\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Mem Violations\",\n \"avg\": \"&avg_memViolations\",\n \"min\": \"&min_memViolations\",\n \"max\": \"&max_memViolations\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_INST_LEVEL_LDS\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Local Data Share)\"}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"avg_ldsLatency\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"min_ldsLatency\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"max_ldsLatency\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"metric\": \"LDS Latency\",\n \"avg\": \"&avg_ldsLatency\",\n \"min\": \"&min_ldsLatency\",\n \"max\": \"&max_ldsLatency\",\n \"Unit\": \"Cycles\"\n }}\n ]\n }}\n ]);", - "type": "table" - } - ], - "title": "LDS Stats", - "transformations": [ - { - "id": "concatenate", - "options": { - "frameNameLabel": "frame", - "frameNameMode": "field" - } - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Unit 2": true, - "metric 2": true - }, - "indexByName": { - "Unit 1": 9, - "Unit 2": 8, - "avg 1": 1, - "avg 2": 2, - "max 1": 5, - "max 2": 6, - "metric 1": 0, - "metric 2": 7, - "min 1": 3, - "min 2": 4 - }, - "renameByName": { - "avg 1": "Avg (Current)", - "avg 2": "Avg (Baseline)", - "max 1": "Max (Current)", - "max 2": "Max (Baseline)", - "min 1": "Min (Current)", - "min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Local Data Share (LDS)", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 11 - }, - "id": 44, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 12 - }, - "id": 48, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "/.*/", - "values": true - }, - "showUnfilled": true, - "text": {} - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"reqBW_pop\": {\n \"$avg\": {\n \"$divide\": [\n {\"$multiply\": [\"&SQC_ICACHE_REQ\", 100000]}, \n {\"$multiply\": [ {\"$multiply\": [$sclk, $numSQC]}, {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]} ]}\n ]\n }\n },\n\n \"cacheHit\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQC_ICACHE_HITS\", 100] }, { \"$add\": [ \"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\" ] } ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"Bandwidth\": \"&reqBW_pop\",\n \"Cache Hit\": \"&cacheHit\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Cache)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"reqBW_pop\": {\n \"$avg\": {\n \"$divide\": [\n {\"$multiply\": [\"&SQC_ICACHE_REQ\", 100000]}, \n {\"$multiply\": [ {\"$multiply\": [$sclk2, $numSQC2]}, {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]} ]}\n ]\n }\n },\n\n \"cacheHit\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQC_ICACHE_HITS\", 100] }, { \"$add\": [ \"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] } ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"Bandwidth\": \"&reqBW_pop\",\n \"Cache Hit\": \"&cacheHit\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "Speed-of-Light: Instruction Cache ", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "BW (Pct-of-Peak) 1": 4, - "BW (Pct-of-Peak) 2": 5, - "Cache Hit 1": 6, - "Cache Hit 2": 7, - "Stall 1": 2, - "Stall 2": 3, - "Util 1": 0, - "Util 2": 1 - }, - "renameByName": { - "BW (Pct-of-Peak) 1": "BW Pct-of-Peak (Current)", - "BW (Pct-of-Peak) 2": "BW Pct-of-Peak (Baseline)", - "BW Pct-of-Peak 1": "BW Pct-of-Peak (Current)", - "BW Pct-of-Peak 2": "BW Pct-of-Peak (Baseline)", - "Bandwidth 1": "Bandwidth (Current)", - "Bandwidth 2": "Bandwidth (Baseline)", - "Cache Hit 1": "Cache Hit (Current)", - "Cache Hit 2": "Cache Hit (Baseline)", - "Stall 1": "Stall (Current)", - "Stall 2": "Stall (Baseline)", - "Util 1": "Util (Current)", - "Util 2": "Util (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 12 - }, - "id": 259, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "rawQuery": true, - "refId": "pmc_perf", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_req\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n \"min_req\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n \"max_req\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n\n \"avg_hits\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n \"min_hits\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n \"max_hits\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n\n \"avg_misses\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n \"min_misses\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n \"max_misses\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n\n \"avg_misses_dup\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"min_misses_dup\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"max_misses_dup\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n\n\n \"avg_cacheHit\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n },\n \"min_cacheHit\": {\n \"$min\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n },\n \"max_cacheHit\": {\n \"$max\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean\": \"&avg_req\",\n \"Min\": \"&min_req\",\n \"Max\": \"&max_req\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Hits\",\n \"Mean\": \"&avg_hits\",\n \"Min\": \"&min_hits\",\n \"Max\": \"&max_hits\",\n \"Unit\": {\"$concat\": [\"Hits \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Non Duplicated\",\n \"Mean\": \"&avg_misses\",\n \"Min\": \"&min_misses\",\n \"Max\": \"&max_misses\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Duplicated\",\n \"Mean\": \"&avg_misses_dup\",\n \"Min\": \"&min_misses_dup\",\n \"Max\": \"&max_misses_dup\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n \n {\n \"Metric\": \"Cache Hit\",\n \"Mean\": \"&avg_cacheHit\",\n \"Min\": \"&min_cacheHit\",\n \"Max\": \"&max_cacheHit\",\n \"Unit\": \"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "pmc_perf2", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Cache)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_req\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n \"min_req\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n \"max_req\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n\n \"avg_hits\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n \"min_hits\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n \"max_hits\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n\n \"avg_misses\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n \"min_misses\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n \"max_misses\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n\n \"avg_misses_dup\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"min_misses_dup\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"max_misses_dup\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n\n\n \"avg_cacheHit\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n },\n \"min_cacheHit\": {\n \"$min\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n },\n \"max_cacheHit\": {\n \"$max\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean 2\": \"&avg_req\",\n \"Min 2\": \"&min_req\",\n \"Max 2\": \"&max_req\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Hits\",\n \"Mean 2\": \"&avg_hits\",\n \"Min 2\": \"&min_hits\",\n \"Max 2\": \"&max_hits\",\n \"Unit\": {\"$concat\": [\"Hits \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Non Duplicated\",\n \"Mean 2\": \"&avg_misses\",\n \"Min 2\" : \"&min_misses\",\n \"Max 2\": \"&max_misses\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Duplicated\",\n \"Mean 2\": \"&avg_misses_dup\",\n \"Min 2\": \"&min_misses_dup\",\n \"Max 2\": \"&max_misses_dup\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n {\n \"Metric\": \"Cache Hit\",\n \"Mean 2\": \"&avg_cacheHit\",\n \"Min 2\": \"&min_cacheHit\",\n \"Max 2\": \"&max_cacheHit\",\n \"Unit\": \"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Instruction Cache Accesses", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Max": 5, - "Max 2": 6, - "Mean": 1, - "Mean 2": 2, - "Metric": 0, - "Min": 3, - "Min 2": 4, - "Unit": 7 - }, - "renameByName": { - "L1I Metric": "", - "Max": "Max (Current)", - "Max 2": "Max (Baseline)", - "Mean": "Avg (Current)", - "Mean 2": "Avg (Baseline)", - "Min": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Instruction Cache", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 12 - }, - "id": 203, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "L1K-TC BW - GB/s" - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 13 - }, - "id": 54, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showUnfilled": true, - "text": { - "titleSize": 14, - "valueSize": 16 - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"reqBW_pop\": {\n \"$avg\": {\n \"$divide\": [\n {\"$multiply\": [\"&SQC_DCACHE_REQ\", 100000]}, \n {\"$multiply\": [ {\"$multiply\": [$sclk, $numSQC]}, {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]} ]}\n ]\n }\n },\n \"cacheHit\": {\n \"$avg\": { \n \"$cond\":[\n {\"$ne\": [{ \"$add\": [ \"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0 ]},\n {\"$divide\": [{ \"$multiply\": [\"&SQC_DCACHE_HITS\", 100] }, { \"$add\": [ \"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } ]},\n null\n ]\n }\n }\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Bandwidth\": \"&reqBW_pop\",\n \"Cache Hit\": \"&cacheHit\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "sY628IJnz" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Scalar L1D Cache)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"reqBW_pop\": {\n \"$avg\": {\n \"$divide\": [\n {\"$multiply\": [\"&SQC_DCACHE_REQ\", 100000]}, \n {\"$multiply\": [ {\"$multiply\": [$sclk2, $numSQC2]}, {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]} ]}\n ]\n }\n },\n \"cacheHit\": {\n \"$avg\": { \n \"$cond\":[\n {\"$ne\": [{ \"$add\": [ \"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0 ]},\n {\"$divide\": [{ \"$multiply\": [\"&SQC_DCACHE_HITS\", 100] }, { \"$add\": [ \"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } ]},\n null\n ]\n }\n }\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Bandwidth\": \"&reqBW_pop\",\n \"Cache Hit\": \"&cacheHit\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "Speed-of-Light: Scalar L1D Cache", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "BW Pct-of-Peak 1": 0, - "BW Pct-of-Peak 2": 1, - "Cache Hit 1": 2, - "Cache Hit 2": 3, - "Stall 1": 6, - "Stall 2": 7, - "Util 1": 4, - "Util 2": 5 - }, - "renameByName": { - "BW Pct-of-Peak 1": "BW Pct-of-Peak (Current)", - "BW Pct-of-Peak 2": "BW Pct-of-Peak (Baseline)", - "Bandwidth 1": "Bandwidth (Current)", - "Bandwidth 2": "Bandwidth (Baseline)", - "Cache Hit 1": "Cache Hit (Current)", - "Cache Hit 2": "Cache Hit (Baseline)", - "Stall 1": "Stall (Current)", - "Stall 2": "Stall (Baseline)", - "Util 1": "Util (Current)", - "Util 2": "Util (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [] - }, - "gridPos": { - "h": 14, - "w": 12, - "x": 12, - "y": 13 - }, - "id": 261, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "pmc_perf", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n \"req_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n \"req_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n\n \"hits_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n \"hits_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n \"hits_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n\n \"misses_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_MISSES\", \"&denom\"] }\n },\n \"misses_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_MISSES\", \"&denom\"] }\n },\n \"misses_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_MISSES\", \"&denom\"] }\n },\n\n \"dup_misses_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"dup_misses_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"dup_misses_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n\n\n \"cacheHit_avg\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n \"cacheHit_min\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n \"cacheHit_max\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n\n \"readReq_avg\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n \"readReq_min\": {\n \"$min\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n \"readReq_max\": {\n \"$max\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n\n\n \"atomicReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n \"atomicReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n \"atomicReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n\n \"read1d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n \"read1d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n \"read1d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n\n \"read2d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n \"read2d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n \"read2d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n\n \"read4d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n \"read4d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n \"read4d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n\n \"read8d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n \"read8d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n \"read8d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n\n \"read16d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n },\n \"read16d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n },\n \"read16d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean\": \"&req_avg\",\n \"Min\": \"&req_min\",\n \"Max\": \"&req_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Hits\",\n \"Mean\": \"&hits_avg\",\n \"Min\": \"&hits_min\",\n \"Max\": \"&hits_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Non Duplicated\",\n \"Mean\": \"&misses_avg\",\n \"Min\": \"&misses_min\",\n \"Max\": \"&misses_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Misses- Duplicated\",\n \"Mean\": \"&dup_misses_avg\",\n \"Min\": \"&dup_misses_min\",\n \"Max\": \"&dup_misses_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Cache Hit\",\n \"Mean\": \"&cacheHit_avg\",\n \"Min\": \"&cacheHit_min\",\n \"Max\": \"&cacheHit_max\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"Read Req (Total)\",\n \"Mean\": \"&readReq_avg\",\n \"Min\": \"&readReq_min\",\n \"Max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Atomic Req\",\n \"Mean\": \"&atomicReq_avg\",\n \"Min\": \"&atomicReq_min\",\n \"Max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (1 DWord)\",\n \"Mean\": \"&read1d_avg\",\n \"Min\": \"&read1d_min\",\n \"Max\": \"&read1d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (2 DWord)\",\n \"Mean\": \"&read2d_avg\",\n \"Min\": \"&read2d_min\",\n \"Max\": \"&read2d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (4 DWord)\",\n \"Mean\": \"&read4d_avg\",\n \"Min\": \"&read4d_min\",\n \"Max\": \"&read4d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (8 DWord)\",\n \"Mean\": \"&read8d_avg\",\n \"Min\": \"&read8d_min\",\n \"Max\": \"&read8d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (16 DWord)\",\n \"Mean\": \"&read16d_avg\",\n \"Min\": \"&read16d_min\",\n \"Max\": \"&read16d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "pmc_perf2", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Scalar L1D Cache)\"}}\n }}, \n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n \"req_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n \"req_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n\n \"hits_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n \"hits_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n \"hits_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n\n \"dup_misses_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"dup_misses_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"dup_misses_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n\n\n \"cacheHit_avg\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n \"cacheHit_min\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n \"cacheHit_max\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n\n \"readReq_avg\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n \"readReq_min\": {\n \"$min\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n \"readReq_max\": {\n \"$max\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n\n \"atomicReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n \"atomicReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n \"atomicReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n\n\n \"read1d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n \"read1d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n \"read1d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n\n \"read2d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n \"read2d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n \"read2d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n\n \"read4d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n \"read4d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n \"read4d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n\n \"read8d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n \"read8d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n \"read8d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n\n \"read16d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n },\n \"read16d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n },\n \"read16d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean 2\": \"&req_avg\",\n \"Min 2\": \"&req_min\",\n \"Max 2\": \"&req_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Hits\",\n \"Mean 2\": \"&hits_avg\",\n \"Min 2\": \"&hits_min\",\n \"Max 2\": \"&hits_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Non Duplicated\",\n \"Mean 2\": \"&misses_avg\",\n \"Min 2\": \"&misses_min\",\n \"Max 2\": \"&misses_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Misses- Duplicated\",\n \"Mean 2\": \"&dup_misses_avg\",\n \"Min 2\": \"&dup_misses_min\",\n \"Max 2\": \"&dup_misses_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Cache Hit\",\n \"Mean 2\": \"&cacheHit_avg\",\n \"Min 2\": \"&cacheHit_min\",\n \"Max 2\": \"&cacheHit_max\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"Read Req (Total)\",\n \"Mean 2\": \"&readReq_avg\",\n \"Min 2\": \"&readReq_min\",\n \"Max 2\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Write Req (Total)\",\n \"Mean 2\": \"&writeReq_avg\",\n \"Min 2\": \"&writeReq_min\",\n \"Max 2\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Atomic Req\",\n \"Mean 2\": \"&atomicReq_avg\",\n \"Min 2\": \"&atomicReq_min\",\n \"Max 2\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (1 DWord)\",\n \"Mean 2\": \"&read1d_avg\",\n \"Min 2\": \"&read1d_min\",\n \"Max 2\": \"&read1d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (2 DWord)\",\n \"Mean 2\": \"&read2d_avg\",\n \"Min 2\": \"&read2d_min\",\n \"Max 2\": \"&read2d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (4 DWord)\",\n \"Mean 2\": \"&read4d_avg\",\n \"Min 2\": \"&read4d_min\",\n \"Max 2\": \"&read4d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (8 DWord)\",\n \"Mean 2\": \"&read8d_avg\",\n \"Min 2\": \"&read8d_min\",\n \"Max 2\": \"&read8d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (16 DWord)\",\n \"Mean 2\": \"&read16d_avg\",\n \"Min 2\": \"&read16d_min\",\n \"Max 2\": \"&read16d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Scalar L1D Cache Accesses", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Max": 5, - "Max 2": 6, - "Mean": 1, - "Mean 2": 2, - "Metric": 0, - "Min": 3, - "Min 2": 4, - "Unit": 7 - }, - "renameByName": { - "Max": "Max (Current)", - "Max 2": "Max (Baseline)", - "Mean": "Avg (Current)", - "Mean 2": "Avg (Baseline)", - "Min": "Min (Current)", - "Min 2": "Min (Baseline)", - "Unit": "" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 135 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 105 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 112 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 134 - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 20 - }, - "id": 52, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"readReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n \"readReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n \"readReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n\n \"writeReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n \"writeReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n \"writeReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n\n \"atomicReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n \"atomicReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n \"atomicReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n\n \"tc2l1k_stall_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n },\n \"tc2l1k_stall_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n },\n \"tc2l1k_stall_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Read Req\",\n \"Mean\": \"&readReq_avg\",\n \"Min\": \"&readReq_min\",\n \"Max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Write Req\",\n \"Mean\": \"&writeReq_avg\",\n \"Min\": \"&writeReq_min\",\n \"Max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Atomic Req\",\n \"Mean\": \"&atomicReq_avg\",\n \"Min\": \"&atomicReq_min\",\n \"Max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Stall\",\n \"Mean\": \"&tc2l1k_stall_avg\",\n \"Min\": \"&tc2l1k_stall_min\",\n \"Max\": \"&tc2l1k_stall_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}}, \n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Scalar L1D Cache)\"}}\n }},\n {\"$addFields\": {\n \n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"readReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n \"readReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n \"readReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n\n \"writeReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n \"writeReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n \"writeReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n\n \"atomicReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n \"atomicReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n \"atomicReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n\n \"tc2l1k_stall_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n },\n \"tc2l1k_stall_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n },\n \"tc2l1k_stall_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Read Req\",\n \"Mean\": \"&readReq_avg\",\n \"Min\": \"&readReq_min\",\n \"Max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Write Req\",\n \"Mean\": \"&writeReq_avg\",\n \"Min\": \"&writeReq_min\",\n \"Max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Atomic Req\",\n \"Mean\": \"&atomicReq_avg\",\n \"Min\": \"&atomicReq_min\",\n \"Max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Stall\",\n \"Mean\": \"&tc2l1k_stall_avg\",\n \"Min\": \"&tc2l1k_stall_min\",\n \"Max\": \"&tc2l1k_stall_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - } - ], - "title": "Scalar L1D Cache - L2 Interface", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Max 1": 7, - "Max 2": 8, - "Mean 1": 3, - "Mean 2": 4, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Mean 1": "Avg (Current)", - "Mean 2": "Avg (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Scalar L1 Data Cache", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 13 - }, - "id": 130, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 133 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 112 - } - ] - } - ] - }, - "gridPos": { - "h": 17, - "w": 12, - "x": 0, - "y": 14 - }, - "id": 132, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"taBusy_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}] }},\n \"taBusy_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}] }},\n \"taBusy_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}] }},\n\n \"tc2ta_addrStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"tc2ta_addrStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"tc2ta_addrStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n\n \"tc2ta_dataStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"tc2ta_dataStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"tc2ta_dataStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n\n \"td2ta_addrStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"td2ta_addrStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"td2ta_addrStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n\n \"totalInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n \"totalInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n \"totalInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n\n \"flatInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n \"flatInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n \"flatInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n\n \"flatReadInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatReadInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatReadInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"flatWriteInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatWriteInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatWriteInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"flatAtomicInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatAtomicInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatAtomicInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferReadInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferReadInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferReadInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferWriteInstr_avg\":{\"$avg\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferWriteInstr_min\":{\"$min\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferWriteInstr_max\":{\"$max\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferAtomicInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferAtomicInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferAtomicInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"buffTotal_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n \"buffTotal_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n \"buffTotal_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n\n \"buffCoscaleRead_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleRead_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleRead_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n\n \"buffCoscaleWrite_avg\":{\"$avg\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleWrite_min\":{\"$min\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleWrite_max\":{\"$max\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"TA Busy\",\n \"avg\": \"&taBusy_avg\",\n \"min\": \"&taBusy_min\",\n \"max\": \"&taBusy_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TA Addr Stall\",\n \"avg\": \"&tc2ta_addrStall_avg\",\n \"min\": \"&tc2ta_addrStall_min\",\n \"max\": \"&tc2ta_addrStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TA Data Stall\",\n \"avg\": \"&tc2ta_dataStall_avg\",\n \"min\": \"&tc2ta_dataStall_min\",\n \"max\": \"&tc2ta_dataStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TD2TA Addr Stall\",\n \"avg\": \"&td2ta_addrStall_avg\",\n \"min\": \"&td2ta_addrStall_min\",\n \"max\": \"&td2ta_addrStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Total Instructions\",\n \"avg\": \"&totalInstr_avg\",\n \"min\": \"&totalInstr_min\",\n \"max\": \"&totalInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Instr\",\n \"avg\": \"&flatInstr_avg\",\n \"min\": \"&flatInstr_min\",\n \"max\": \"&flatInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Read Instr\",\n \"avg\": \"&flatReadInstr_avg\",\n \"min\": \"&flatReadInstr_min\",\n \"max\": \"&flatReadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Write Instr\",\n \"avg\": \"&flatWriteInstr_avg\",\n \"min\": \"&flatWriteInstr_min\",\n \"max\": \"&flatWriteInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Atomic Instr\",\n \"avg\": \"&flatAtomicInstr_avg\",\n \"min\": \"&flatAtomicInstr_min\",\n \"max\": \"&flatAtomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Instr\",\n \"avg\": \"&bufferInstr_avg\",\n \"min\": \"&bufferInstr_min\",\n \"max\": \"&bufferInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Read Instr\",\n \"avg\": \"&bufferReadInstr_avg\",\n \"min\": \"&bufferReadInstr_min\",\n \"max\": \"&bufferReadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Write Instr\",\n \"avg\": \"&bufferWriteInstr_avg\",\n \"min\": \"&bufferWriteInstr_min\",\n \"max\": \"&bufferWriteInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Atomic Instr\",\n \"avg\": \"&bufferAtomicInstr_avg\",\n \"min\": \"&bufferAtomicInstr_min\",\n \"max\": \"&bufferAtomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Total Cylces\",\n \"avg\": \"&buffTotal_avg\",\n \"min\": \"&buffTotal_min\",\n \"max\": \"&buffTotal_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Coalesced Read\",\n \"avg\": \"&buffCoscaleRead_avg\",\n \"min\": \"&buffCoscaleRead_min\",\n \"max\": \"&buffCoscaleRead_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Coalesced Write\",\n \"avg\": \"&buffCoscaleWrite_avg\",\n \"min\": \"&buffCoscaleWrite_min\",\n \"max\": \"&buffCoscaleWrite_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Texture Addr and Data)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"taBusy_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}] }},\n \"taBusy_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}] }},\n \"taBusy_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}] }},\n\n \"tc2ta_addrStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"tc2ta_addrStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"tc2ta_addrStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n\n \"tc2ta_dataStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"tc2ta_dataStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"tc2ta_dataStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n\n \"td2ta_addrStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"td2ta_addrStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"td2ta_addrStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n\n \"totalInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n \"totalInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n \"totalInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n\n \"flatInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n \"flatInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n \"flatInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n\n \"flatReadInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatReadInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatReadInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"flatWriteInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatWriteInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatWriteInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"flatAtomicInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatAtomicInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatAtomicInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferReadInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferReadInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferReadInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferWriteInstr_avg\":{\"$avg\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferWriteInstr_min\":{\"$min\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferWriteInstr_max\":{\"$max\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferAtomicInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferAtomicInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferAtomicInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"buffTotal_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n \"buffTotal_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n \"buffTotal_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n\n \"buffCoscaleRead_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleRead_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleRead_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n\n \"buffCoscaleWrite_avg\":{\"$avg\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleWrite_min\":{\"$min\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleWrite_max\":{\"$max\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"TA Busy\",\n \"avg\": \"&taBusy_avg\",\n \"min\": \"&taBusy_min\",\n \"max\": \"&taBusy_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TA Addr Stall\",\n \"avg\": \"&tc2ta_addrStall_avg\",\n \"min\": \"&tc2ta_addrStall_min\",\n \"max\": \"&tc2ta_addrStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TA Data Stall\",\n \"avg\": \"&tc2ta_dataStall_avg\",\n \"min\": \"&tc2ta_dataStall_min\",\n \"max\": \"&tc2ta_dataStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TD2TA Addr Stall\",\n \"avg\": \"&td2ta_addrStall_avg\",\n \"min\": \"&td2ta_addrStall_min\",\n \"max\": \"&td2ta_addrStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Total Instructions\",\n \"avg\": \"&totalInstr_avg\",\n \"min\": \"&totalInstr_min\",\n \"max\": \"&totalInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Instr\",\n \"avg\": \"&flatInstr_avg\",\n \"min\": \"&flatInstr_min\",\n \"max\": \"&flatInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Read Instr\",\n \"avg\": \"&flatReadInstr_avg\",\n \"min\": \"&flatReadInstr_min\",\n \"max\": \"&flatReadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Write Instr\",\n \"avg\": \"&flatWriteInstr_avg\",\n \"min\": \"&flatWriteInstr_min\",\n \"max\": \"&flatWriteInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Atomic Instr\",\n \"avg\": \"&flatAtomicInstr_avg\",\n \"min\": \"&flatAtomicInstr_min\",\n \"max\": \"&flatAtomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Instr\",\n \"avg\": \"&bufferInstr_avg\",\n \"min\": \"&bufferInstr_min\",\n \"max\": \"&bufferInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Read Instr\",\n \"avg\": \"&bufferReadInstr_avg\",\n \"min\": \"&bufferReadInstr_min\",\n \"max\": \"&bufferReadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Write Instr\",\n \"avg\": \"&bufferWriteInstr_avg\",\n \"min\": \"&bufferWriteInstr_min\",\n \"max\": \"&bufferWriteInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Atomic Instr\",\n \"avg\": \"&bufferAtomicInstr_avg\",\n \"min\": \"&bufferAtomicInstr_min\",\n \"max\": \"&bufferAtomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Total Cylces\",\n \"avg\": \"&buffTotal_avg\",\n \"min\": \"&buffTotal_min\",\n \"max\": \"&buffTotal_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Coalesced Read\",\n \"avg\": \"&buffCoscaleRead_avg\",\n \"min\": \"&buffCoscaleRead_min\",\n \"max\": \"&buffCoscaleRead_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Coalesced Write\",\n \"avg\": \"&buffCoscaleWrite_avg\",\n \"min\": \"&buffCoscaleWrite_min\",\n \"max\": \"&buffCoscaleWrite_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "TA", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Unit 2": true, - "metric 2": true - }, - "indexByName": { - "Unit 1": 9, - "Unit 2": 2, - "avg 1": 3, - "avg 2": 4, - "max 1": 7, - "max 2": 8, - "metric 1": 0, - "metric 2": 1, - "min 1": 5, - "min 2": 6 - }, - "renameByName": { - "avg 1": "Avg (Current)", - "avg 2": "Avg (Baseline)", - "max 1": "Max (Current)", - "max 2": "Max (Baseline)", - "min 1": "Min (Current)", - "min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 124 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 120 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 135 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 130 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 108 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 136 - } - ] - } - ] - }, - "gridPos": { - "h": 17, - "w": 12, - "x": 12, - "y": 14 - }, - "id": 134, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"tdBusy_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}] }},\n \"tdBusy_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}] }},\n \"tdBusy_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}] }},\n\n \"tc2tdStall_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"tc2tdStall_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"tc2tdStall_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n\n \"spi2td_stall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"spi2td_stall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"spi2td_stall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n\n \"coscaleInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n \"coscaleInstr_min\":{\"$min\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n \"coscaleInstr_max\":{\"$max\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n\n \"loadInstr_avg\":{\"$avg\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n \"loadInstr_min\":{\"$min\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n \"loadInstr_max\":{\"$max\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n\n \"storeInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n \"storeInstr_min\":{\"$min\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n \"storeInstr_max\":{\"$max\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n\n \"atomicInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}},\n \"atomicInstr_min\":{\"$min\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}},\n \"atomicInstr_max\":{\"$max\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"TD Busy\",\n \"avg\": \"&tdBusy_avg\",\n \"min\": \"&tdBusy_min\",\n \"max\": \"&tdBusy_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TD Stall\",\n \"avg\": \"&tc2tdStall_avg\",\n \"min\": \"&tc2tdStall_min\",\n \"max\": \"&tc2tdStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"SPI2TD Stall\",\n \"avg\": \"&spi2td_stall_avg\",\n \"min\": \"&spi2td_stall_min\",\n \"max\": \"&spi2td_stall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Coalescable Instr\",\n \"avg\": \"&coscaleInstr_avg\",\n \"min\": \"&coscaleInstr_min\",\n \"max\": \"&coscaleInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Load Instr\",\n \"avg\": \"&loadInstr_avg\",\n \"min\": \"&loadInstr_min\",\n \"max\": \"&loadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Store Instr\",\n \"avg\": \"&storeInstr_avg\",\n \"min\": \"&storeInstr_min\",\n \"max\": \"&storeInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Instr\",\n \"avg\": \"&atomicInstr_avg\",\n \"min\": \"&atomicInstr_min\",\n \"max\": \"&atomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Texture Addr and Data)\"}}\n }},\n {\"$addFields\": {\n \n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"tdBusy_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}] }},\n \"tdBusy_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}] }},\n \"tdBusy_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}] }},\n\n \"tc2tdStall_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"tc2tdStall_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"tc2tdStall_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n\n \"spi2td_stall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"spi2td_stall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"spi2td_stall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n\n \"coscaleInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n \"coscaleInstr_min\":{\"$min\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n \"coscaleInstr_max\":{\"$max\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n\n \"loadInstr_avg\":{\"$avg\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n \"loadInstr_min\":{\"$min\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n \"loadInstr_max\":{\"$max\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n\n \"storeInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n \"storeInstr_min\":{\"$min\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n \"storeInstr_max\":{\"$max\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n\n \"atomicInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}},\n \"atomicInstr_min\":{\"$min\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}},\n \"atomicInstr_max\":{\"$max\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"TD Busy\",\n \"avg\": \"&tdBusy_avg\",\n \"min\": \"&tdBusy_min\",\n \"max\": \"&tdBusy_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TD Stall\",\n \"avg\": \"&tc2tdStall_avg\",\n \"min\": \"&tc2tdStall_min\",\n \"max\": \"&tc2tdStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"SPI2TD Stall\",\n \"avg\": \"&spi2td_stall_avg\",\n \"min\": \"&spi2td_stall_min\",\n \"max\": \"&spi2td_stall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Coalescable Instr\",\n \"avg\": \"&coscaleInstr_avg\",\n \"min\": \"&coscaleInstr_min\",\n \"max\": \"&coscaleInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Load Instr\",\n \"avg\": \"&loadInstr_avg\",\n \"min\": \"&loadInstr_min\",\n \"max\": \"&loadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Store Instr\",\n \"avg\": \"&storeInstr_avg\",\n \"min\": \"&storeInstr_min\",\n \"max\": \"&storeInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Instr\",\n \"avg\": \"&atomicInstr_avg\",\n \"min\": \"&atomicInstr_min\",\n \"max\": \"&atomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "TD", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Unit 2": true, - "metric 2": true - }, - "indexByName": { - "Unit 1": 9, - "Unit 2": 2, - "avg 1": 3, - "avg 2": 4, - "max 1": 7, - "max 2": 8, - "metric 1": 0, - "metric 2": 1, - "min 1": 5, - "min 2": 6 - }, - "renameByName": { - "avg 1": "Avg (Current)", - "avg 2": "Avg (Baseline)", - "max 1": "Max (Current)", - "max 2": "Max (Baseline)", - "min 1": "Min (Current)", - "min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Texture Addresser and Texture Data (TA/TD)", - "type": "row" - }, - { - "collapsed": false, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 14 - }, - "id": 112, - "panels": [], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Vector L1 Data Cache", - "type": "row" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 13, - "w": 12, - "x": 0, - "y": 15 - }, - "id": 165, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showUnfilled": true, - "text": {} - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"bufferCoalescing_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_TOTAL_ACCESSES_sum\", 0] },\n { \"$divide\": [{\"$multiply\": [\"&TA_TOTAL_WAVEFRONTS_sum\", 64, 100]}, {\"$multiply\": [\"&TCP_TOTAL_ACCESSES_sum\", 4]}] },\n null\n ]\n }\n },\n \"cacheUtil_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0] },\n { \"$divide\": [{\"$multiply\": [\"&TCP_GATE_EN2_sum\", 100]}, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }\n },\n \n \"cacheBW_pct\": {\n \"$avg\": { \"$divide\": [ {\"$multiply\":[64, \"&TCP_TOTAL_CACHE_ACCESSES_sum\"]}, \n {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]} \n ] \n }\n },\n \"cacheHit_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0] },\n { \"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]\n }] \n },\n null\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Buffer Coalescing\": \"&bufferCoalescing_pct\",\n \"Cache Util\": \"&cacheUtil_pct\",\n \"Cache BW\": { \"$divide\": [{ \"$multiply\": [100, \"&cacheBW_pct\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numCU]}] },\n \"Cache Hit\": \"&cacheHit_pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Vector L1D Cache)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"bufferCoalescing_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_TOTAL_ACCESSES_sum\", 0] },\n { \"$divide\": [{\"$multiply\": [\"&TA_TOTAL_WAVEFRONTS_sum\", 64, 100]}, {\"$multiply\": [\"&TCP_TOTAL_ACCESSES_sum\", 4]}] },\n null\n ]\n }\n },\n \"cacheUtil_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0] },\n { \"$divide\": [{\"$multiply\": [\"&TCP_GATE_EN2_sum\", 100]}, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }\n },\n \"cacheBW_pct\": {\n \"$avg\": { \"$divide\": [ {\"$multiply\":[64, \"&TCP_TOTAL_CACHE_ACCESSES_sum\"]}, \n {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]} \n ] \n }\n },\n \"cacheHit_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0] },\n { \"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]\n }] \n },\n null\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Buffer Coalescing\": \"&bufferCoalescing_pct\",\n \"Cache Util\": \"&cacheUtil_pct\",\n \"Cache BW\": { \"$divide\": [{ \"$multiply\": [100, \"&cacheBW_pct\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numCU2]}] },\n \"Cache Hit\": \"&cacheHit_pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Speed-of-Light: Vector L1D Cache", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "128B Read Combining 1": 6, - "128B Read Combining 2": 7, - "Buffer Coalescing 1": 0, - "Buffer Coalescing 2": 1, - "Cache BW 1": 2, - "Cache BW 2": 3, - "Cache Hit 1": 4, - "Cache Hit 2": 5 - }, - "renameByName": { - "128B Read Combining 1": "128B Read Combining (Current)", - "128B Read Combining 2": "128B Read Combining(Baseline)", - "Buffer Coalescing 1": "Buf Coalescing (Current)", - "Buffer Coalescing 2": "Buf Coalescing (Baseline)", - "Cache BW 1": "Cache BW (Current)", - "Cache BW 2": "Cache BW (Baseline)", - "Cache Hit 1": "Cache Hit (Current)", - "Cache Hit 2": "Cache Hit (Baseline)", - "Cache Util 1": "Cache Util (Current)", - "Cache Util 2": "Cache Util (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "color-background" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "transparent", - "value": null - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percent" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 52 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 199 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 121 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 144 - } - ] - } - ] - }, - "gridPos": { - "h": 13, - "w": 12, - "x": 12, - "y": 15 - }, - "id": 116, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"l2Pending_avg\": {\"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"l2Pending_min\": {\"$min\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"l2Pending_max\": {\"$max\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n\n\n \"tcr2tcp_Stall_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"tcr2tcp_Stall_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"tcr2tcp_Stall_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \n \"readTagRam_Stall_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \"readTagRam_Stall_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \"readTagRam_Stall_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \n \"writeTagRam_Stall_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"writeTagRam_Stall_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"writeTagRam_Stall_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \n \n \"atomicTagRam_Stall_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }}, \n \"atomicTagRam_Stall_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }}, \n \"atomicTagRam_Stall_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }} \n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Stalled on L2 Data\",\n \"Mean\": \"&l2Pending_avg\",\n \"Min\": \"&l2Pending_min\",\n \"Max\": \"&l2Pending_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Stalled on L2 Req\",\n \"Mean\": \"&tcr2tcp_Stall_avg\",\n \"Min\":\"&tcr2tcp_Stall_min\",\n \"Max\":\"&tcr2tcp_Stall_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Tag RAM Stall (Read)\",\n \"Mean\": \"&readTagRam_Stall_avg\",\n \"Min\": \"&readTagRam_Stall_min\",\n \"Max\": \"&readTagRam_Stall_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Tag RAM Stall (Write)\",\n \"Mean\": \"&writeTagRam_Stall_avg\",\n \"Min\": \"&writeTagRam_Stall_min\",\n \"Max\": \"&writeTagRam_Stall_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Tag RAM Stall (Atomic)\",\n \"Mean\": \"&atomicTagRam_Stall_avg\",\n \"Min\": \"&atomicTagRam_Stall_min\",\n \"Max\": \"&atomicTagRam_Stall_max\",\n \"unit\":\"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Vector L1D Cache)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"l2Pending_avg\": {\"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"l2Pending_min\": {\"$min\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"l2Pending_max\": {\"$max\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n\n \"tcr2tcp_Stall_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"tcr2tcp_Stall_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"tcr2tcp_Stall_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \n \"readTagRam_Stall_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \"readTagRam_Stall_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \"readTagRam_Stall_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \n \"writeTagRam_Stall_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"writeTagRam_Stall_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"writeTagRam_Stall_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \n \n \"atomicTagRam_Stall_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }}, \n \"atomicTagRam_Stall_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }}, \n \"atomicTagRam_Stall_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }} \n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Stalled on L2 Data\",\n \"Mean\": \"&l2Pending_avg\",\n \"Min\": \"&l2Pending_min\",\n \"Max\": \"&l2Pending_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Stalled on L2 Req\",\n \"Mean\": \"&tcr2tcp_Stall_avg\",\n \"Min\":\"&tcr2tcp_Stall_min\",\n \"Max\":\"&tcr2tcp_Stall_max\",\n \"unit\":\"pct\"\n },\n\n {\n \"Metric\": \"Tag RAM Stall (Read)\",\n \"Mean\": \"&readTagRam_Stall_avg\",\n \"Min\": \"&readTagRam_Stall_min\",\n \"Max\": \"&readTagRam_Stall_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Tag RAM Stall (Write)\",\n \"Mean\": \"&writeTagRam_Stall_avg\",\n \"Min\": \"&writeTagRam_Stall_min\",\n \"Max\": \"&writeTagRam_Stall_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Tag RAM Stall (Atomic)\",\n \"Mean\": \"&atomicTagRam_Stall_avg\",\n \"Min\": \"&atomicTagRam_Stall_min\",\n \"Max\": \"&atomicTagRam_Stall_max\",\n \"unit\":\"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Vector L1D Cache Stalls", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Units 2": true, - "unit 2": true - }, - "indexByName": { - "Max 1": 6, - "Max 2": 7, - "Mean 1": 2, - "Mean 2": 3, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 4, - "Min 2": 5, - "unit 1": 9, - "unit 2": 8 - }, - "renameByName": { - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Mean 1": "Avg (Current)", - "Mean 2": "Avg (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)", - "unit 1": "Unit" - } - } - } - ], - "type": "table" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 116 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 78 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 139 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 50 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "max" - }, - "properties": [ - { - "id": "custom.width", - "value": 148 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 127 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 111 - } - ] - } - ] - }, - "gridPos": { - "h": 18, - "w": 12, - "x": 0, - "y": 28 - }, - "id": 128, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n\n \"totalReq_avg\":{\"$avg\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n \"totalReq_min\":{\"$min\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n \"totalReq_max\":{\"$max\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n\n \"readReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n \"readReq_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n \"readReq_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n\n \"writeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n\n \"atomicReq_avg\":{\"$avg\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n \"atomicReq_min\":{\"$min\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n \"atomicReq_max\":{\"$max\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n\n \"cacheBW_avg\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }},\n \"cacheBW_min\":{\"$min\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }},\n \"cacheBW_max\":{\"$max\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }},\n \n \"cacheAccess_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n \"cacheAccess_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n \"cacheAccess_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n\n \"cacheHits_avg\":{\"$avg\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \"cacheHits_min\":{\"$min\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \"cacheHits_max\":{\"$max\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \n \"cacheHitRate_avg\":{\"$avg\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n \"cacheHitRate_min\":{\"$min\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n \"cacheHitRate_max\":{\"$max\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n \n \"l2_l1_read_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n \"l2_l1_read_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n \"l2_l1_read_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n\n \"l2_l1_write_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n \"l2_l1_write_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n \"l2_l1_write_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n\n\n \"l2_l1_atomic_avg\":{\"$avg\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n \"l2_l1_atomic_min\":{\"$min\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n \"l2_l1_atomic_max\":{\"$max\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n\n \"l2_l1_bw_avg\":{\"$avg\": {\"$divide\": [{\"$multiply\": [64, {\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] } ]}, \"&denom\" ]}},\n \"l2_l1_bw_min\":{\"$min\": {\"$divide\": [{\"$multiply\": [64, {\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] } ]}, \"&denom\" ]}},\n \"l2_l1_bw_max\":{\"$max\": {\"$divide\": [{\"$multiply\": [64, {\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] } ]}, \"&denom\" ]}},\n\n \"invalidate_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n \"invalidate_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n \"invalidate_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n\n\n \"l1Latency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n \"l1Latency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n \"l1Latency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n\n\n \"l2ReadLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n \"l2ReadLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n \"l2ReadLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n\n \"l2WriteLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }},\n \"l2WriteLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }},\n \"l2WriteLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }}\n\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Total Req\",\n \"avg\": \"&totalReq_avg\",\n \"min\": \"&totalReq_min\",\n \"max\": \"&totalReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Read Req\",\n \"avg\": \"&readReq_avg\",\n \"min\": \"&readReq_min\",\n \"max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Write Req\",\n \"avg\": \"&writeReq_avg\",\n \"min\": \"&writeReq_min\",\n \"max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Req\",\n \"avg\": \"&l2_l1_atomic_avg\",\n \"min\": \"&l2_l1_atomic_min\",\n \"max\": \"&l2_l1_atomic_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache BW\",\n \"avg\": \"&cacheBW_avg\",\n \"min\": \"&cacheBW_min\",\n \"max\": \"&cacheBW_max\",\n \"Unit\": \"GB/s\"\n },\n {\n \"metric\": \"Cache Accesses\",\n \"avg\": \"&cacheAccess_avg\",\n \"min\": \"&cacheAccess_min\",\n \"max\": \"&cacheAccess_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hits\",\n \"avg\": \"&cacheHits_avg\",\n \"min\": \"&cacheHits_min\",\n \"max\": \"&cacheHits_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hit Rate\",\n \"avg\": \"&cacheHitRate_avg\",\n \"min\": \"&cacheHitRate_min\",\n \"max\": \"&cacheHitRate_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Invalidate\",\n \"avg\": \"&invalidate_avg\",\n \"min\": \"&invalidate_min\",\n \"max\": \"&invalidate_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 BW\",\n \"avg\": \"&l2_l1_bw_avg\",\n \"min\": \"&l2_l1_bw_avg\",\n \"max\": \"&l2_l1_bw_avg\",\n \"Unit\": {\"$concat\": [\"Bytes \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Read\",\n \"avg\": \"&l2_l1_read_avg\",\n \"min\": \"&l2_l1_read_min\",\n \"max\": \"&l2_l1_read_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Write\",\n \"avg\": \"&l2_l1_write_avg\",\n \"min\": \"&l2_l1_write_min\",\n \"max\": \"&l2_l1_write_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Atomic\",\n \"avg\": \"&l2_l1_atomic_avg\",\n \"min\": \"&l2_l1_atomic_min\",\n \"max\": \"&l2_l1_atomic_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1 Access Latency\",\n \"avg\": \"&l1Latency_avg\",\n \"min\": \"&l1Latency_min\",\n \"max\": \"&l1Latency_max\",\n \"Unit\": \"Cycles\"\n },\n {\n \"metric\": \"L1-L2 Read Latency\",\n \"avg\": \"&l2ReadLatency_avg\",\n \"min\": \"&l2ReadLatency_min\",\n \"max\": \"&l2ReadLatency_max\",\n \"Unit\": \"Cycles\"\n },\n {\n \"metric\": \"L1-L2 Write Latency\",\n \"avg\": \"&l2WriteLatency_avg\",\n \"min\": \"&l2WriteLatency_min\",\n \"max\": \"&l2WriteLatency_max\",\n \"Unit\": \"Cycles\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Vector L1D Cache)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n\n \"totalReq_avg\":{\"$avg\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n \"totalReq_min\":{\"$min\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n \"totalReq_max\":{\"$max\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n\n \"readReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n \"readReq_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n \"readReq_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n\n \"writeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n\n \"atomicReq_avg\":{\"$avg\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n \"atomicReq_min\":{\"$min\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n \"atomicReq_max\":{\"$max\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n\n \"cacheBW_avg\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }},\n \"cacheBW_min\":{\"$min\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }},\n \"cacheBW_max\":{\"$max\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }},\n \n \"cacheAccess_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n \"cacheAccess_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n \"cacheAccess_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n\n \"cacheHits_avg\":{\"$avg\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \"cacheHits_min\":{\"$min\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \"cacheHits_max\":{\"$max\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \n \"cacheHitRate_avg\":{\"$avg\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n \"cacheHitRate_min\":{\"$min\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n \"cacheHitRate_max\":{\"$max\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n\n \"l2_l1_read_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n \"l2_l1_read_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n \"l2_l1_read_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n\n \"l2_l1_write_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n \"l2_l1_write_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n \"l2_l1_write_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n\n\n \"l2_l1_atomic_avg\":{\"$avg\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n \"l2_l1_atomic_min\":{\"$min\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n \"l2_l1_atomic_max\":{\"$max\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n\n \"l2_l1_bw_avg\":{\"$avg\": {\"$divide\": [{\"$multiply\": [64, {\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] } ]}, \"&denom\" ]}},\n \"l2_l1_bw_min\":{\"$min\": {\"$divide\": [{\"$multiply\": [64, {\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] } ]}, \"&denom\" ]}},\n \"l2_l1_bw_max\":{\"$max\": {\"$divide\": [{\"$multiply\": [64, {\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] } ]}, \"&denom\" ]}},\n\n \"invalidate_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n \"invalidate_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n \"invalidate_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n\n\n \"l1Latency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n \"l1Latency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n \"l1Latency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n\n\n \"l2ReadLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n \"l2ReadLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n \"l2ReadLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n\n \"l2WriteLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }},\n \"l2WriteLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }},\n \"l2WriteLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Total Req\",\n \"avg\": \"&totalReq_avg\",\n \"min\": \"&totalReq_min\",\n \"max\": \"&totalReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Read Req\",\n \"avg\": \"&readReq_avg\",\n \"min\": \"&readReq_min\",\n \"max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Write Req\",\n \"avg\": \"&writeReq_avg\",\n \"min\": \"&writeReq_min\",\n \"max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Req\",\n \"avg\": \"&atomicReq_avg\",\n \"min\": \"&atomicReq_min\",\n \"max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache BW\",\n \"avg\": \"&cacheBW_avg\",\n \"min\": \"&cacheBW_min\",\n \"max\": \"&cacheBW_max\",\n \"Unit\": \"GB/s\"\n },\n {\n \"metric\": \"Cache Accesses\",\n \"avg\": \"&cacheAccess_avg\",\n \"min\": \"&cacheAccess_min\",\n \"max\": \"&cacheAccess_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hits\",\n \"avg\": \"&cacheHits_avg\",\n \"min\": \"&cacheHits_min\",\n \"max\": \"&cacheHits_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hit Rate\",\n \"avg\": \"&cacheHitRate_avg\",\n \"min\": \"&cacheHitRate_min\",\n \"max\": \"&cacheHitRate_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Invalidate\",\n \"avg\": \"&invalidate_avg\",\n \"min\": \"&invalidate_min\",\n \"max\": \"&invalidate_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 BW\",\n \"avg\": \"&l2_l1_bw_avg\",\n \"min\": \"&l2_l1_bw_avg\",\n \"max\": \"&l2_l1_bw_avg\",\n \"Unit\": {\"$concat\": [\"Bytes \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Read\",\n \"avg\": \"&l2_l1_read_avg\",\n \"min\": \"&l2_l1_read_min\",\n \"max\": \"&l2_l1_read_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Write\",\n \"avg\": \"&l2_l1_write_avg\",\n \"min\": \"&l2_l1_write_min\",\n \"max\": \"&l2_l1_write_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Atomic\",\n \"avg\": \"&l2_l1_atomic_avg\",\n \"min\": \"&l2_l1_atomic_min\",\n \"max\": \"&l2_l1_atomic_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1 Access Latency\",\n \"avg\": \"&l1Latency_avg\",\n \"min\": \"&l1Latency_min\",\n \"max\": \"&l1Latency_max\",\n \"Unit\": \"Cycles\"\n },\n {\n \"metric\": \"L1-L2 Read Latency\",\n \"avg\": \"&l2ReadLatency_avg\",\n \"min\": \"&l2ReadLatency_min\",\n \"max\": \"&l2ReadLatency_max\",\n \"Unit\": \"Cycles\"\n },\n {\n \"metric\": \"L1-L2 Write Latency\",\n \"avg\": \"&l2WriteLatency_avg\",\n \"min\": \"&l2WriteLatency_min\",\n \"max\": \"&l2WriteLatency_max\",\n \"Unit\": \"Cycles\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Vector L1D Cache Accesses", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Unit 2": true, - "metric 2": true - }, - "indexByName": { - "Unit 1": 9, - "Unit 2": 8, - "avg 1": 1, - "avg 2": 2, - "max 1": 5, - "max 2": 6, - "metric 1": 0, - "metric 2": 7, - "min 1": 3, - "min 2": 4 - }, - "renameByName": { - "avg 1": "Avg (Current)", - "avg 2": "Avg (Baseline)", - "max 1": "Max (Current)", - "max 2": "Max (Baseline)", - "min 1": "Min (Current)", - "min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "Aggregate": "last", - "BarPadding": 30, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupColName": "Coherency", - "GroupCols": 2, - "GroupGap": 5, - "GroupLabelColor": "#FF9830", - "GroupLabelFontSize": "100%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 0, - "Horizontal": true, - "LabelColName": "Xfer", - "LabelColor": "#ffffff", - "LabelFontSize": "100%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 0, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#FADE2A", - "ValueDecimals": 0, - "ValueFontSize": "100%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:172", - "Col": 2, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Mean", - "Selected": true - } - ], - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 28 - }, - "id": 120, - "pluginVersion": "8.2.1", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "tlh8EwUnk" - }, - "rawQuery": true, - "refId": "A", - "target": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n\n \"readNC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_NC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readNC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_NC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readNC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_NC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readUC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_UC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readUC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_UC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readUC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_UC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readCC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_CC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readCC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_CC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readCC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_CC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readRW_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_RW_READ_REQ_sum\", \"&denom\"] }\n },\n \"readRW_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_RW_READ_REQ_sum\", \"&denom\"] }\n },\n \"readRW_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_RW_READ_REQ_sum\", \"&denom\"] }\n },\n \n \"writeNC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_NC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeNC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_NC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeNC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_NC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeUC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_UC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeUC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_UC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeUC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_UC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeCC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_CC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeCC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_CC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeCC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_CC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeRW_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_RW_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeRW_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_RW_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeRW_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_RW_WRITE_REQ_sum\", \"&denom\"] }\n },\n \n \"atomicNC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_NC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicNC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_NC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicNC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_NC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicUC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_UC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicUC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_UC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicUC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_UC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicCC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_CC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicCC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_CC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicCC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_CC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicRW_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_RW_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicRW_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_RW_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicRW_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_RW_ATOMIC_REQ_sum\", \"&denom\"] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Xfer\": \"Read\",\n \"Coherency\": \"NC\",\n \"Mean\": \"&readNC_avg\",\n \"Min\": \"&readNC_min\",\n \"Max\": \"&readNC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Read\",\n \"Coherency\": \"UC\",\n \"Mean\": \"&readUC_avg\",\n \"Min\": \"&readUC_min\",\n \"Max\": \"&readUC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Read\",\n \"Coherency\": \"CC\",\n \"Mean\": \"&readCC_avg\",\n \"Min\": \"&readCC_min\",\n \"Max\": \"&readCC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Read\",\n \"Coherency\": \"RW\",\n \"Mean\": \"&readRW_avg\",\n \"Min\": \"&readRW_min\",\n \"Max\": \"&readRW_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Write\",\n \"Coherency\": \"RW\",\n \"Mean\": \"&writeRW_avg\",\n \"Min\": \"&writeRW_min\",\n \"Max\": \"&writeRW_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Write\",\n \"Coherency\": \"NC\",\n \"Mean\": \"&writeNC_avg\",\n \"Min\": \"&writeNC_min\",\n \"Max\": \"&writeNC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Write\",\n \"Coherency\": \"UC\",\n \"Mean\": \"&writeUC_avg\",\n \"Min\": \"&writeUC_min\",\n \"Max\": \"&writeUC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Write\",\n \"Coherency\": \"CC\",\n \"Mean\": \"&writeCC_avg\",\n \"Min\": \"&writeCC_min\",\n \"Max\": \"&writeCC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n\n {\n \"Xfer\": \"Atomic\",\n \"Coherency\": \"NC\",\n \"Mean\": \"&atomicNC_avg\",\n \"Min\": \"&atomicNC_min\",\n \"Max\": \"&atomicNC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Atomic\",\n \"Coherency\": \"UC\",\n \"Mean\": \"&atomicUC_avg\",\n \"Min\": \"&atomicUC_min\",\n \"Max\": \"&atomicUC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Atomic\",\n \"Coherency\": \"CC\",\n \"Mean\": \"&atomicCC_avg\",\n \"Min\": \"&atomicCC_min\",\n \"Max\": \"&atomicCC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Atomic\",\n \"Coherency\": \"RW\",\n \"Mean\": \"&atomicRW_avg\",\n \"Min\": \"&atomicRW_min\",\n \"Max\": \"&atomicRW_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Vector L1D - L2 Transactions Req $normUnit", - "transparent": true, - "type": "michaeldmoore-multistat-panel" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Units" - }, - "properties": [ - { - "id": "custom.width", - "value": 75 - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 36 - }, - "id": 124, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\":{\"$avg\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n \"req_min\":{\"$min\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n \"req_max\":{\"$max\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n\n\n \"hitRatio_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n \"hitRatio_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n \"hitRatio_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n\n \"hits_avg\":{\"$avg\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n \"hits_min\":{\"$min\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n \"hits_max\":{\"$max\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n\n \"missesTrans_avg\":{\"$avg\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n \"missesTrans_min\":{\"$min\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n \"missesTrans_max\":{\"$max\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n\n \"missesPermis_avg\":{\"$avg\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }},\n \"missesPermis_min\":{\"$min\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }},\n \"missesPermis_max\":{\"$max\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean\": \"&req_avg\",\n \"Min\":\"&req_min\",\n \"Max\":\"&req_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Hit Ratio\",\n \"Mean\": \"&hitRatio_avg\",\n \"Min\":\"&hitRatio_min\",\n \"Max\":\"&hitRatio_max\",\n \"Units\":\"pct\"\n },\n {\n \"Metric\": \"Hits\",\n \"Mean\": \"&hits_avg\",\n \"Min\":\"&hits_min\",\n \"Max\":\"&hits_max\",\n \"Units\":{ \"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Misses (Translation)\",\n \"Mean\": \"&missesTrans_avg\",\n \"Min\":\"&missesTrans_min\",\n \"Max\":\"&missesTrans_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Misses (Permission)\",\n \"Mean\": \"&missesPermis_avg\",\n \"Min\":\"&missesPermis_min\",\n \"Max\":\"&missesPermis_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Vector L1D Cache)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\":{\"$avg\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n \"req_min\":{\"$min\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n \"req_max\":{\"$max\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n\n\n \"hitRatio_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n \"hitRatio_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n \"hitRatio_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n\n \"hits_avg\":{\"$avg\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n \"hits_min\":{\"$min\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n \"hits_max\":{\"$max\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n\n \"missesTrans_avg\":{\"$avg\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n \"missesTrans_min\":{\"$min\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n \"missesTrans_max\":{\"$max\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n\n \"missesPermis_avg\":{\"$avg\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }},\n \"missesPermis_min\":{\"$min\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }},\n \"missesPermis_max\":{\"$max\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean\": \"&req_avg\",\n \"Min\":\"&req_min\",\n \"Max\":\"&req_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Hit Ratio\",\n \"Mean\": \"&hitRatio_avg\",\n \"Min\":\"&hitRatio_min\",\n \"Max\":\"&hitRatio_max\",\n \"Units\":\"pct\"\n },\n {\n \"Metric\": \"Hits\",\n \"Mean\": \"&hits_avg\",\n \"Min\":\"&hits_min\",\n \"Max\":\"&hits_max\",\n \"Units\":{ \"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Misses (Translation)\",\n \"Mean\": \"&missesTrans_avg\",\n \"Min\":\"&missesTrans_min\",\n \"Max\":\"&missesTrans_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Misses (Permission)\",\n \"Mean\": \"&missesPermis_avg\",\n \"Min\":\"&missesPermis_min\",\n \"Max\":\"&missesPermis_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Vector L1D Addr Translation", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Units 2": true - }, - "indexByName": { - "Max 1": 7, - "Max 2": 8, - "Mean 1": 3, - "Mean 2": 4, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Units 1": 9, - "Units 2": 2 - }, - "renameByName": { - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Mean 1": "Avg (Current)", - "Mean 2": "Avg (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 46 - }, - "id": 56, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "L2-EA Rd BW - GB/s" - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2-EA Rd BW " - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - }, - { - "id": "max", - "value": 1638 - }, - { - "id": "color" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2 Util" - }, - "properties": [ - { - "id": "unit", - "value": "percent" - }, - { - "id": "thresholds", - "value": { - "mode": "percentage", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - } - }, - { - "id": "max", - "value": 100 - }, - { - "id": "min", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Cache Hit" - }, - "properties": [ - { - "id": "max", - "value": 100 - }, - { - "id": "unit", - "value": "percent" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - } - }, - { - "id": "min", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2-EA Wr BW" - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - }, - { - "id": "max", - "value": 1638 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2-EA Rd BW" - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - }, - { - "id": "max", - "value": 1638 - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 47 - }, - "id": 64, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "text": { - "titleSize": 14, - "valueSize": 16 - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n{\"$group\": {\n \"_id\": null,\n \"L2Util\": {\n \"$avg\": { \n \n \"$divide\": [\n {\"$multiply\": [\"&TCC_BUSY_sum\", 100]},\n {\"$multiply\": [{\"$toInt\":\"$L2Banks\"}, \"&GRBM_GUI_ACTIVE\"] }\n ] \n } \n },\n\n \"cacheHit\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n 0\n ] \n }},\n\n \"l2eaRdBW\": {\n \"$avg\": { \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \n \"l2eaWrBW\": {\n \"$avg\": { \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"L2 Util\": \"&L2Util\",\n \"Cache Hit\": \"&cacheHit\",\n \"L2-EA Rd BW\": \"&l2eaRdBW\",\n \"L2-EA Wr BW\": \"&l2eaWrBW\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(L2 Cache)\"}}\n }},\n\n{\"$group\": {\n \"_id\": null,\n \"L2Util\": {\n \"$avg\": { \n \"$divide\": [\n {\"$multiply\": [\"&TCC_BUSY_sum\", 100]},\n {\"$multiply\": [{\"$toInt\":\"$L2Banks2\"}, \"&GRBM_GUI_ACTIVE\"] }\n ] \n } \n },\n\n \"cacheHit\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n 0\n ] \n }},\n\n \"l2eaRdBW\": {\n \"$avg\": { \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \n \"l2eaWrBW\": {\n \"$avg\": { \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"L2 Util\": \"&L2Util\",\n \"Cache Hit\": \"&cacheHit\",\n \"L2-EA Rd BW\": \"&l2eaRdBW\",\n \"L2-EA Wr BW\": \"&l2eaWrBW\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Speed-of-Light: L2 Cache", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Cache Hit 1": 2, - "Cache Hit 2": 3, - "L2 Util 1": 0, - "L2 Util 2": 1, - "L2-EA Rd BW 1": 4, - "L2-EA Rd BW 2": 5, - "L2-EA Wr BW 1": 6, - "L2-EA Wr BW 2": 7 - }, - "renameByName": { - "Cache Hit 1": "L2 Cache Hit (Current)", - "Cache Hit 2": "L2 Cache Hit (Baseline)", - "L2 Util 1": "L2 Util (Current)", - "L2 Util 2": "L2 Util (Baseline)", - "L2-EA Rd BW - GB/s 1": "L2-EA RD BW (Current)", - "L2-EA Rd BW - GB/s 2": "L2-EA RD BW (baseline)", - "L2-EA Rd BW 1": "L2-EA Rd BW (Current)", - "L2-EA Rd BW 2": "L2-EA Rd BW (Baseline)", - "L2-EA Wr BW - GB/s 1": "L2-EA WR BW (Current)", - "L2-EA Wr BW - GB/s 2": "L2-EA WR BW (Baseline)", - "L2-EA Wr BW 1": "L2-EA Wr BW (Current)", - "L2-EA Wr BW 2": "L2-EA Wr BW (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 106 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 114 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 148 - } - ] - } - ] - }, - "gridPos": { - "h": 16, - "w": 12, - "x": 12, - "y": 47 - }, - "id": 62, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": \"null\",\n \"readStall_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"readStall_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"readStall_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n\n \"writeStall_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"writeStall_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"writeStall_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n\n \n \"readBW_avg\":{\"$avg\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n \"readBW_min\":{\"$min\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n \"readBW_max\":{\"$max\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n\n \"writeBW_avg\":{\"$avg\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n \"writeBW_min\":{\"$min\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n \"writeBW_max\":{\"$max\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n\n \"read32_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n \"read32_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n \"read32_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n\n \"read32Uncached_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"read32Uncached_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"read32Uncached_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n\n \"read64_avg\":{\"$avg\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n \"read64_min\":{\"$min\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n \"read64_max\":{\"$max\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n\n \"hbmRead_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmRead_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmRead_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n\n \"write32_avg\":{\"$avg\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n \"write32_min\":{\"$min\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n \"write32_max\":{\"$max\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n\n \"write32Uncached_avg\": {\"$avg\":{\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"write32Uncached_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"write32Uncached_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n\n \"write64_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n \"write64_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n \"write64_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n\n \"hbmWrite_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmWrite_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmWrite_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n\n \"readLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n \"readLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n \"readLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n\n \"writeLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n \"writeLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n \"writeLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n\n \"atomicOpLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }},\n \"atomicOpLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }},\n \"atomicOpLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Read BW\",\n \"Avg\": \"&readBW_avg\",\n \"Min\":\"&readBW_min\",\n \"Max\":\"&readBW_max\",\n \"Unit\":{\"$concat\": [\"Bytes \", $normUnit] }\n },\n {\n \"Metric\": \"Write BW\",\n \"Avg\": \"&writeBW_avg\",\n \"Min\":\"&writeBW_min\",\n \"Max\":\"&writeBW_max\",\n \"Unit\":{\"$concat\": [\"Bytes \", $normUnit] }\n },\n {\n \"Metric\": \"Read (32B)\",\n \"Avg\": \"&read32_avg\",\n \"Min\":\"&read32_min\",\n \"Max\":\"&read32_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read (Uncached 32B)\",\n \"Avg\": \"&read32Uncached_avg\",\n \"Min\":\"&read32Uncached_min\",\n \"Max\":\"&read32Uncached_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read (64B)\",\n \"Avg\": \"&read64_avg\",\n \"Min\":\"&read64_min\",\n \"Max\":\"&read64_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"HBM Read\",\n \"Avg\": \"&hbmRead_avg\",\n \"Min\":\"&hbmRead_min\",\n \"Max\":\"&hbmRead_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (32B)\",\n \"Avg\": \"&write32_avg\",\n \"Min\":\"&write32_min\",\n \"Max\":\"&write32_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (Uncached 32B)\",\n \"Avg\": \"&write32Uncached_avg\",\n \"Min\":\"&write32Uncached_min\",\n \"Max\":\"&write32Uncached_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (64B)\",\n \"Avg\": \"&write64_avg\",\n \"Min\":\"&write64_min\",\n \"Max\":\"&write64_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"HBM Write\",\n \"Avg\": \"&hbmWrite_avg\",\n \"Min\":\"&hbmWrite_min\",\n \"Max\":\"&hbmWrite_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read Latency\",\n \"Avg\": \"&readLatency_avg\",\n \"Min\":\"&readLatency_min\",\n \"Max\":\"&readLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Write Latency\",\n \"Avg\": \"&writeLatency_avg\",\n \"Min\":\"&writeLatency_min\",\n \"Max\":\"&writeLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Atomic Latency\",\n \"Avg\": \"&atomicOpLatency_avg\",\n \"Min\":\"&atomicOpLatency_min\",\n \"Max\":\"&atomicOpLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Read Stall\",\n \"Avg\": \"&readStall_avg\",\n \"Min\":\"&readStall_min\",\n \"Max\":\"&readStall_max\",\n \"Unit\":\"pct\"\n },\n {\n \"Metric\": \"Write Stall\",\n \"Avg\": \"&writeStall_avg\",\n \"Min\":\"&writeStall_min\",\n \"Max\":\"&writeStall_max\",\n \"Unit\":\"pct\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(L2 Cache)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": \"null\",\n \"readStall_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"readStall_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"readStall_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n\n \"writeStall_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"writeStall_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"writeStall_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n\n \"readBW_avg\":{\"$avg\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n \"readBW_min\":{\"$min\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n \"readBW_max\":{\"$max\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n\n \"writeBW_avg\":{\"$avg\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n \"writeBW_min\":{\"$min\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n \"writeBW_max\":{\"$max\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n\n \"read32_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n \"read32_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n \"read32_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n\n \"read32Uncached_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"read32Uncached_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"read32Uncached_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n\n \"read64_avg\":{\"$avg\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n \"read64_min\":{\"$min\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n \"read64_max\":{\"$max\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n\n \"hbmRead_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmRead_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmRead_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n\n \"write32_avg\":{\"$avg\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n \"write32_min\":{\"$min\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n \"write32_max\":{\"$max\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n\n \"write32Uncached_avg\": {\"$avg\":{\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"write32Uncached_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"write32Uncached_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n\n \"write64_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n \"write64_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n \"write64_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n\n \"hbmWrite_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmWrite_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmWrite_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n\n \"readLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n \"readLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n \"readLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n\n \"writeLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n \"writeLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n \"writeLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n\n \"atomicOpLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }},\n \"atomicOpLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }},\n \"atomicOpLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Read BW\",\n \"Avg\": \"&readBW_avg\",\n \"Min\":\"&readBW_min\",\n \"Max\":\"&readBW_max\",\n \"Unit\":{\"$concat\": [\"Bytes \", $normUnit] }\n },\n {\n \"Metric\": \"Write BW\",\n \"Avg\": \"&writeBW_avg\",\n \"Min\":\"&writeBW_min\",\n \"Max\":\"&writeBW_max\",\n \"Unit\":{\"$concat\": [\"Bytes \", $normUnit] }\n },\n {\n \"Metric\": \"Read (32B)\",\n \"Avg\": \"&read32_avg\",\n \"Min\":\"&read32_min\",\n \"Max\":\"&read32_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read (Uncached 32B)\",\n \"Avg\": \"&read32Uncached_avg\",\n \"Min\":\"&read32Uncached_min\",\n \"Max\":\"&read32Uncached_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read (64B)\",\n \"Avg\": \"&read64_avg\",\n \"Min\":\"&read64_min\",\n \"Max\":\"&read64_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"HBM Read\",\n \"Avg\": \"&hbmRead_avg\",\n \"Min\":\"&hbmRead_min\",\n \"Max\":\"&hbmRead_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (32B)\",\n \"Avg\": \"&write32_avg\",\n \"Min\":\"&write32_min\",\n \"Max\":\"&write32_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (Uncached 32B)\",\n \"Avg\": \"&write32Uncached_avg\",\n \"Min\":\"&write32Uncached_min\",\n \"Max\":\"&write32Uncached_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (64B)\",\n \"Avg\": \"&write64_avg\",\n \"Min\":\"&write64_min\",\n \"Max\":\"&write64_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n\n {\n \"Metric\": \"HBM Write\",\n \"Avg\": \"&hbmWrite_avg\",\n \"Min\":\"&hbmWrite_min\",\n \"Max\":\"&hbmWrite_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read Latency\",\n \"Avg\": \"&readLatency_avg\",\n \"Min\":\"&readLatency_min\",\n \"Max\":\"&readLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Write Latency\",\n \"Avg\": \"&writeLatency_avg\",\n \"Min\":\"&writeLatency_min\",\n \"Max\":\"&writeLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Atomic Latency\",\n \"Avg\": \"&atomicOpLatency_avg\",\n \"Min\":\"&atomicOpLatency_min\",\n \"Max\":\"&atomicOpLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Read Stall\",\n \"Avg\": \"&readStall_avg\",\n \"Min\":\"&readStall_min\",\n \"Max\":\"&readStall_max\",\n \"Unit\":\"pct\"\n },\n {\n \"Metric\": \"Write Stall\",\n \"Avg\": \"&writeStall_avg\",\n \"Min\":\"&writeStall_min\",\n \"Max\":\"&writeStall_max\",\n \"Unit\":\"pct\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "L2 - Fabric Transactions", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 1, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 178 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 128 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 121 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 126 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 128 - } - ] - } - ] - }, - "gridPos": { - "h": 20, - "w": 12, - "x": 0, - "y": 54 - }, - "id": 58, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n \"req_min\":{\"$min\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n \"req_max\":{\"$max\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n\n \"streamingReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n \"streamingReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n \"streamingReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n\n \"readReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n \"readReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n \"readReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n\n \"writeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n\n \"atomicReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n \"atomicReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n \"atomicReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n\n \"probeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n \"probeReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n \"probeReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n\n \"hits_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n \"hits_min\":{\"$min\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n \"hits_max\":{\"$max\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n\n \"misses_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n \"misses_min\":{\"$min\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n \"misses_max\":{\"$max\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n\n \"cacheHit_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n \"cacheHit_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n \"cacheHit_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n\n\n \"writeback_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n \"writeback_min\":{\"$min\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n \"writeback_max\":{\"$max\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n\n \"nc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n \"nc_min\":{\"$min\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n \"nc_max\":{\"$max\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n\n \"uc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n \"uc_min\":{\"$min\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n \"uc_max\":{\"$max\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n\n \"cc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n \"cc_min\":{\"$min\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n \"cc_max\":{\"$max\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n\n \"rw_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n \"rw_min\":{\"$min\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n \"rw_max\":{\"$max\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n\n \"writebackNorm_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n \"writebackNorm_min\":{\"$min\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n \"writebackNorm_max\":{\"$max\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n\n \"writebackTC_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n \"writebackTC_min\":{\"$min\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n \"writebackTC_max\":{\"$max\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n\n \"evictNorm_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n \"evictNorm_min\":{\"$min\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n \"evictNorm_max\":{\"$max\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n\n \"evictTC_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n \"evictTC_min\":{\"$min\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n \"evictTC_max\":{\"$max\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n\n\n \"readReq128_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }},\n \"readReq128_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }},\n \"readReq128_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Req\",\n \"avg\": \"&req_avg\",\n \"min\": \"&req_min\",\n \"max\": \"&req_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Streaming Req\",\n \"avg\": \"&streamingReq_avg\",\n \"min\": \"&streamingReq_min\",\n \"max\": \"&streamingReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Read Req\",\n \"avg\": \"&readReq_avg\",\n \"min\": \"&readReq_min\",\n \"max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n \n {\n \"metric\": \"Write Req\",\n \"avg\": \"&writeReq_avg\",\n \"min\": \"&writeReq_min\",\n \"max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Req\",\n \"avg\": \"&atomicReq_avg\",\n \"min\": \"&atomicReq_min\",\n \"max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Probe Req\",\n \"avg\": \"&probeReq_avg\",\n \"min\": \"&probeReq_min\",\n \"max\": \"&probeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Hits\",\n \"avg\": \"&hits_avg\",\n \"min\": \"&hits_min\",\n \"max\": \"&hits_max\",\n \"Unit\": {\"$concat\": [\"Hits \", $normUnit]}\n }, \n {\n \"metric\": \"Misses\",\n \"avg\": \"&misses_avg\",\n \"min\": \"&misses_min\",\n \"max\": \"&misses_max\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hit\",\n \"avg\": \"&cacheHit_avg\",\n \"min\": \"&cacheHit_min\",\n \"max\": \"&cacheHit_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Writeback\",\n \"avg\": \"&writeback_avg\",\n \"min\": \"&writeback_min\",\n \"max\": \"&writeback_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"NC Req\",\n \"avg\": \"&nc_avg\",\n \"min\": \"&nc_min\",\n \"max\": \"&nc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"UC Req\",\n \"avg\": \"&uc_avg\",\n \"min\": \"&uc_min\",\n \"max\": \"&uc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"CC Req\",\n \"avg\": \"&cc_avg\",\n \"min\": \"&cc_min\",\n \"max\": \"&cc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"RW Req\",\n \"avg\": \"&rw_avg\",\n \"min\": \"&rw_min\",\n \"max\": \"&rw_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Writeback (Normal)\",\n \"avg\": \"&writebackNorm_avg\",\n \"min\": \"&writebackNorm_min\",\n \"max\": \"&writebackNorm_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Writeback (TC Req)\",\n \"avg\": \"&writebackTC_avg\",\n \"min\": \"&writebackTC_min\",\n \"max\": \"&writebackTC_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Evict (Normal)\",\n \"avg\": \"&evictNorm_avg\",\n \"min\": \"&evictNorm_min\",\n \"max\": \"&evictNorm_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Evict (TC Req)\",\n \"avg\": \"&evictTC_avg\",\n \"min\": \"&evictTC_min\",\n \"max\": \"&evictTC_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(L2 Cache)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n \"req_min\":{\"$min\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n \"req_max\":{\"$max\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n\n \"streamingReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n \"streamingReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n \"streamingReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n\n \"readReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n \"readReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n \"readReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n\n \"writeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n\n \"atomicReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n \"atomicReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n \"atomicReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n\n \"probeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n \"probeReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n \"probeReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n\n \"hits_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n \"hits_min\":{\"$min\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n \"hits_max\":{\"$max\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n\n \"misses_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n \"misses_min\":{\"$min\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n \"misses_max\":{\"$max\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n\n \"cacheHit_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n \"cacheHit_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n \"cacheHit_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n\n\n \"writeback_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n \"writeback_min\":{\"$min\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n \"writeback_max\":{\"$max\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n\n \"nc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n \"nc_min\":{\"$min\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n \"nc_max\":{\"$max\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n\n \"uc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n \"uc_min\":{\"$min\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n \"uc_max\":{\"$max\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n\n \"cc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n \"cc_min\":{\"$min\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n \"cc_max\":{\"$max\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n\n \"rw_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n \"rw_min\":{\"$min\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n \"rw_max\":{\"$max\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n\n \"writebackNorm_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n \"writebackNorm_min\":{\"$min\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n \"writebackNorm_max\":{\"$max\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n\n \"writebackTC_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n \"writebackTC_min\":{\"$min\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n \"writebackTC_max\":{\"$max\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n\n \"evictNorm_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n \"evictNorm_min\":{\"$min\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n \"evictNorm_max\":{\"$max\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n\n \"evictTC_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n \"evictTC_min\":{\"$min\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n \"evictTC_max\":{\"$max\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n\n \"readReq128_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }},\n \"readReq128_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }},\n \"readReq128_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Req\",\n \"avg\": \"&req_avg\",\n \"min\": \"&req_min\",\n \"max\": \"&req_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Streaming Req\",\n \"avg\": \"&streamingReq_avg\",\n \"min\": \"&streamingReq_min\",\n \"max\": \"&streamingReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Read Req\",\n \"avg\": \"&readReq_avg\",\n \"min\": \"&readReq_min\",\n \"max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n \n {\n \"metric\": \"Write Req\",\n \"avg\": \"&writeReq_avg\",\n \"min\": \"&writeReq_min\",\n \"max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Req\",\n \"avg\": \"&atomicReq_avg\",\n \"min\": \"&atomicReq_min\",\n \"max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Probe Req\",\n \"avg\": \"&probeReq_avg\",\n \"min\": \"&probeReq_min\",\n \"max\": \"&probeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Hits\",\n \"avg\": \"&hits_avg\",\n \"min\": \"&hits_min\",\n \"max\": \"&hits_max\",\n \"Unit\": {\"$concat\": [\"Hits \", $normUnit]}\n }, \n {\n \"metric\": \"Misses\",\n \"avg\": \"&misses_avg\",\n \"min\": \"&misses_min\",\n \"max\": \"&misses_max\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hit\",\n \"avg\": \"&cacheHit_avg\",\n \"min\": \"&cacheHit_min\",\n \"max\": \"&cacheHit_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Writeback\",\n \"avg\": \"&writeback_avg\",\n \"min\": \"&writeback_min\",\n \"max\": \"&writeback_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"NC Req\",\n \"avg\": \"&nc_avg\",\n \"min\": \"&nc_min\",\n \"max\": \"&nc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"UC Req\",\n \"avg\": \"&uc_avg\",\n \"min\": \"&uc_min\",\n \"max\": \"&uc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"CC Req\",\n \"avg\": \"&cc_avg\",\n \"min\": \"&cc_min\",\n \"max\": \"&cc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"RW Req\",\n \"avg\": \"&rw_avg\",\n \"min\": \"&rw_min\",\n \"max\": \"&rw_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Writeback (Normal)\",\n \"avg\": \"&writebackNorm_avg\",\n \"min\": \"&writebackNorm_min\",\n \"max\": \"&writebackNorm_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Writeback (TC Req)\",\n \"avg\": \"&writebackTC_avg\",\n \"min\": \"&writebackTC_min\",\n \"max\": \"&writebackTC_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Evict (Normal)\",\n \"avg\": \"&evictNorm_avg\",\n \"min\": \"&evictNorm_min\",\n \"max\": \"&evictNorm_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Evict (TC Req)\",\n \"avg\": \"&evictTC_avg\",\n \"min\": \"&evictTC_min\",\n \"max\": \"&evictTC_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - } - ], - "title": "L2 Cache Accesses", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Unit 2": true, - "metric 2": true - }, - "indexByName": { - "Unit 1": 9, - "Unit 2": 2, - "avg 1": 3, - "avg 2": 4, - "max 1": 7, - "max 2": 8, - "metric 1": 0, - "metric 2": 1, - "min 1": 5, - "min 2": 6 - }, - "renameByName": { - "avg 1": "Avg (Current)", - "avg 2": "Avg (Baseline)", - "max 1": "Max (Current)", - "max 2": "Max (Baseline)", - "min 1": "Min (Current)", - "min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "Aggregate": "last", - "BarPadding": 30, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupColName": "Transaction", - "GroupCols": 1, - "GroupGap": 5, - "GroupLabelColor": "#FADE2A", - "GroupLabelFontSize": "120%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 0, - "Horizontal": true, - "LabelColName": "Metric", - "LabelColor": "#ffffff", - "LabelFontSize": "80%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 0, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#FF9830", - "ValueDecimals": 0, - "ValueFontSize": "100%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:81", - "Col": 3, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Selected": true - } - ], - "datasource": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 63 - }, - "id": 60, - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "$Workload1.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"ioStall_READ_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"ioStall_READ_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"ioStall_READ_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"gmiStall_READ_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"gmiStall_READ_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"gmiStall_READ_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"hbmStall_READ_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"hbmStall_READ_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"hbmStall_READ_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"ioStall_WRITE_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"ioStall_WRITE_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"ioStall_WRITE_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"gmiStall_WRITE_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"gmiStall_WRITE_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"gmiStall_WRITE_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"hbmStall_WRITE_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"hbmStall_WRITE_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"hbmStall_WRITE_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"creditStarvation_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_TOO_MANY_EA_WRREQS_STALL_sum\", \"&denom\"] }\n },\n \"creditStarvation_min\": {\n \"$min\": { \"$divide\": [\"&TCC_TOO_MANY_EA_WRREQS_STALL_sum\", \"&denom\"] }\n },\n \"creditStarvation_max\": {\n \"$max\": { \"$divide\": [\"&TCC_TOO_MANY_EA_WRREQS_STALL_sum\", \"&denom\"] }\n } \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Remote Socket Stall\",\n \"Transaction\": \"Read\",\n \"Target\": \"I/O\",\n \"Avg\": \"&ioStall_READ_avg\",\n \"Min\": \"&ioStall_READ_min\",\n \"Max\": \"&ioStall_READ_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Peer GCD Stall\",\n \"Transaction\": \"Read\",\n \"Target\": \"GMI\",\n \"Avg\": \"&gmiStall_READ_avg\",\n \"Min\": \"&gmiStall_READ_min\",\n \"Max\": \"&gmiStall_READ_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"HBM Stall\",\n \"Transaction\": \"Read\",\n \"Target\": \"HBM\",\n \"Avg\": \"&hbmStall_READ_avg\",\n \"Min\": \"&hbmStall_READ_min\",\n \"Max\": \"&hbmStall_READ_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Remote Socket Stall\",\n \"Transaction\": \"Write\",\n \"Target\": \"I/O\",\n \"Avg\": \"&ioStall_WRITE_avg\",\n \"Min\": \"&ioStall_WRITE_min\",\n \"Max\": \"&ioStall_WRITE_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Peer GCD Stall\",\n \"Transaction\": \"Write\",\n \"Target\": \"GMI\",\n \"Avg\": \"&gmiStall_WRITE_avg\",\n \"Min\": \"&gmiStall_WRITE_min\",\n \"Max\": \"&gmiStall_WRITE_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"HBM Stall\",\n \"Transaction\": \"Write\",\n \"Target\": \"HBM\",\n \"Avg\": \"&hbmStall_WRITE_avg\",\n \"Min\": \"&hbmStall_WRITE_min\",\n \"Max\": \"&hbmStall_WRITE_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Credit Starvation\",\n \"Transaction\": \"Write\",\n \"Target\": \"Fabric\",\n \"Avg\": \"&creditStarvation_avg\",\n \"Min\": \"&creditStarvation_min\",\n \"Max\": \"&creditStarvation_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "L2 - Fabric Interface Stalls (Cycles $normUnit)", - "transparent": true, - "type": "michaeldmoore-multistat-panel" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "L2 Cache", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 47 - }, - "id": 66, - "panels": [ - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLimitValue": 100, - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineValue": 105, - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": true, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "light", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:850", - "Col": 1, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Hit Rate", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "description": "", - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 17 - }, - "id": 87, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 Cache Hit Rate (Percent) (Channel 0 - 15) ", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLimitValue": 100, - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineValue": 105, - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": true, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "light", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:850", - "Col": 1, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Hit Rate", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "description": "", - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 17 - }, - "id": 92, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "Cache Hit Rate % (Channel 16 - 31) ", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 80, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:565", - "Col": 3, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Read Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 25 - }, - "id": 81, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L1 - L2 Read Requests(Channel 0-15) : $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:656", - "Col": 3, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Read Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 25 - }, - "id": 82, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L1 - L 2 Read Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 80, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:697", - "Col": 4, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Write Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 33 - }, - "id": 83, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L1 - L2 Write Requests (Channel 0-15): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 0, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:750", - "Col": 4, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Write Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 33 - }, - "id": 84, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L1 - L2 Write Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLimitValue": 100, - "HighLmitLineWidth": 1, - "HighSideMargin": 0, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "100%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 80, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineValue": 105, - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": true, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:791", - "Col": 5, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "AtomicReq", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 41 - }, - "id": 85, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L1 - L2 Atomic Requests (Channel 0-15): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLimitValue": 100, - "HighLmitLineWidth": 1, - "HighSideMargin": 0, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "100%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 80, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineValue": 105, - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": true, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:791", - "Col": 5, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "AtomicReq", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 41 - }, - "id": 91, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L1 - L2 Atomic Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 6, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 49 - }, - "id": 189, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Read Requests (Channel 0 - 15) : $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:341", - "Col": 6, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 49 - }, - "id": 195, - "maxDataPoints": 10, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Read Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 7, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 57 - }, - "id": 191, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Requests (Channel 0 - 15) : $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:341", - "Col": 7, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 57 - }, - "id": 197, - "maxDataPoints": 10, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 8, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA AtomicReq", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 65 - }, - "id": 193, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Atomic Request (Channel 0 - 15): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:341", - "Col": 8, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA AtomicReq", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 65 - }, - "id": 199, - "maxDataPoints": 10, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Atomic Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupColName": "", - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 9, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Lat - cycles", - "Selected": true - } - ], - "datasource": {}, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 73 - }, - "hideTimeOverride": false, - "id": 68, - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"b0_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[0]\", \"&TCC_MISS[0]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[0]\"]}, \n { \"$add\": [\"&TCC_HIT[0]\", \"&TCC_MISS[0]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b0_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[0]\"}, \"&denom\"] } \n },\n \"b0_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[0]\"}, \"&denom\"] } \n },\n \"b0_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[0]\"}, \"&denom\"] } \n },\n \"b0_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[0]\"}, \"&denom\"] } \n },\n \"b0_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[0]\"}, \"&denom\"] }\n },\n \"b0_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[0]\"}, \"&denom\"] } \n },\n \"b0_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[0]\"}, \"&denom\"] } \n },\n\n \"b0_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[0]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[0]\", \"&TCC_EA_RDREQ[0]\"]}, null] } },\n \"b0_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[0]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[0]\", \"&TCC_EA_WRREQ[0]\"]}, null] } },\n \"b0_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[0]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[0]\", \"&TCC_EA_ATOMIC[0]\"]}, null]}},\n\n \"b0_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[0]\"}, \"&denom\"] }},\n\n \n \"b1_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[1]\", \"&TCC_MISS[1]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[1]\"]}, \n { \"$add\": [\"&TCC_HIT[1]\", \"&TCC_MISS[1]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b1_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[1]\"}, \"&denom\"] } \n },\n \"b1_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[1]\"}, \"&denom\"] } \n },\n \"b1_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[1]\"}, \"&denom\"] } \n },\n \"b1_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[1]\"}, \"&denom\"] } \n },\n \"b1_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[1]\"}, \"&denom\"] }\n },\n \"b1_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[1]\"}, \"&denom\"] } \n },\n \"b1_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[1]\"}, \"&denom\"] } \n },\n \"b1_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[1]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[1]\", \"&TCC_EA_RDREQ[1]\"]}, null] } },\n \"b1_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[1]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[1]\", \"&TCC_EA_WRREQ[1]\"]}, null] } },\n \"b1_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[1]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[1]\", \"&TCC_EA_ATOMIC[1]\"]}, null]}},\n\n \"b1_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[1]\"}, \"&denom\"] }},\n\n\n \"b2_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[2]\", \"&TCC_MISS[2]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[2]\"]}, \n { \"$add\": [\"&TCC_HIT[2]\", \"&TCC_MISS[2]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b2_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[2]\"}, \"&denom\"] }\n },\n \"b2_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[2]\"}, \"&denom\"] } \n },\n \"b2_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[2]\"}, \"&denom\"] }\n },\n \"b2_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[2]\"}, \"&denom\"] }\n },\n \"b2_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[2]\"}, \"&denom\"] }\n },\n \"b2_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[2]\"}, \"&denom\"] }\n },\n \"b2_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[2]\"}, \"&denom\"] }\n },\n \"b2_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[2]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[2]\", \"&TCC_EA_RDREQ[2]\"]}, null] } },\n \"b2_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[2]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[2]\", \"&TCC_EA_WRREQ[2]\"]}, null] } },\n \"b2_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[2]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[2]\", \"&TCC_EA_ATOMIC[2]\"]}, null]}},\n\n \"b2_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[2]\"}, \"&denom\"] }},\n\n\n \n \"b3_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[3]\", \"&TCC_MISS[3]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[3]\"]}, \n { \"$add\": [\"&TCC_HIT[3]\", \"&TCC_MISS[3]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b3_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[3]\"}, \"&denom\"] } \n },\n \"b3_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[3]\"}, \"&denom\"] } \n },\n \"b3_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[3]\"}, \"&denom\"] }\n },\n \"b3_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[3]\"}, \"&denom\"] }\n },\n \"b3_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[3]\"}, \"&denom\"] }\n },\n \"b3_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[3]\"}, \"&denom\"] }\n },\n \"b3_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[3]\"}, \"&denom\"] } \n },\n \"b3_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[3]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[3]\", \"&TCC_EA_RDREQ[3]\"]}, null] } },\n \"b3_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[3]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[3]\", \"&TCC_EA_WRREQ[3]\"]}, null] } },\n \"b3_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[3]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[3]\", \"&TCC_EA_ATOMIC[3]\"]}, null]}},\n\n \"b3_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[3]\"}, \"&denom\"] }},\n\n\n \n \"b4_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[4]\", \"&TCC_MISS[4]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[4]\"]}, \n { \"$add\": [\"&TCC_HIT[4]\", \"&TCC_MISS[4]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b4_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[4]\"}, \"&denom\"] } \n },\n \"b4_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[4]\"}, \"&denom\"] } \n },\n \"b4_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[4]\"}, \"&denom\"] }\n },\n \"b4_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[4]\"}, \"&denom\"] } \n },\n \"b4_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[4]\"}, \"&denom\"] } \n },\n \"b4_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[4]\"}, \"&denom\"] } \n },\n \"b4_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[4]\"}, \"&denom\"] } \n },\n \"b4_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[4]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[4]\", \"&TCC_EA_RDREQ[4]\"]}, null] } },\n \"b4_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[4]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[4]\", \"&TCC_EA_WRREQ[4]\"]}, null] } },\n \"b4_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[4]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[4]\", \"&TCC_EA_ATOMIC[4]\"]}, null]}},\n\n \"b4_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[4]\"}, \"&denom\"] }},\n\n\n \n \"b5_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[5]\", \"&TCC_MISS[5]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[5]\"]}, \n { \"$add\": [\"&TCC_HIT[5]\", \"&TCC_MISS[5]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b5_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[5]\"}, \"&denom\"] } \n },\n \"b5_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[5]\"}, \"&denom\"] } \n },\n \"b5_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[5]\"}, \"&denom\"] } \n },\n \"b5_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[5]\"}, \"&denom\"] } \n },\n \"b5_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[5]\"}, \"&denom\"] } \n },\n \"b5_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[5]\"}, \"&denom\"] } \n },\n \"b5_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[5]\"}, \"&denom\"] } \n },\n \"b5_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[5]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[5]\", \"&TCC_EA_RDREQ[5]\"]}, null] } },\n \"b5_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[5]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[5]\", \"&TCC_EA_WRREQ[5]\"]}, null] } },\n \"b5_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[5]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[5]\", \"&TCC_EA_ATOMIC[5]\"]}, null]}},\n\n \"b5_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[5]\"}, \"&denom\"] }},\n\n\n \n \"b6_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[6]\", \"&TCC_MISS[6]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[6]\"]}, \n { \"$add\": [\"&TCC_HIT[6]\", \"&TCC_MISS[6]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b6_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[6]\"}, \"&denom\"] } \n },\n \"b6_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[6]\"}, \"&denom\"] } \n },\n \"b6_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[6]\"}, \"&denom\"] } \n },\n \"b6_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[6]\"}, \"&denom\"] } \n },\n \"b6_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[6]\"}, \"&denom\"] } \n },\n \"b6_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[6]\"}, \"&denom\"] }\n },\n \"b6_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[6]\"}, \"&denom\"] } \n },\n \"b6_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[6]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[6]\", \"&TCC_EA_RDREQ[6]\"]}, null] } },\n \"b6_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[6]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[6]\", \"&TCC_EA_WRREQ[6]\"]}, null] } },\n \"b6_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[6]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[6]\", \"&TCC_EA_ATOMIC[6]\"]}, null]}},\n\n \"b6_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[6]\"}, \"&denom\"] }},\n\n\n \n \"b7_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[7]\", \"&TCC_MISS[7]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[7]\"]}, \n { \"$add\": [\"&TCC_HIT[7]\", \"&TCC_MISS[7]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b7_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[7]\"}, \"&denom\"] } \n },\n \"b7_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[7]\"}, \"&denom\"] } \n },\n \"b7_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[7]\"}, \"&denom\"] } \n },\n \"b7_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[7]\"}, \"&denom\"] } \n },\n \"b7_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[7]\"}, \"&denom\"] } \n },\n \"b7_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[7]\"}, \"&denom\"] }\n },\n \"b7_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[7]\"}, \"&denom\"] } \n },\n \"b7_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[7]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[7]\", \"&TCC_EA_RDREQ[7]\"]}, null] } },\n \"b7_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[7]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[7]\", \"&TCC_EA_WRREQ[7]\"]}, null] } },\n \"b7_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[7]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[7]\", \"&TCC_EA_ATOMIC[7]\"]}, null]}},\n\n \"b7_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[7]\"}, \"&denom\"] }},\n\n\n \n \"b8_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[8]\", \"&TCC_MISS[8]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[8]\"]}, \n { \"$add\": [\"&TCC_HIT[8]\", \"&TCC_MISS[8]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b8_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[8]\"}, \"&denom\"] } \n },\n \"b8_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[8]\"}, \"&denom\"] } \n },\n \"b8_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[8]\"}, \"&denom\"] } \n },\n \"b8_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[8]\"}, \"&denom\"] } \n },\n \"b8_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[8]\"}, \"&denom\"] } \n },\n \"b8_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[8]\"}, \"&denom\"] } \n },\n \"b8_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[8]\"}, \"&denom\"] } \n },\n \"b8_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[8]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[8]\", \"&TCC_EA_RDREQ[8]\"]}, null] } },\n \"b8_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[8]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[8]\", \"&TCC_EA_WRREQ[8]\"]}, null] } },\n \"b8_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[8]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[8]\", \"&TCC_EA_ATOMIC[8]\"]}, null]}},\n\n \"b8_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[8]\"}, \"&denom\"] }},\n\n\n \n \"b9_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[9]\", \"&TCC_MISS[9]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[9]\"]}, \n { \"$add\": [\"&TCC_HIT[9]\", \"&TCC_MISS[9]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b9_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[9]\"}, \"&denom\"] } \n },\n \"b9_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[9]\"}, \"&denom\"] } \n },\n \"b9_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[9]\"}, \"&denom\"] } \n },\n \"b9_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[9]\"}, \"&denom\"] } \n },\n \"b9_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[9]\"}, \"&denom\"] } \n },\n \"b9_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[9]\"}, \"&denom\"] } \n },\n \"b9_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[9]\"}, \"&denom\"] } \n },\n \"b9_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[9]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[9]\", \"&TCC_EA_RDREQ[9]\"]}, null] } },\n \"b9_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[9]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[9]\", \"&TCC_EA_WRREQ[9]\"]}, null] } },\n \"b9_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[9]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[9]\", \"&TCC_EA_ATOMIC[9]\"]}, null]}},\n\n \"b9_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[9]\"}, \"&denom\"] }},\n\n\n \n \"b10_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[10]\", \"&TCC_MISS[10]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[10]\"]}, \n { \"$add\": [\"&TCC_HIT[10]\", \"&TCC_MISS[10]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b10_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[10]\"}, \"&denom\"] } \n },\n \"b10_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[10]\"}, \"&denom\"] } \n },\n \"b10_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[10]\"}, \"&denom\"] } \n },\n \"b10_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[10]\"}, \"&denom\"] } \n },\n \"b10_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[10]\"}, \"&denom\"] } \n },\n \"b10_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[10]\"}, \"&denom\"] } \n },\n \"b10_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[10]\"}, \"&denom\"] } \n },\n \"b10_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[10]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[10]\", \"&TCC_EA_RDREQ[10]\"]}, null] } },\n \"b10_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[10]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[10]\", \"&TCC_EA_WRREQ[10]\"]}, null] } },\n \"b10_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[10]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[10]\", \"&TCC_EA_ATOMIC[10]\"]}, null]}},\n\n \"b10_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[10]\"}, \"&denom\"] }},\n\n\n \n \"b11_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[11]\", \"&TCC_MISS[11]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[11]\"]}, \n { \"$add\": [\"&TCC_HIT[11]\", \"&TCC_MISS[11]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b11_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[11]\"}, \"&denom\"] } \n },\n \"b11_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[11]\"}, \"&denom\"] } \n },\n \"b11_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[11]\"}, \"&denom\"] } \n },\n \"b11_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[11]\"}, \"&denom\"] } \n },\n \"b11_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[11]\"}, \"&denom\"] } \n },\n \"b11_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[11]\"}, \"&denom\"] } \n },\n \"b11_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[11]\"}, \"&denom\"] } \n },\n \"b11_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[11]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[11]\", \"&TCC_EA_RDREQ[11]\"]}, null] } },\n \"b11_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[11]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[11]\", \"&TCC_EA_WRREQ[11]\"]}, null] } },\n \"b11_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[11]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[11]\", \"&TCC_EA_ATOMIC[11]\"]}, null]}},\n\n \"b11_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[11]\"}, \"&denom\"] }},\n\n\n \n \"b12_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[12]\", \"&TCC_MISS[12]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[12]\"]}, \n { \"$add\": [\"&TCC_HIT[12]\", \"&TCC_MISS[12]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b12_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[12]\"}, \"&denom\"] } \n },\n \"b12_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[12]\"}, \"&denom\"] } \n },\n \"b12_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[12]\"}, \"&denom\"] } \n },\n \"b12_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[12]\"}, \"&denom\"] } \n },\n \"b12_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[12]\"}, \"&denom\"] } \n },\n \"b12_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[12]\"}, \"&denom\"] } \n },\n \"b12_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[12]\"}, \"&denom\"] } \n },\n \"b12_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[12]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[12]\", \"&TCC_EA_RDREQ[12]\"]}, null] } },\n \"b12_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[12]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[12]\", \"&TCC_EA_WRREQ[12]\"]}, null] } },\n \"b12_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[12]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[12]\", \"&TCC_EA_ATOMIC[12]\"]}, null]}},\n\n \"b12_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[12]\"}, \"&denom\"] }},\n\n\n \n \"b13_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[13]\", \"&TCC_MISS[13]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[13]\"]}, \n { \"$add\": [\"&TCC_HIT[13]\", \"&TCC_MISS[13]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b13_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[13]\"}, \"&denom\"] } \n },\n \"b13_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[13]\"}, \"&denom\"] } \n },\n \"b13_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[13]\"}, \"&denom\"] } \n },\n \"b13_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[13]\"}, \"&denom\"] } \n },\n \"b13_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[13]\"}, \"&denom\"] } \n },\n \"b13_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[13]\"}, \"&denom\"] }\n },\n \"b13_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[13]\"}, \"&denom\"] } \n },\n \"b13_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[13]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[13]\", \"&TCC_EA_RDREQ[13]\"]}, null] } },\n \"b13_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[13]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[13]\", \"&TCC_EA_WRREQ[13]\"]}, null] } },\n \"b13_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[13]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[13]\", \"&TCC_EA_ATOMIC[13]\"]}, null]}},\n\n \"b13_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[13]\"}, \"&denom\"] }},\n\n\n \n \"b14_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[14]\", \"&TCC_MISS[14]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[14]\"]}, \n { \"$add\": [\"&TCC_HIT[14]\", \"&TCC_MISS[14]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b14_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[14]\"}, \"&denom\"] } \n },\n \"b14_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[14]\"}, \"&denom\"] } \n },\n \"b14_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[14]\"}, \"&denom\"] } \n },\n \"b14_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[14]\"}, \"&denom\"] } \n },\n \"b14_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[14]\"}, \"&denom\"] } \n },\n \"b14_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[14]\"}, \"&denom\"] } \n },\n \"b14_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[14]\"}, \"&denom\"] } \n },\n \"b14_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[14]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[14]\", \"&TCC_EA_RDREQ[14]\"]}, null] } },\n \"b14_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[14]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[14]\", \"&TCC_EA_WRREQ[14]\"]}, null] } },\n \"b14_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[14]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[14]\", \"&TCC_EA_ATOMIC[14]\"]}, null]}},\n\n \"b14_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[14]\"}, \"&denom\"] }},\n\n\n \n \"b15_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[15]\", \"&TCC_MISS[15]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[15]\"]}, \n { \"$add\": [\"&TCC_HIT[15]\", \"&TCC_MISS[15]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b15_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[15]\"}, \"&denom\"] } \n },\n \"b15_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[15]\"}, \"&denom\"] } \n },\n \"b15_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[15]\"}, \"&denom\"] } \n },\n \"b15_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[15]\"}, \"&denom\"] } \n },\n \"b15_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[15]\"}, \"&denom\"] } \n },\n \"b15_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[15]\"}, \"&denom\"] } \n },\n \"b15_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[15]\"}, \"&denom\"] }\n },\n \"b15_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[15]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[15]\", \"&TCC_EA_RDREQ[15]\"]}, null] } },\n \"b15_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[15]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[15]\", \"&TCC_EA_WRREQ[15]\"]}, null] } },\n \"b15_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[15]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[15]\", \"&TCC_EA_ATOMIC[15]\"]}, null]}},\n\n \"b15_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[15]\"}, \"&denom\"] }}\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Channel\": \"0\",\n \"Hit Rate\": \"&b0_hitRate\",\n \"Req\": \"&b0_req\",\n \"Read Req\": \"&b0_readReq\",\n \"Write Req\": \"&b0_writeReq\",\n \"AtomicReq\": \"&b0_atomicReq\",\n \"EA Read Req\": \"&b0_eaReadReq\",\n \"EA Write Req\": \"&b0_eaWriteReq\",\n \"EA AtomicReq\": \"&b0_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b0_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b0_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b0_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b0_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b0_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b0_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b0_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b0_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b0_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b0_ea_write_stall_too_many\"\n },\n {\n \"Channel\": \"1\",\n \"Hit Rate\": \"&b1_hitRate\",\n \"Req\": \"&b1_req\",\n \"Read Req\": \"&b1_readReq\",\n \"Write Req\": \"&b1_writeReq\",\n \"AtomicReq\": \"&b1_atomicReq\",\n \"EA Read Req\": \"&b1_eaReadReq\",\n \"EA Write Req\": \"&b1_eaWriteReq\",\n \"EA AtomicReq\": \"&b1_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b1_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b1_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b1_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b1_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b1_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b1_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b1_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b1_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b1_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b1_ea_write_stall_too_many\"\n },\n {\n \"Channel\": \"2\",\n \"Hit Rate\": \"&b2_hitRate\",\n \"Req\": \"&b2_req\",\n \"Read Req\": \"&b2_readReq\",\n \"Write Req\": \"&b2_writeReq\",\n \"AtomicReq\": \"&b2_atomicReq\",\n \"EA Read Req\": \"&b2_eaReadReq\",\n \"EA Write Req\": \"&b2_eaWriteReq\",\n \"EA AtomicReq\": \"&b2_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b2_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b2_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b2_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b2_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b2_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b2_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b2_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b2_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b2_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b2_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"3\",\n \"Hit Rate\": \"&b3_hitRate\",\n \"Req\": \"&b3_req\",\n \"Read Req\": \"&b3_readReq\",\n \"Write Req\": \"&b3_writeReq\",\n \"AtomicReq\": \"&b3_atomicReq\",\n \"EA Read Req\": \"&b3_eaReadReq\",\n \"EA Write Req\": \"&b3_eaWriteReq\",\n \"EA AtomicReq\": \"&b3_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b3_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b3_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b3_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b3_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b3_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b3_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b3_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b3_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b3_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b3_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"4\",\n \"Hit Rate\": \"&b4_hitRate\",\n \"Req\": \"&b4_req\",\n \"Read Req\": \"&b4_readReq\",\n \"Write Req\": \"&b4_writeReq\",\n \"AtomicReq\": \"&b4_atomicReq\",\n \"EA Read Req\": \"&b4_eaReadReq\",\n \"EA Write Req\": \"&b4_eaWriteReq\",\n \"EA AtomicReq\": \"&b4_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b4_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b4_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b4_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b4_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b4_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b4_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b4_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b4_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b4_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b4_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"5\",\n \"Hit Rate\": \"&b5_hitRate\",\n \"Req\": \"&b5_req\",\n \"Read Req\": \"&b5_readReq\",\n \"Write Req\": \"&b5_writeReq\",\n \"AtomicReq\": \"&b5_atomicReq\",\n \"EA Read Req\": \"&b5_eaReadReq\",\n \"EA Write Req\": \"&b5_eaWriteReq\",\n \"EA AtomicReq\": \"&b5_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b5_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b5_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b5_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b5_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b5_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b5_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b5_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b5_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b5_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b5_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"6\",\n \"Hit Rate\": \"&b6_hitRate\",\n \"Req\": \"&b6_req\",\n \"Read Req\": \"&b6_readReq\",\n \"Write Req\": \"&b6_writeReq\",\n \"AtomicReq\": \"&b6_atomicReq\",\n \"EA Read Req\": \"&b6_eaReadReq\",\n \"EA Write Req\": \"&b6_eaWriteReq\",\n \"EA AtomicReq\": \"&b6_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b6_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b6_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b6_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b6_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b6_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b6_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b6_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b6_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b6_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b6_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"7\",\n \"Hit Rate\": \"&b7_hitRate\",\n \"Req\": \"&b7_req\",\n \"Read Req\": \"&b7_readReq\",\n \"Write Req\": \"&b7_writeReq\",\n \"AtomicReq\": \"&b7_atomicReq\",\n \"EA Read Req\": \"&b7_eaReadReq\",\n \"EA Write Req\": \"&b7_eaWriteReq\",\n \"EA AtomicReq\": \"&b7_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b7_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b7_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b7_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b7_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b7_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b7_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b7_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b7_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b7_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b7_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"8\",\n \"Hit Rate\": \"&b8_hitRate\",\n \"Req\": \"&b8_req\",\n \"Read Req\": \"&b8_readReq\",\n \"Write Req\": \"&b8_writeReq\",\n \"AtomicReq\": \"&b8_atomicReq\",\n \"EA Read Req\": \"&b8_eaReadReq\",\n \"EA Write Req\": \"&b8_eaWriteReq\",\n \"EA AtomicReq\": \"&b8_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b8_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b8_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b8_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b8_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b8_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b8_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b8_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b8_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b8_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b8_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"9\",\n \"Hit Rate\": \"&b9_hitRate\",\n \"Req\": \"&b9_req\",\n \"Read Req\": \"&b9_readReq\",\n \"Write Req\": \"&b9_writeReq\",\n \"AtomicReq\": \"&b9_atomicReq\",\n \"EA Read Req\": \"&b9_eaReadReq\",\n \"EA Write Req\": \"&b9_eaWriteReq\",\n \"EA AtomicReq\": \"&b9_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b9_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b9_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b9_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b9_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b9_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b9_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b9_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b9_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b9_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b9_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"10\",\n \"Hit Rate\": \"&b10_hitRate\",\n \"Req\": \"&b10_req\",\n \"Read Req\": \"&b10_readReq\",\n \"Write Req\": \"&b10_writeReq\",\n \"AtomicReq\": \"&b10_atomicReq\",\n \"EA Read Req\": \"&b10_eaReadReq\",\n \"EA Write Req\": \"&b10_eaWriteReq\",\n \"EA AtomicReq\": \"&b10_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b10_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b10_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b10_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b10_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b10_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b10_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b10_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b10_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b10_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b10_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"11\",\n \"Hit Rate\": \"&b11_hitRate\",\n \"Req\": \"&b11_req\",\n \"Read Req\": \"&b11_readReq\",\n \"Write Req\": \"&b11_writeReq\",\n \"AtomicReq\": \"&b11_atomicReq\",\n \"EA Read Req\": \"&b11_eaReadReq\",\n \"EA Write Req\": \"&b11_eaWriteReq\",\n \"EA AtomicReq\": \"&b11_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b11_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b11_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b11_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b11_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b11_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b11_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b11_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b11_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b11_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b11_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"12\",\n \"Hit Rate\": \"&b12_hitRate\",\n \"Req\": \"&b12_req\",\n \"Read Req\": \"&b12_readReq\",\n \"Write Req\": \"&b12_writeReq\",\n \"AtomicReq\": \"&b12_atomicReq\",\n \"EA Read Req\": \"&b12_eaReadReq\",\n \"EA Write Req\": \"&b12_eaWriteReq\",\n \"EA AtomicReq\": \"&b12_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b12_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b12_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b12_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b12_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b12_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b12_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b12_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b12_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b12_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b12_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"13\",\n \"Hit Rate\": \"&b13_hitRate\",\n \"Req\": \"&b13_req\",\n \"Read Req\": \"&b13_readReq\",\n \"Write Req\": \"&b13_writeReq\",\n \"AtomicReq\": \"&b13_atomicReq\",\n \"EA Read Req\": \"&b13_eaReadReq\",\n \"EA Write Req\": \"&b13_eaWriteReq\",\n \"EA AtomicReq\": \"&b13_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b13_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b13_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b13_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b13_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b13_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b13_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b13_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b13_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b13_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b13_ea_write_stall_too_many\"\n\n\n },\n {\n \"Channel\": \"14\",\n \"Hit Rate\": \"&b14_hitRate\",\n \"Req\": \"&b14_req\",\n \"Read Req\": \"&b14_readReq\",\n \"Write Req\": \"&b14_writeReq\",\n \"AtomicReq\": \"&b14_atomicReq\",\n \"EA Read Req\": \"&b14_eaReadReq\",\n \"EA Write Req\": \"&b14_eaWriteReq\",\n \"EA AtomicReq\": \"&b14_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b14_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b14_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b14_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b14_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b14_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b14_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b14_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b14_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b14_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b14_ea_write_stall_too_many\"\n\n\n },\n {\n \"Channel\": \"15\",\n \"Hit Rate\": \"&b15_hitRate\",\n \"Req\": \"&b15_req\",\n \"Read Req\": \"&b15_readReq\",\n \"Write Req\": \"&b15_writeReq\",\n \"AtomicReq\": \"&b15_atomicReq\",\n \"EA Read Req\": \"&b15_eaReadReq\",\n \"EA Write Req\": \"&b15_eaWriteReq\",\n \"EA AtomicReq\": \"&b15_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b15_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b15_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b15_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b15_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b15_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b15_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b15_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b15_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b15_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b15_ea_write_stall_too_many\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"$array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"$array\"\n }}\n]);", - "type": "table" - } - ], - "title": "L2 - EA Read Latency (Channel 0 - 15) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:341", - "Col": 9, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Lat - cycles", - "Selected": true - } - ], - "datasource": {}, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 73 - }, - "id": 70, - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"b16_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[16]\", \"&TCC_MISS[16]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[16]\"]}, \n { \"$add\": [\"&TCC_HIT[16]\", \"&TCC_MISS[16]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b16_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[16]\"}, \"&denom\"] } \n },\n \"b16_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[16]\"}, \"&denom\"] } \n },\n \"b16_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[16]\"}, \"&denom\"] } \n },\n \"b16_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[16]\"}, \"&denom\"] } \n },\n \"b16_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[16]\"}, \"&denom\"] }\n },\n \"b16_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[16]\"}, \"&denom\"] } \n },\n \"b16_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[16]\"}, \"&denom\"] } \n },\n\n \"b16_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[16]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[16]\", \"&TCC_EA_RDREQ[16]\"]}, null] } },\n \"b16_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[16]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[16]\", \"&TCC_EA_WRREQ[16]\"]}, null] } },\n \"b16_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[16]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[16]\", \"&TCC_EA_ATOMIC[16]\"]}, null]}},\n \"b16_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[16]\"}, \"&denom\"] }},\n\n \n \"b17_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[17]\", \"&TCC_MISS[17]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[17]\"]}, \n { \"$add\": [\"&TCC_HIT[17]\", \"&TCC_MISS[17]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b17_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[17]\"}, \"&denom\"] } \n },\n \"b17_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[17]\"}, \"&denom\"] } \n },\n \"b17_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[17]\"}, \"&denom\"] } \n },\n \"b17_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[17]\"}, \"&denom\"] } \n },\n \"b17_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[17]\"}, \"&denom\"] }\n },\n \"b17_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[17]\"}, \"&denom\"] } \n },\n \"b17_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[17]\"}, \"&denom\"] } \n },\n \"b17_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[17]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[17]\", \"&TCC_EA_RDREQ[17]\"]}, null] } },\n \"b17_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[17]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[17]\", \"&TCC_EA_WRREQ[17]\"]}, null] } },\n \"b17_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[17]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[17]\", \"&TCC_EA_ATOMIC[17]\"]}, null]}},\n \"b17_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[17]\"}, \"&denom\"] }},\n\n \n \"b18_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[18]\", \"&TCC_MISS[18]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[18]\"]}, \n { \"$add\": [\"&TCC_HIT[18]\", \"&TCC_MISS[18]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b18_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[18]\"}, \"&denom\"] }\n },\n \"b18_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[18]\"}, \"&denom\"] } \n },\n \"b18_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[18]\"}, \"&denom\"] }\n },\n \"b18_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[18]\"}, \"&denom\"] }\n },\n \"b18_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[18]\"}, \"&denom\"] }\n },\n \"b18_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[18]\"}, \"&denom\"] }\n },\n \"b18_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[18]\"}, \"&denom\"] }\n },\n \"b18_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[18]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[18]\", \"&TCC_EA_RDREQ[18]\"]}, null] } },\n \"b18_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[18]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[18]\", \"&TCC_EA_WRREQ[18]\"]}, null] } },\n \"b18_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[18]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[18]\", \"&TCC_EA_ATOMIC[18]\"]}, null]}},\n \"b18_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[18]\"}, \"&denom\"] }},\n\n \n \"b19_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[19]\", \"&TCC_MISS[19]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[19]\"]}, \n { \"$add\": [\"&TCC_HIT[19]\", \"&TCC_MISS[19]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b19_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[19]\"}, \"&denom\"] } \n },\n \"b19_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[19]\"}, \"&denom\"] } \n },\n \"b19_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[19]\"}, \"&denom\"] }\n },\n \"b19_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[19]\"}, \"&denom\"] }\n },\n \"b19_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[19]\"}, \"&denom\"] }\n },\n \"b19_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[19]\"}, \"&denom\"] }\n },\n \"b19_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[19]\"}, \"&denom\"] } \n },\n \"b19_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[19]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[19]\", \"&TCC_EA_RDREQ[19]\"]}, null] } },\n \"b19_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[19]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[19]\", \"&TCC_EA_WRREQ[19]\"]}, null] } },\n \"b19_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[19]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[19]\", \"&TCC_EA_ATOMIC[19]\"]}, null]}},\n \"b19_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[19]\"}, \"&denom\"] }},\n\n \n \"b20_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[20]\", \"&TCC_MISS[20]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[20]\"]}, \n { \"$add\": [\"&TCC_HIT[20]\", \"&TCC_MISS[20]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b20_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[20]\"}, \"&denom\"] } \n },\n \"b20_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[20]\"}, \"&denom\"] } \n },\n \"b20_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[20]\"}, \"&denom\"] }\n },\n \"b20_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[20]\"}, \"&denom\"] } \n },\n \"b20_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[20]\"}, \"&denom\"] } \n },\n \"b20_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[20]\"}, \"&denom\"] } \n },\n \"b20_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[20]\"}, \"&denom\"] } \n },\n \"b20_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[20]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[20]\", \"&TCC_EA_RDREQ[20]\"]}, null] } },\n \"b20_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[20]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[20]\", \"&TCC_EA_WRREQ[20]\"]}, null] } },\n \"b20_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[20]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[20]\", \"&TCC_EA_ATOMIC[20]\"]}, null]}},\n \"b20_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[20]\"}, \"&denom\"] }},\n\n \n\n \"b21_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[21]\", \"&TCC_MISS[21]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[21]\"]}, \n { \"$add\": [\"&TCC_HIT[21]\", \"&TCC_MISS[21]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b21_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[21]\"}, \"&denom\"] } \n },\n \"b21_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[21]\"}, \"&denom\"] } \n },\n \"b21_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[21]\"}, \"&denom\"] } \n },\n \"b21_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[21]\"}, \"&denom\"] } \n },\n \"b21_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[21]\"}, \"&denom\"] } \n },\n \"b21_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[21]\"}, \"&denom\"] } \n },\n \"b21_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[21]\"}, \"&denom\"] } \n },\n \"b21_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[21]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[21]\", \"&TCC_EA_RDREQ[21]\"]}, null] } },\n \"b21_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[21]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[21]\", \"&TCC_EA_WRREQ[21]\"]}, null] } },\n \"b21_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[21]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[21]\", \"&TCC_EA_ATOMIC[21]\"]}, null]}},\n \"b21_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[21]\"}, \"&denom\"] }},\n\n \n\n \"b22_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[22]\", \"&TCC_MISS[22]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[22]\"]}, \n { \"$add\": [\"&TCC_HIT[22]\", \"&TCC_MISS[22]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b22_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[22]\"}, \"&denom\"] } \n },\n \"b22_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[22]\"}, \"&denom\"] } \n },\n \"b22_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[22]\"}, \"&denom\"] } \n },\n \"b22_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[22]\"}, \"&denom\"] } \n },\n \"b22_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[22]\"}, \"&denom\"] } \n },\n \"b22_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[22]\"}, \"&denom\"] }\n },\n \"b22_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[22]\"}, \"&denom\"] } \n },\n \"b22_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[22]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[22]\", \"&TCC_EA_RDREQ[22]\"]}, null] } },\n \"b22_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[22]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[22]\", \"&TCC_EA_WRREQ[22]\"]}, null] } },\n \"b22_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[22]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[22]\", \"&TCC_EA_ATOMIC[22]\"]}, null]}},\n \"b22_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[22]\"}, \"&denom\"] }},\n\n \n\n \"b23_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[23]\", \"&TCC_MISS[23]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[23]\"]}, \n { \"$add\": [\"&TCC_HIT[23]\", \"&TCC_MISS[23]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b23_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[23]\"}, \"&denom\"] } \n },\n \"b23_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[23]\"}, \"&denom\"] } \n },\n \"b23_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[23]\"}, \"&denom\"] } \n },\n \"b23_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[23]\"}, \"&denom\"] } \n },\n \"b23_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[23]\"}, \"&denom\"] } \n },\n \"b23_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[23]\"}, \"&denom\"] }\n },\n \"b23_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[23]\"}, \"&denom\"] } \n },\n \"b23_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[23]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[23]\", \"&TCC_EA_RDREQ[23]\"]}, null] } },\n \"b23_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[23]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[23]\", \"&TCC_EA_WRREQ[23]\"]}, null] } },\n \"b23_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[23]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[23]\", \"&TCC_EA_ATOMIC[23]\"]}, null]}},\n \"b23_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[23]\"}, \"&denom\"] }},\n\n \n \"b24_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[24]\", \"&TCC_MISS[24]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[24]\"]}, \n { \"$add\": [\"&TCC_HIT[24]\", \"&TCC_MISS[24]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b24_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[24]\"}, \"&denom\"] } \n },\n \"b24_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[24]\"}, \"&denom\"] } \n },\n \"b24_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[24]\"}, \"&denom\"] } \n },\n \"b24_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[24]\"}, \"&denom\"] } \n },\n \"b24_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[24]\"}, \"&denom\"] } \n },\n \"b24_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[24]\"}, \"&denom\"] } \n },\n \"b24_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[24]\"}, \"&denom\"] } \n },\n \"b24_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[24]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[24]\", \"&TCC_EA_RDREQ[24]\"]}, null] } },\n \"b24_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[24]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[24]\", \"&TCC_EA_WRREQ[24]\"]}, null] } },\n \"b24_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[24]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[24]\", \"&TCC_EA_ATOMIC[24]\"]}, null]}},\n \"b24_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[24]\"}, \"&denom\"] }},\n\n \n \"b25_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[25]\", \"&TCC_MISS[25]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[25]\"]}, \n { \"$add\": [\"&TCC_HIT[25]\", \"&TCC_MISS[25]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b25_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[25]\"}, \"&denom\"] } \n },\n \"b25_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[25]\"}, \"&denom\"] } \n },\n \"b25_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[25]\"}, \"&denom\"] } \n },\n \"b25_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[25]\"}, \"&denom\"] } \n },\n \"b25_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[25]\"}, \"&denom\"] } \n },\n \"b25_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[25]\"}, \"&denom\"] } \n },\n \"b25_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[25]\"}, \"&denom\"] } \n },\n \"b25_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[25]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[25]\", \"&TCC_EA_RDREQ[25]\"]}, null] } },\n \"b25_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[25]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[25]\", \"&TCC_EA_WRREQ[25]\"]}, null] } },\n \"b25_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[25]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[25]\", \"&TCC_EA_ATOMIC[25]\"]}, null]}},\n \"b25_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[25]\"}, \"&denom\"] }},\n\n \n \"b26_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[26]\", \"&TCC_MISS[26]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[26]\"]}, \n { \"$add\": [\"&TCC_HIT[26]\", \"&TCC_MISS[26]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b26_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[26]\"}, \"&denom\"] } \n },\n \"b26_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[26]\"}, \"&denom\"] } \n },\n \"b26_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[26]\"}, \"&denom\"] } \n },\n \"b26_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[26]\"}, \"&denom\"] } \n },\n \"b26_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[26]\"}, \"&denom\"] } \n },\n \"b26_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[26]\"}, \"&denom\"] } \n },\n \"b26_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[26]\"}, \"&denom\"] } \n },\n \"b26_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[26]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[26]\", \"&TCC_EA_RDREQ[26]\"]}, null] } },\n \"b26_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[26]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[26]\", \"&TCC_EA_WRREQ[26]\"]}, null] } },\n \"b26_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[26]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[26]\", \"&TCC_EA_ATOMIC[26]\"]}, null]}},\n \"b26_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[26]\"}, \"&denom\"] }},\n\n \n \"b27_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[27]\", \"&TCC_MISS[27]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[27]\"]}, \n { \"$add\": [\"&TCC_HIT[27]\", \"&TCC_MISS[27]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b27_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[27]\"}, \"&denom\"] } \n },\n \"b27_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[27]\"}, \"&denom\"] } \n },\n \"b27_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[27]\"}, \"&denom\"] } \n },\n \"b27_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[27]\"}, \"&denom\"] } \n },\n \"b27_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[27]\"}, \"&denom\"] } \n },\n \"b27_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[27]\"}, \"&denom\"] } \n },\n \"b27_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[27]\"}, \"&denom\"] } \n },\n \"b27_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[27]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[27]\", \"&TCC_EA_RDREQ[27]\"]}, null] } },\n \"b27_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[27]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[27]\", \"&TCC_EA_WRREQ[27]\"]}, null] } },\n \"b27_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[27]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[27]\", \"&TCC_EA_ATOMIC[27]\"]}, null]}},\n \"b27_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[27]\"}, \"&denom\"] }},\n\n \n \"b28_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[28]\", \"&TCC_MISS[28]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[28]\"]}, \n { \"$add\": [\"&TCC_HIT[28]\", \"&TCC_MISS[28]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b28_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[28]\"}, \"&denom\"] } \n },\n \"b28_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[28]\"}, \"&denom\"] } \n },\n \"b28_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[28]\"}, \"&denom\"] } \n },\n \"b28_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[28]\"}, \"&denom\"] } \n },\n \"b28_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[28]\"}, \"&denom\"] } \n },\n \"b28_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[28]\"}, \"&denom\"] } \n },\n \"b28_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[28]\"}, \"&denom\"] } \n },\n \"b28_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[28]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[28]\", \"&TCC_EA_RDREQ[28]\"]}, null] } },\n \"b28_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[28]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[28]\", \"&TCC_EA_WRREQ[28]\"]}, null] } },\n \"b28_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[28]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[28]\", \"&TCC_EA_ATOMIC[28]\"]}, null]}},\n \"b28_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[28]\"}, \"&denom\"] }},\n\n \n \"b29_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[29]\", \"&TCC_MISS[29]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[29]\"]}, \n { \"$add\": [\"&TCC_HIT[29]\", \"&TCC_MISS[29]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b29_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[29]\"}, \"&denom\"] } \n },\n \"b29_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[29]\"}, \"&denom\"] } \n },\n \"b29_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[29]\"}, \"&denom\"] } \n },\n \"b29_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[29]\"}, \"&denom\"] } \n },\n \"b29_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[29]\"}, \"&denom\"] } \n },\n \"b29_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[29]\"}, \"&denom\"] }\n },\n \"b29_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[29]\"}, \"&denom\"] } \n },\n \"b29_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[29]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[29]\", \"&TCC_EA_RDREQ[29]\"]}, null] } },\n \"b29_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[29]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[29]\", \"&TCC_EA_WRREQ[29]\"]}, null] } },\n \"b29_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[29]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[29]\", \"&TCC_EA_ATOMIC[29]\"]}, null]}},\n \"b29_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[29]\"}, \"&denom\"] }},\n\n \n \"b30_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[30]\", \"&TCC_MISS[30]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[30]\"]}, \n { \"$add\": [\"&TCC_HIT[30]\", \"&TCC_MISS[30]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b30_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[30]\"}, \"&denom\"] } \n },\n \"b30_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[30]\"}, \"&denom\"] } \n },\n \"b30_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[30]\"}, \"&denom\"] } \n },\n \"b30_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[30]\"}, \"&denom\"] } \n },\n \"b30_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[30]\"}, \"&denom\"] } \n },\n \"b30_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[30]\"}, \"&denom\"] } \n },\n \"b30_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[30]\"}, \"&denom\"] } \n },\n \"b30_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[30]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[30]\", \"&TCC_EA_RDREQ[30]\"]}, null] } },\n \"b30_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[30]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[30]\", \"&TCC_EA_WRREQ[30]\"]}, null] } },\n \"b30_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[30]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[30]\", \"&TCC_EA_ATOMIC[30]\"]}, null]}},\n \"b30_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[30]\"}, \"&denom\"] }},\n\n \n \"b31_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[31]\", \"&TCC_MISS[31]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[31]\"]}, \n { \"$add\": [\"&TCC_HIT[31]\", \"&TCC_MISS[31]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b31_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[31]\"}, \"&denom\"] } \n },\n \"b31_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[31]\"}, \"&denom\"] } \n },\n \"b31_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[31]\"}, \"&denom\"] } \n },\n \"b31_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[31]\"}, \"&denom\"] } \n },\n \"b31_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[31]\"}, \"&denom\"] } \n },\n \"b31_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[31]\"}, \"&denom\"] } \n },\n \"b31_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[31]\"}, \"&denom\"] }\n },\n \"b31_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[31]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[31]\", \"&TCC_EA_RDREQ[31]\"]}, null] } },\n \"b31_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[31]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[31]\", \"&TCC_EA_WRREQ[31]\"]}, null] } },\n \"b31_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[31]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[31]\", \"&TCC_EA_ATOMIC[31]\"]}, null]}},\n \"b31_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[31]\"}, \"&denom\"] }}\n\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Channel\": \"16\",\n \"Hit Rate\": \"&b16_hitRate\",\n \"Req\": \"&b16_req\",\n \"Read Req\": \"&b16_readReq\",\n \"Write Req\": \"&b16_writeReq\",\n \"AtomicReq\": \"&b16_atomicReq\",\n \"EA Read Req\": \"&b16_eaReadReq\",\n \"EA Write Req\": \"&b16_eaWriteReq\",\n \"EA AtomicReq\": \"&b16_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b16_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b16_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b16_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b16_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b16_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b16_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b16_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b16_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b16_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b16_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"17\",\n \"Hit Rate\": \"&b17_hitRate\",\n \"Req\": \"&b17_req\",\n \"Read Req\": \"&b17_readReq\",\n \"Write Req\": \"&b17_writeReq\",\n \"AtomicReq\": \"&b17_atomicReq\",\n \"EA Read Req\": \"&b17_eaReadReq\",\n \"EA Write Req\": \"&b17_eaWriteReq\",\n \"EA AtomicReq\": \"&b17_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b17_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b17_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b17_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b17_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b17_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b17_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b17_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b17_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b17_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b17_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"18\",\n \"Hit Rate\": \"&b18_hitRate\",\n \"Req\": \"&b18_req\",\n \"Read Req\": \"&b18_readReq\",\n \"Write Req\": \"&b18_writeReq\",\n \"AtomicReq\": \"&b18_atomicReq\",\n \"EA Read Req\": \"&b18_eaReadReq\",\n \"EA Write Req\": \"&b18_eaWriteReq\",\n \"EA AtomicReq\": \"&b18_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b18_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b18_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b18_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b18_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b18_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b18_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b18_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b18_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b18_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b18_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"19\",\n \"Hit Rate\": \"&b19_hitRate\",\n \"Req\": \"&b19_req\",\n \"Read Req\": \"&b19_readReq\",\n \"Write Req\": \"&b19_writeReq\",\n \"AtomicReq\": \"&b19_atomicReq\",\n \"EA Read Req\": \"&b19_eaReadReq\",\n \"EA Write Req\": \"&b19_eaWriteReq\",\n \"EA AtomicReq\": \"&b19_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b19_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b19_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b19_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b19_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b19_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b19_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b19_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b19_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b19_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b19_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"20\",\n \"Hit Rate\": \"&b20_hitRate\",\n \"Req\": \"&b20_req\",\n \"Read Req\": \"&b20_readReq\",\n \"Write Req\": \"&b20_writeReq\",\n \"AtomicReq\": \"&b20_atomicReq\",\n \"EA Read Req\": \"&b20_eaReadReq\",\n \"EA Write Req\": \"&b20_eaWriteReq\",\n \"EA AtomicReq\": \"&b20_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b20_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b20_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b20_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b20_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b20_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b20_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b20_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b20_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b20_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b20_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"21\",\n \"Hit Rate\": \"&b21_hitRate\",\n \"Req\": \"&b21_req\",\n \"Read Req\": \"&b21_readReq\",\n \"Write Req\": \"&b21_writeReq\",\n \"AtomicReq\": \"&b21_atomicReq\",\n \"EA Read Req\": \"&b21_eaReadReq\",\n \"EA Write Req\": \"&b21_eaWriteReq\",\n \"EA AtomicReq\": \"&b21_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b21_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b21_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b21_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b21_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b21_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b21_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b21_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b21_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b21_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b21_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"22\",\n \"Hit Rate\": \"&b22_hitRate\",\n \"Req\": \"&b22_req\",\n \"Read Req\": \"&b22_readReq\",\n \"Write Req\": \"&b22_writeReq\",\n \"AtomicReq\": \"&b22_atomicReq\",\n \"EA Read Req\": \"&b22_eaReadReq\",\n \"EA Write Req\": \"&b22_eaWriteReq\",\n \"EA AtomicReq\": \"&b22_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b22_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b22_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b22_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b22_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b22_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b22_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b22_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b22_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b22_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b22_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"23\",\n \"Hit Rate\": \"&b23_hitRate\",\n \"Req\": \"&b23_req\",\n \"Read Req\": \"&b23_readReq\",\n \"Write Req\": \"&b23_writeReq\",\n \"AtomicReq\": \"&b23_atomicReq\",\n \"EA Read Req\": \"&b23_eaReadReq\",\n \"EA Write Req\": \"&b23_eaWriteReq\",\n \"EA AtomicReq\": \"&b23_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b23_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b23_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b23_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b23_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b23_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b23_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b23_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b23_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b23_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b23_ea_write_stall_too_many\"\n\n\n },\n {\n \"Channel\": \"24\",\n \"Hit Rate\": \"&b24_hitRate\",\n \"Req\": \"&b24_req\",\n \"Read Req\": \"&b24_readReq\",\n \"Write Req\": \"&b24_writeReq\",\n \"AtomicReq\": \"&b24_atomicReq\",\n \"EA Read Req\": \"&b24_eaReadReq\",\n \"EA Write Req\": \"&b24_eaWriteReq\",\n \"EA AtomicReq\": \"&b24_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b24_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b24_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b24_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b24_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b24_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b24_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b24_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b24_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b24_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b24_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"25\",\n \"Hit Rate\": \"&b25_hitRate\",\n \"Req\": \"&b25_req\",\n \"Read Req\": \"&b25_readReq\",\n \"Write Req\": \"&b25_writeReq\",\n \"AtomicReq\": \"&b25_atomicReq\",\n \"EA Read Req\": \"&b25_eaReadReq\",\n \"EA Write Req\": \"&b25_eaWriteReq\",\n \"EA AtomicReq\": \"&b25_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b25_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b25_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b25_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b25_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b25_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b25_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b25_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b25_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b25_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b25_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"26\",\n \"Hit Rate\": \"&b26_hitRate\",\n \"Req\": \"&b26_req\",\n \"Read Req\": \"&b26_readReq\",\n \"Write Req\": \"&b26_writeReq\",\n \"AtomicReq\": \"&b26_atomicReq\",\n \"EA Read Req\": \"&b26_eaReadReq\",\n \"EA Write Req\": \"&b26_eaWriteReq\",\n \"EA AtomicReq\": \"&b26_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b26_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b26_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b26_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b26_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b26_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b26_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b26_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b26_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b26_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b26_ea_write_stall_too_many\"\n\n\n },\n {\n \"Channel\": \"27\",\n \"Hit Rate\": \"&b27_hitRate\",\n \"Req\": \"&b27_req\",\n \"Read Req\": \"&b27_readReq\",\n \"Write Req\": \"&b27_writeReq\",\n \"AtomicReq\": \"&b27_atomicReq\",\n \"EA Read Req\": \"&b27_eaReadReq\",\n \"EA Write Req\": \"&b27_eaWriteReq\",\n \"EA AtomicReq\": \"&b27_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b27_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b27_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b27_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b27_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b27_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b27_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b27_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b27_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b27_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b27_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"28\",\n \"Hit Rate\": \"&b28_hitRate\",\n \"Req\": \"&b28_req\",\n \"Read Req\": \"&b28_readReq\",\n \"Write Req\": \"&b28_writeReq\",\n \"AtomicReq\": \"&b28_atomicReq\",\n \"EA Read Req\": \"&b28_eaReadReq\",\n \"EA Write Req\": \"&b28_eaWriteReq\",\n \"EA AtomicReq\": \"&b28_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b28_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b28_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b28_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b28_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b28_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b28_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b28_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b28_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b28_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b28_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"29\",\n \"Hit Rate\": \"&b29_hitRate\",\n \"Req\": \"&b29_req\",\n \"Read Req\": \"&b29_readReq\",\n \"Write Req\": \"&b29_writeReq\",\n \"AtomicReq\": \"&b29_atomicReq\",\n \"EA Read Req\": \"&b29_eaReadReq\",\n \"EA Write Req\": \"&b29_eaWriteReq\",\n \"EA AtomicReq\": \"&b29_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b29_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b29_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b29_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b29_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b29_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b29_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b29_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b29_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b29_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b29_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"30\",\n \"Hit Rate\": \"&b30_hitRate\",\n \"Req\": \"&b30_req\",\n \"Read Req\": \"&b30_readReq\",\n \"Write Req\": \"&b30_writeReq\",\n \"AtomicReq\": \"&b30_atomicReq\",\n \"EA Read Req\": \"&b30_eaReadReq\",\n \"EA Write Req\": \"&b30_eaWriteReq\",\n \"EA AtomicReq\": \"&b30_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b30_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b30_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b30_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b30_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b30_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b30_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b30_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b30_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b30_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b30_ea_write_stall_too_many\"\n\n },\n {\n \"Channel\": \"31\",\n \"Hit Rate\": \"&b31_hitRate\",\n \"Req\": \"&b31_req\",\n \"Read Req\": \"&b31_readReq\",\n \"Write Req\": \"&b31_writeReq\",\n \"AtomicReq\": \"&b31_atomicReq\",\n \"EA Read Req\": \"&b31_eaReadReq\",\n \"EA Write Req\": \"&b31_eaWriteReq\",\n \"EA AtomicReq\": \"&b31_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b31_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b31_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b31_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b31_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b31_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b31_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b31_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b31_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b31_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b31_ea_write_stall_too_many\"\n\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"$array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"$array\"\n }}\n]);", - "type": "table" - } - ], - "title": "L2 - EA Read Latency (Channel 16-31) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 10, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Lat - cycles", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 81 - }, - "id": 93, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Latency (Channel 0 - 15) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 10, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Lat - cycles", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 81 - }, - "id": 94, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Latency (Channel 16 - 31) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 11, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Atomic Lat - cycles", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 89 - }, - "id": 187, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Atomic Latency (Channel 0 - 15) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 11, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Atomic Lat - cycles", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 89 - }, - "id": 201, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Atomic Latency (Channel 16 - 31) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 12, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - IO", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 97 - }, - "id": 220, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - I/O (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 12, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - IO", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 97 - }, - "id": 227, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - I/O (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 13, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - GMI", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 105 - }, - "id": 221, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - GMI (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 13, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - GMI", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 105 - }, - "id": 228, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - GMI (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 14, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - DRAM", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 113 - }, - "id": 222, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - HBM (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 14, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - DRAM", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 113 - }, - "id": 229, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - HBM (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 15, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - IO", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 121 - }, - "id": 223, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - I/O (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 15, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - IO", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 121 - }, - "id": 230, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - I/O (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 16, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - GMI", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 129 - }, - "id": 225, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - GMI (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 16, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - GMI", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 129 - }, - "id": 231, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - GMI (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 17, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - DRAM", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 137 - }, - "id": 224, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - HBM (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 17, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - DRAM", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 137 - }, - "id": 232, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - HBM (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 18, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - Starve", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 145 - }, - "id": 226, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Starve (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 18, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - Starve", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 145 - }, - "id": 233, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Starve (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "L2 Cache (per Channel)", - "type": "row" - } - ], - "refresh": "", - "schemaVersion": 34, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "current": { - "selected": true, - "text": "\"per Wave\"", - "value": "\"per Wave\"" - }, - "hide": 0, - "includeAll": false, - "label": "Normalization", - "multi": false, - "name": "normUnit", - "options": [ - { - "selected": true, - "text": "\"per Wave\"", - "value": "\"per Wave\"" - }, - { - "selected": false, - "text": "\"per Cycle\"", - "value": "\"per Cycle\"" - }, - { - "selected": false, - "text": "\"per Sec\"", - "value": "\"per Sec\"" - }, - { - "selected": false, - "text": "\"per Kernel\"", - "value": "\"per Kernel\"" - } - ], - "query": "\"per Wave\",\n\"per Cycle\",\n\"per Sec\",\n\"per Kernel\"", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - }, - { - "current": { - "selected": false, - "text": "32", - "value": "32" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&L2Banks\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "L2 Channels", - "multi": false, - "name": "L2Banks", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&L2Banks\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "8", - "value": "8" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSE\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "#SEs", - "multi": false, - "name": "numSE", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSE\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "110", - "value": "110" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numCU\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "#CUs", - "multi": false, - "name": "numCU", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numCU\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "32", - "value": "32" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&maxWavesPerCU\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Max Waves/CU", - "multi": false, - "name": "maxWavesPerCU", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&maxWavesPerCU\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "1700", - "value": "1700" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&sclk\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "SCLK (MHz)", - "multi": false, - "name": "sclk", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&sclk\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "56", - "value": "56" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSQC\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "#SQC", - "multi": false, - "name": "numSQC", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSQC\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "1638.4", - "value": "1638.4" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&hbmBW\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "HBM BW (GB/s)", - "multi": false, - "name": "hbmBW", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&hbmBW\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "miperf_ast_reproducer_swatomics_mi200", - "value": "miperf_ast_reproducer_swatomics_mi200" - }, - "definition": "workload_names.names.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "hide": 0, - "includeAll": false, - "label": "Workload", - "multi": false, - "name": "Workload1", - "options": [], - "query": "workload_names.names.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "1528823703", - "value": "1528823703" - }, - "definition": "$Workload1.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"myAvg\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }, 1000] }, $sclk] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": { \"$round\": [\"&myAvg\", 0] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Kernel Cycles", - "multi": false, - "name": "kernelBusyCycles", - "options": [], - "query": "$Workload1.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"myAvg\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }, 1000] }, $sclk] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": { \"$round\": [\"&myAvg\", 0] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "110", - "value": "110" - }, - "definition": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"theAvg\": {\n \"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&GRBM_GUI_ACTIVE\", 0]},\n {\"$divide\": [{ \"$multiply\": [4, \"&SQ_BUSY_CU_CYCLES\"] }, \"&GRBM_GUI_ACTIVE\"]},\n \"\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": {\"$toInt\": { \"$min\": [{ \"$add\": [{ \"$multiply\": [{ \"$divide\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU] },8] }, { \"$min\": [{ \"$mod\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU] }, 8] }] }, $numCU] }}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"$array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"$array\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Active CUs", - "multi": false, - "name": "numActiveCUs", - "options": [], - "query": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"theAvg\": {\n \"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&GRBM_GUI_ACTIVE\", 0]},\n {\"$divide\": [{ \"$multiply\": [4, \"&SQ_BUSY_CU_CYCLES\"] }, \"&GRBM_GUI_ACTIVE\"]},\n \"\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": {\"$toInt\": { \"$min\": [{ \"$add\": [{ \"$multiply\": [{ \"$divide\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU] },8] }, { \"$min\": [{ \"$mod\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU] }, 8] }] }, $numCU] }}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"$array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"$array\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "definition": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": \"&Index\"\n }},\n {\"$sort\": {\n \"_id\": 1\n }}\n]);", - "description": "Defaults to all DispatchIDs", - "hide": 2, - "includeAll": true, - "label": "Filtered Dispatch ID", - "multi": false, - "name": "DispatchIDFilter", - "options": [], - "query": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": \"&Index\"\n }},\n {\"$sort\": {\n \"_id\": 1\n }}\n]);", - "refresh": 1, - "regex": "${DispatchID:text}", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": "", - "value": "" - }, - "description": "Desired DispatchID filters as regex ex. (1|18)", - "hide": 0, - "label": "Dispatch Filter", - "name": "DispatchID", - "options": [ - { - "selected": true, - "text": "", - "value": "" - } - ], - "query": "", - "skipUrlSync": false, - "type": "textbox" - }, - { - "current": { - "selected": false, - "text": "0", - "value": "0" - }, - "definition": "$Workload1.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&gpu-id\"\n }}\n]);", - "hide": 0, - "includeAll": false, - "label": "GCD", - "multi": false, - "name": "gpuFilter", - "options": [], - "query": "$Workload1.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&gpu-id\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 3, - "type": "query" - }, - { - "current": { - "selected": true, - "text": [ - "All" - ], - "value": [ - "$__all" - ] - }, - "definition": "$Workload1.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&KernelName\"\n }}\n]);", - "hide": 0, - "includeAll": true, - "label": "Kernels", - "multi": true, - "name": "KernelNameFilter", - "options": [], - "query": "$Workload1.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&KernelName\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "miperf_asw_vcopy_mi200", - "value": "miperf_asw_vcopy_mi200" - }, - "definition": "workload_names.names.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "hide": 0, - "includeAll": false, - "label": "Baseline Workload", - "multi": false, - "name": "Workload2", - "options": [], - "query": "workload_names.names.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "84", - "value": "84" - }, - "definition": "$Workload2.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"theAvg\": {\n \"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&GRBM_GUI_ACTIVE\", 0]},\n {\"$divide\": [{ \"$multiply\": [4, \"&SQ_BUSY_CU_CYCLES\"] }, \"&GRBM_GUI_ACTIVE\"]},\n \"\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": {\"$toInt\": { \"$min\": [{ \"$add\": [{ \"$multiply\": [{ \"$divide\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU2] },8] }, { \"$min\": [{ \"$mod\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU2] }, 8] }] }, $numCU2] }}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline ActiveCUs", - "multi": false, - "name": "numActiveCUs2", - "options": [], - "query": "$Workload2.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"theAvg\": {\n \"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&GRBM_GUI_ACTIVE\", 0]},\n {\"$divide\": [{ \"$multiply\": [4, \"&SQ_BUSY_CU_CYCLES\"] }, \"&GRBM_GUI_ACTIVE\"]},\n \"\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": {\"$toInt\": { \"$min\": [{ \"$add\": [{ \"$multiply\": [{ \"$divide\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU2] },8] }, { \"$min\": [{ \"$mod\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU2] }, 8] }] }, $numCU2] }}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "definition": "$Workload2.pmc_perf.aggregate([\n {\"$match\": {\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}}\n }},\n {\"$group\": {\n \"_id\": \"&Index\"\n }},\n {\"$sort\": {\n \"_id\": 1\n }}\n]);", - "description": "Defaults to all DispatchIDs", - "hide": 2, - "includeAll": true, - "label": "Baseline Dispatch IDs", - "multi": false, - "name": "DispatchIDFilter2", - "options": [], - "query": "$Workload2.pmc_perf.aggregate([\n {\"$match\": {\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}}\n }},\n {\"$group\": {\n \"_id\": \"&Index\"\n }},\n {\"$sort\": {\n \"_id\": 1\n }}\n]);", - "refresh": 1, - "regex": "${DispatchID2:text}", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": "", - "value": "" - }, - "description": "Desired DispatchID filters as regex ex. (1|18)", - "hide": 0, - "label": "Baseline Dispatch Filter", - "name": "DispatchID2", - "options": [ - { - "selected": true, - "text": "", - "value": "" - } - ], - "query": "", - "skipUrlSync": false, - "type": "textbox" - }, - { - "current": { - "selected": false, - "text": "0", - "value": "0" - }, - "definition": "$Workload2.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&gpu-id\"\n }}\n]);", - "hide": 0, - "includeAll": false, - "label": "Baseline GCD", - "multi": false, - "name": "gpuFilter2", - "options": [], - "query": "$Workload2.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&gpu-id\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": [ - "All" - ], - "value": [ - "$__all" - ] - }, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "definition": "$Workload2.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&KernelName\"\n }}\n]);", - "hide": 0, - "includeAll": true, - "label": "Baseline Kernels", - "multi": true, - "name": "KernelNameFilter2", - "options": [], - "query": "$Workload2.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&KernelName\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": [ - "System Info" - ], - "value": [ - "System Info" - ] - }, - "hide": 0, - "includeAll": false, - "label": "Comparison Panels", - "multi": true, - "name": "select", - "options": [ - { - "selected": true, - "text": "System Info", - "value": "System Info" - }, - { - "selected": false, - "text": "System Speed-of-Light", - "value": "System Speed-of-Light" - }, - { - "selected": false, - "text": "Roofline", - "value": "Roofline" - }, - { - "selected": false, - "text": "Command Processor", - "value": "Command Processor" - }, - { - "selected": false, - "text": "Shader Processor Input", - "value": "Shader Processor Input" - }, - { - "selected": false, - "text": "Wavefront", - "value": "Wavefront" - }, - { - "selected": false, - "text": "Compute Pipeline", - "value": "Compute Pipeline" - }, - { - "selected": false, - "text": "Instruction Mix", - "value": "Instruction Mix" - }, - { - "selected": false, - "text": "Local Data Share", - "value": "Local Data Share" - }, - { - "selected": false, - "text": "Instruction Cache", - "value": "Instruction Cache" - }, - { - "selected": false, - "text": "Scalar L1D Cache", - "value": "Scalar L1D Cache" - }, - { - "selected": false, - "text": "Texture Addr and Data", - "value": "Texture Addr and Data" - }, - { - "selected": false, - "text": "Vector L1D Cache", - "value": "Vector L1D Cache" - }, - { - "selected": false, - "text": "L2 Cache", - "value": "L2 Cache" - } - ], - "query": "System Info, \nSystem Speed-of-Light, \nRoofline,\nCommand Processor, \nShader Processor Input, \nWavefront,\nCompute Pipeline, \nInstruction Mix,\nLocal Data Share, \nInstruction Cache, \nScalar L1D Cache, \nTexture Addr and Data, \nVector L1D Cache,\nL2 Cache", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - }, - { - "current": { - "selected": false, - "text": "32", - "value": "32" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&L2Banks\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline L2 Channels", - "multi": false, - "name": "L2Banks2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&L2Banks\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "8", - "value": "8" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSE\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline #SEs", - "multi": false, - "name": "numSE2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSE\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "110", - "value": "110" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numCU\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline #CUs", - "multi": false, - "name": "numCU2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numCU\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "32", - "value": "32" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&maxWavesPerCU\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline Max Waves/CU", - "multi": false, - "name": "maxWavesPerCU2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&maxWavesPerCU\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "1700", - "value": "1700" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&sclk\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline SCLK (MHz)", - "multi": false, - "name": "sclk2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&sclk\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "56", - "value": "56" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSQC\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline #SQC", - "multi": false, - "name": "numSQC2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSQC\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "1638.4", - "value": "1638.4" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&hbmBW\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline HBM BW (GB/s)", - "multi": false, - "name": "hbmBW2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&hbmBW\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "mi200", - "value": "mi200" - }, - "definition": "${Workload1}.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "SOC", - "multi": false, - "name": "soc", - "options": [], - "query": "${Workload1}.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": "5", - "value": "5" - }, - "hide": 0, - "includeAll": false, - "multi": false, - "name": "TopN", - "options": [ - { - "selected": false, - "text": "1", - "value": "1" - }, - { - "selected": true, - "text": "5", - "value": "5" - }, - { - "selected": false, - "text": "10", - "value": "10" - }, - { - "selected": false, - "text": "15", - "value": "15" - }, - { - "selected": false, - "text": "20", - "value": "20" - }, - { - "selected": false, - "text": "50", - "value": "50" - }, - { - "selected": false, - "text": "100", - "value": "100" - } - ], - "query": "1,5,10,15,20,50,100", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - } - ] - }, - "time": { - "from": "2021-11-04T14:21:39.749Z", - "to": "2021-11-08T14:21:39.749Z" - }, - "timepicker": {}, - "timezone": "", - "title": "rocprofiler-compute_v1.0.5_pub", - "uid": "MIPerf_v1_0_0630202211", - "version": 3, - "weekStart": "" -} diff --git a/projects/rocprofiler-compute/grafana/dashboards/RocProfCompute_v1.0.7_pub.json b/projects/rocprofiler-compute/grafana/dashboards/RocProfCompute_v1.0.7_pub.json deleted file mode 100644 index 399488c482..0000000000 --- a/projects/rocprofiler-compute/grafana/dashboards/RocProfCompute_v1.0.7_pub.json +++ /dev/null @@ -1,13325 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 0, - "id": 42, - "iteration": 1674838967359, - "links": [], - "liveNow": false, - "panels": [ - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 217, - "panels": [ - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [] - }, - "gridPos": { - "h": 23, - "w": 13, - "x": 0, - "y": 1 - }, - "id": 159, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.sysinfo.aggregate([\n {\"$project\": {\n \"_id\": 0,\n \"date\":1,\n \"command\": 1,\n \"host_name\": 1,\n \"host_cpu\": 1,\n \"host_distro\": 1,\n \"host_kernel\": 1,\n \"host_rocmver\": 1,\n \"gpu_soc\": 1,\n \"name\": 1,\n \"numSE\": 1,\n \"numSQC\": 1,\n \"numCU\": 1,\n \"numSIMD\": 1,\n \"waveSize\": 1,\n \"maxWavesPerCU\": 1,\n \"maxWorkgroupSize\":1,\n \"L1\":1,\n \"L2\":1,\n \"L2Banks\": 1,\n \"sclk\":1,\n \"mclk\":1,\n \"cur_sclk\": 1,\n \"cur_mclk\":1,\n \"hbmBW\":1\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\":\"Date\",\n \"Value\": \"&date\"\n },\n {\n \"Metric\":\"App Command\",\n \"Value\": \"&command\"\n },\n {\n \"Metric\":\"Host Name\",\n \"Value\": \"&host_name\"\n },\n {\n \"Metric\":\"Host CPU\",\n \"Value\": \"&host_cpu\"\n },\n {\n \"Metric\":\"Host Distro\",\n \"Value\": \"&host_distro\"\n },\n {\n \"Metric\":\"Host Kernel\",\n \"Value\": \"&host_kernel\"\n },\n {\n \"Metric\":\"ROCm Version\",\n \"Value\": \"&host_rocmver\"\n },\n {\n \"Metric\":\"GFX SoC\",\n \"Value\": \"&name\"\n },\n {\n \"Metric\":\"GFX ID\",\n \"Value\": \"&gpu_soc\"\n },\n {\n \"Metric\":\"Total SEs\",\n \"Value\":\"&numSE\"\n },\n {\n \"Metric\":\"Total SQCs\",\n \"Value\":\"&numSQC\"\n },\n {\n\n \"Metric\":\"Total CUs\",\n \"Value\":\"&numCU\"\n },\n {\n \"Metric\":\"SIMDs/CU\",\n \"Value\": \"&numSIMD\"\n },\n {\n \"Metric\":\"Max Wavefronts Occupancy Per CU\",\n \"Value\":\"&maxWavesPerCU\"\n },\n {\n \"Metric\":\"Max Workgroup Size\",\n \"Value\":\"&maxWorkgroupSize\"\n },\n {\n \"Metric\":\"L1Cache per CU (KB)\",\n \"Value\":\"&L1\"\n },\n {\n \"Metric\":\"L2Cache (KB)\",\n \"Value\":\"&L2\"\n },\n {\n \"Metric\":\"L2Cache Channels\",\n \"Value\":\"&L2Banks\"\n },\n {\n \"Metric\":\"Sys Clock (Max) - MHz\",\n \"Value\":\"&sclk\"\n \n },\n {\n \"Metric\":\"Memory Clock (Max) - MHz\",\n \"Value\":\"&mclk\"\n },\n {\n \"Metric\":\"Sys Clock (Cur) - MHz\",\n \"Value\":\"&cur_sclk\"\n \n },\n {\n \"Metric\":\"Memory Clock (Cur) - MHz\",\n \"Value\":\"&cur_mclk\"\n },\n {\n \"Metric\":\"HBM Bandwidth - GB/s\",\n \"Value\":\"&hbmBW\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.sysinfo.aggregate([\n {\"$match\": {\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(System Info)\"}}\n }},\n\n {\"$project\": {\n \"_id\": 0,\n \"date\":1,\n \"command\": 1,\n \"host_name\": 1,\n \"host_cpu\": 1,\n \"host_distro\": 1,\n \"host_kernel\": 1,\n \"host_rocmver\": 1,\n \"gpu_soc\": 1,\n \"name\": 1,\n \"numSE\": 1,\n \"numSQC\": 1,\n \"numCU\": 1,\n \"numSIMD\": 1,\n \"waveSize\": 1,\n \"maxWavesPerCU\": 1,\n \"maxWorkgroupSize\":1,\n \"L1\":1,\n \"L2\":1,\n \"L2Banks\": 1,\n \"sclk\":1,\n \"mclk\":1,\n \"cur_sclk\": 1,\n \"cur_mclk\":1,\n \"hbmBW\":1\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\":\"Date\",\n \"Value\": \"&date\"\n },\n {\n \"Metric\":\"App Command\",\n \"Value\": \"&command\"\n },\n {\n \"Metric\":\"Host Name\",\n \"Value\": \"&host_name\"\n },\n {\n \"Metric\":\"Host CPU\",\n \"Value\": \"&host_cpu\"\n },\n {\n \"Metric\":\"Host Distro\",\n \"Value\": \"&host_distro\"\n },\n {\n \"Metric\":\"Host Kernel\",\n \"Value\": \"&host_kernel\"\n },\n {\n \"Metric\":\"ROCm Version\",\n \"Value\": \"&host_rocmver\"\n },\n {\n \"Metric\":\"GFX SoC\",\n \"Value\": \"&name\"\n },\n {\n \"Metric\":\"GFX ID\",\n \"Value\": \"&gpu_soc\"\n },\n {\n \"Metric\":\"Total SEs\",\n \"Value\":\"&numSE\"\n },\n {\n \"Metric\":\"Total SQCs\",\n \"Value\":\"&numSQC\"\n },\n {\n\n \"Metric\":\"Total CUs\",\n \"Value\":\"&numCU\"\n },\n {\n \"Metric\":\"SIMDs/CU\",\n \"Value\": \"&numSIMD\"\n },\n {\n \"Metric\":\"Max Wavefronts Occupancy Per CU\",\n \"Value\":\"&maxWavesPerCU\"\n },\n {\n \"Metric\":\"Max Workgroup Size\",\n \"Value\":\"&maxWorkgroupSize\"\n },\n {\n \"Metric\":\"L1Cache per CU (KB)\",\n \"Value\":\"&L1\"\n },\n {\n \"Metric\":\"L2Cache (KB)\",\n \"Value\":\"&L2\"\n },\n {\n \"Metric\":\"L2Cache Channels\",\n \"Value\":\"&L2Banks\"\n },\n {\n \"Metric\":\"Sys Clock (Max) - MHz\",\n \"Value\":\"&sclk\"\n \n },\n {\n \"Metric\":\"Memory Clock (Max) - MHz\",\n \"Value\":\"&mclk\"\n },\n {\n \"Metric\":\"Sys Clock (Cur) - MHz\",\n \"Value\":\"&cur_sclk\"\n \n },\n {\n \"Metric\":\"Memory Clock (Cur) - MHz\",\n \"Value\":\"&cur_mclk\"\n },\n {\n \"Metric\":\"HBM Bandwidth - GB/s\",\n \"Value\":\"&hbmBW\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "System Info", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true - }, - "indexByName": {}, - "renameByName": { - "Value 1": "Current", - "Value 2": "Baseline" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "System Info", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 1 - }, - "id": 108, - "panels": [ - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto", - "filterable": false - }, - "decimals": 0, - "links": [], - "mappings": [ - { - "options": { - "match": "false", - "result": { - "index": 0 - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text" - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Percent of Peak - PoP" - }, - "properties": [ - { - "id": "unit", - "value": "percent" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "transparent" - }, - { - "color": "orange", - "value": 50 - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - { - "id": "custom.displayMode", - "value": "color-background" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.displayMode", - "value": "color-text" - }, - { - "id": "custom.width", - "value": 252 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit 1" - }, - "properties": [ - { - "id": "custom.displayMode", - "value": "color-background" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 137 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 110 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 125 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg" - }, - "properties": [ - { - "id": "custom.width", - "value": 161 - } - ] - } - ] - }, - "gridPos": { - "h": 29, - "w": 15, - "x": 0, - "y": 2 - }, - "id": 110, - "interval": "2h", - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"valu_flops_val\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }] }] }\n ]}\n ,{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }]\n }},\n \n \"valu_intOps_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] }] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n },\n \n \"mfma_flops_f16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_bf16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f32_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f64_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_i8_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \n \n \"salu_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU] }] }\n },\n \n \"valu_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU] }] }\n },\n \n \"mfma_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU, 4] }] }\n },\n\n \n \"lds_bconf\": {\n \"$avg\": {\"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n } \n },\n \n \n \"lds_bw\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]}, \n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]}\n },\n \n \"lds_bw_pop\": {\n \"$avg\": {\"$divide\": [\n {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]}, \n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]}, \n {\"$multiply\": [$sclk, $numCU, 0.00128]}\n ]}\n },\n \n \"unpredthreads_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \n \"ipcIssue_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\", \"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"eaWriteLat_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\" , 0]},\n { \"$divide\": [\"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\"] },\n null \n ]\n }\n },\n \"eaReadLat_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\" , 0]},\n { \"$divide\": [\"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\"] },\n null \n ]\n }\n },\n \"eaWriteBW_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64] }, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n }, \n \"eaReadBW_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32] }, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] }] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n },\n \"l2_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }, 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }] },\n null \n ]\n }\n },\n \"vecl1_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]},\n { \"$subtract\": [100, { \"$divide\": [{ \"$multiply\": [100, { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }] }, \"&TCP_TOTAL_CACHE_ACCESSES_sum\"] }] },\n null\n ]\n }\n },\n \"vecl1_BW_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \"l1k_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\"]} , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\"]}] },\n null\n ]\n }\n },\n \"l1i_hitRate_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\"]}] }\n },\n \"l1i_BW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQC_ICACHE_REQ\",{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }, 64] }\n },\n \"l1k_BW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQC_DCACHE_REQ\", { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }, 64] }\n }\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"VALU FLOPs\",\n \"Value\": \"&valu_flops_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 64, 2 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&valu_flops_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 64, 2 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"VALU IOPs\",\n \"Value\": \"&valu_intOps_val\",\n \"Unit\": \"GIOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 64, 2 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&valu_intOps_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 64, 2 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (BF16)\",\n \"Value\": \"&mfma_flops_bf16_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 512 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_bf16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 512 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F16)\",\n \"Value\": \"&mfma_flops_f16_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 1024 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 1024 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F32)\",\n \"Value\": \"&mfma_flops_f32_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 256 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f32_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 256 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F64)\",\n \"Value\": \"&mfma_flops_f64_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 256 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f64_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 256 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA IOPs (Int8)\",\n \"Value\": \"&mfma_flops_i8_val\",\n \"Unit\": \"GIOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 1024 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_i8_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 1024 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"Active CUs\",\n \"Value\": $numActiveCUs,\n \"Unit\": \"CUs\",\n \"peak\": $numCU,\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, $numActiveCUs] }, $numCU]}\n },\n \n {\n \"Metric\": \"SALU Util\",\n \"Value\": \"&salu_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&salu_val\"\n },\n {\n \"Metric\": \"VALU Util\",\n \"Value\": \"&valu_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&valu_val\"\n },\n {\n \"Metric\": \"MFMA Util\",\n \"Value\": \"&mfma_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&mfma_val\"\n },\n {\n \"Metric\": \"VALU Active Threads/Wave\",\n \"Value\": \"&unpredthreads_val\",\n \"Unit\": \"Threads\",\n \"peak\": 64,\n \"Percent of Peak - PoP\": { \"$multiply\": [\"&unpredthreads_val\", 1.5625]}\n },\n {\n \"Metric\": \"IPC - Issue\",\n \"Value\": \"&ipcIssue_val\",\n \"Unit\": \"Instr/cycle\",\n \"peak\": 5,\n \"Percent of Peak - PoP\": {\"$divide\": [{ \"$multiply\": [100, \"&ipcIssue_val\"] }, 5] }\n },\n {\n \"Metric\": \"LDS BW\",\n \"Value\": \"&lds_bw\",\n \"Unit\": \"GB/sec\",\n \"peak\": {\"$multiply\": [$sclk, $numCU, 0.128]},\n \"Percent of Peak - PoP\": \"&lds_bw_pop\"\n },\n {\n \"Metric\": \"LDS Bank Conflict\",\n \"Value\": \"&lds_bconf\",\n \"Unit\": \"Conflicts/access\",\n \"peak\": \"32\",\n \"Percent of Peak - PoP\": {\"$divide\": [{ \"$multiply\": [100, \"&lds_bconf\"] }, 32] }\n },\n {\n \"Metric\": \"Instr Cache Hit Rate\",\n \"Value\": \"&l1i_hitRate_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l1i_hitRate_val\"\n }, \n {\n \"Metric\": \"Instr Cache BW\",\n \"Value\": \"&l1i_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numSQC]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&l1i_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numSQC]}] }\n },\n {\n \"Metric\": \"Scalar L1D Cache Hit Rate\",\n \"Value\": \"&l1k_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l1k_cacheHits_val\"\n },\n {\n \"Metric\": \"Scalar L1D Cache BW\",\n \"Value\": \"&l1k_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numSQC]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&l1k_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numSQC]}] }\n },\n\n {\n \"Metric\": \"Vector L1D Cache Hit Rate\",\n \"Value\": \"&vecl1_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&vecl1_cacheHits_val\"\n },\n {\n \"Metric\": \"Vector L1D Cache BW\",\n \"Value\": \"&vecl1_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numCU]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&vecl1_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numCU]}] }\n },\n {\n \"Metric\": \"L2 Cache Hit Rate\",\n \"Value\": \"&l2_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l2_cacheHits_val\"\n },\n {\n \"Metric\": \"L2-Fabric Read BW\",\n \"Value\": \"&eaReadBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": \"$hbmBW\",\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&eaReadBW_val\"] }, $hbmBW] }\n },\n {\n \"Metric\": \"L2-Fabric Write BW\",\n \"Value\": \"&eaWriteBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": \"$hbmBW\",\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&eaWriteBW_val\"] }, $hbmBW] }\n },\n {\n \"Metric\": \"L2-Fabric Read Latency\",\n \"Value\": \"&eaReadLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n },\n {\n \"Metric\": \"L2-Fabric Write Latency\",\n \"Value\": \"&eaWriteLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_LEVEL_WAVES\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"waveOcc_val\": {\n \"$avg\": { \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\"] }\n },\n \"waveOcc_pop\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\"] },{ \"$multiply\": [$maxWavesPerCU, $numCU] }] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave Occupancy\",\n \"Value\": \"&waveOcc_val\",\n \"Unit\": \"Wavefronts\",\n \"peak\": { \"$multiply\": [$maxWavesPerCU, $numCU] },\n \"Percent of Peak - PoP\": { \"$multiply\": [100, \"&waveOcc_pop\"] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n ]\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_IFETCH_LEVEL\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"instrFetchBW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQ_IFETCH\", { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }, 32] }\n },\n \"instrFetchLat_val\": {\n \"$avg\": { \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\"] }\n }\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Instr Fetch BW\",\n \"Value\": \"&instrFetchBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 32] }, $numSQC]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&instrFetchBW_val\"]}, { \"$multiply\": [$numSQC, { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 32] }] }] }\n },\n {\n \"Metric\": \"Instr Fetch Latency\",\n \"Value\": \"&instrFetchLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n ]\n }}\n\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"System Speed-of-Light\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"valu_flops_val\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }] }] }\n ]}\n ,{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }]\n }},\n \n \"valu_intOps_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] }] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n },\n \n \"mfma_flops_f16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_bf16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f32_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f64_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_i8_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \n \n \"salu_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2] }] }\n },\n \n \"valu_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2] }] }\n },\n \n \"mfma_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2, 4] }] }\n },\n \n \"lds_bconf\": {\n \"$avg\": {\"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n } \n },\n \n \"lds_bw\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks2\"}\n ]}, \n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]}\n },\n \n \"lds_bw_pop\": {\n \"$avg\": {\"$divide\": [\n {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks2\"}\n ]}, \n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]}, \n {\"$multiply\": [$sclk2, $numCU2, 0.00128]}\n ]}\n },\n \n \"unpredthreads_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \n \"ipcIssue_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\", \"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"eaWriteLat_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\" , 0]},\n { \"$divide\": [\"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\"] },\n null \n ]\n }\n },\n \"eaReadLat_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\" , 0]},\n { \"$divide\": [\"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\"] },\n null \n ]\n }\n },\n \"eaWriteBW_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64] }, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n }, \n \"eaReadBW_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32] }, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] }] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n },\n \"l2_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }, 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }] },\n null \n ]\n }\n },\n \"vecl1_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]},\n { \"$subtract\": [100, { \"$divide\": [{ \"$multiply\": [100, { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }] }, \"&TCP_TOTAL_CACHE_ACCESSES_sum\"] }] },\n null\n ]\n }\n },\n \"vecl1_BW_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \"l1k_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\"]} , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\"]}] },\n null\n ]\n }\n },\n \"l1i_hitRate_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\"]}] }\n },\n \"l1i_BW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQC_ICACHE_REQ\",{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }, 64] }\n },\n \"l1k_BW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQC_DCACHE_REQ\", { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }, 64] }\n }\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"VALU FLOPs\",\n \"Value\": \"&valu_flops_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 64, 2 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&valu_flops_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 64, 2 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"VALU IOPs\",\n \"Value\": \"&valu_intOps_val\",\n \"Unit\": \"GIOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 64, 2 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&valu_intOps_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 64, 2 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (BF16)\",\n \"Value\": \"&mfma_flops_bf16_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 512 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_bf16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 512 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F16)\",\n \"Value\": \"&mfma_flops_f16_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 1024 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 1024 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F32)\",\n \"Value\": \"&mfma_flops_f32_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 256 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f32_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 256 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F64)\",\n \"Value\": \"&mfma_flops_f64_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 256 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f64_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 256 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA IOPs (Int8)\",\n \"Value\": \"&mfma_flops_i8_val\",\n \"Unit\": \"GIOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 1024 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_i8_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 1024 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"Active CUs\",\n \"Value\": $numActiveCUs2,\n \"Unit\": \"CUs\",\n \"peak\": $numCU2,\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, $numActiveCUs2] }, $numCU2]}\n },\n \n {\n \"Metric\": \"SALU Util\",\n \"Value\": \"&salu_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&salu_val\"\n },\n {\n \"Metric\": \"VALU Util\",\n \"Value\": \"&valu_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&valu_val\"\n },\n {\n \"Metric\": \"MFMA Util\",\n \"Value\": \"&mfma_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&mfma_val\"\n },\n {\n \"Metric\": \"VALU Active Threads/Wave\",\n \"Value\": \"&unpredthreads_val\",\n \"Unit\": \"Threads\",\n \"peak\": 64,\n \"Percent of Peak - PoP\": { \"$multiply\": [\"&unpredthreads_val\", 1.5625]}\n },\n {\n \"Metric\": \"IPC - Issue\",\n \"Value\": \"&ipcIssue_val\",\n \"Unit\": \"Instr/cycle\",\n \"peak\": 5,\n \"Percent of Peak - PoP\": {\"$divide\": [{ \"$multiply\": [100, \"&ipcIssue_val\"] }, 5] }\n },\n {\n \"Metric\": \"LDS BW\",\n \"Value\": \"&lds_bw\",\n \"Unit\": \"GB/sec\",\n \"peak\": {\"$multiply\": [$sclk2, $numCU2, 0.128]},\n \"Percent of Peak - PoP\": \"&lds_bw_pop\"\n },\n {\n \"Metric\": \"LDS Bank Conflict\",\n \"Value\": \"&lds_bconf\",\n \"Unit\": \"Conflicts/access\",\n \"peak\": \"32\",\n \"Percent of Peak - PoP\": {\"$divide\": [{ \"$multiply\": [100, \"&lds_bconf\"] }, 32] }\n },\n {\n \"Metric\": \"Instr Cache Hit Rate\",\n \"Value\": \"&l1i_hitRate_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l1i_hitRate_val\"\n }, \n {\n \"Metric\": \"Instr Cache BW\",\n \"Value\": \"&l1i_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numSQC2]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&l1i_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numSQC2]}] }\n },\n {\n \"Metric\": \"Scalar L1D Cache Hit Rate\",\n \"Value\": \"&l1k_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l1k_cacheHits_val\"\n },\n {\n \"Metric\": \"Scalar L1D Cache BW\",\n \"Value\": \"&l1k_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numSQC2]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&l1k_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numSQC2]}] }\n },\n\n {\n \"Metric\": \"Vector L1D Cache Hit Rate\",\n \"Value\": \"&vecl1_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&vecl1_cacheHits_val\"\n },\n {\n \"Metric\": \"Vector L1D Cache BW\",\n \"Value\": \"&vecl1_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numCU2]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&vecl1_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numCU2]}] }\n },\n {\n \"Metric\": \"L2 Cache Hit Rate\",\n \"Value\": \"&l2_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l2_cacheHits_val\"\n }, \n {\n \"Metric\": \"L2-Fabric Read BW\",\n \"Value\": \"&eaReadBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": \"$hbmBW2\",\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&eaReadBW_val\"] }, $hbmBW2] }\n },\n {\n \"Metric\": \"L2-Fabric Write BW\",\n \"Value\": \"&eaWriteBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": \"$hbmBW2\",\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&eaWriteBW_val\"] }, $hbmBW2] }\n },\n {\n \"Metric\": \"L2-Fabric Read Latency\",\n \"Value\": \"&eaReadLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n },\n {\n \"Metric\": \"L2-Fabric Write Latency\",\n \"Value\": \"&eaWriteLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n }\n \n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_LEVEL_WAVES\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"System Speed-of-Light\"}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"waveOcc_val\": {\n \"$avg\": { \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\"] }\n },\n \"waveOcc_pop\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\"] },{ \"$multiply\": [$maxWavesPerCU2, $numCU2] }] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave Occupancy\",\n \"Value\": \"&waveOcc_val\",\n \"Unit\": \"Wavefronts\",\n \"peak\": { \"$multiply\": [$maxWavesPerCU2, $numCU2] },\n \"Percent of Peak - PoP\": { \"$multiply\": [100, \"&waveOcc_pop\"] }\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n ]\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_IFETCH_LEVEL\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"System Speed-of-Light\"}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"instrFetchBW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQ_IFETCH\", { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }, 32] }\n },\n \"instrFetchLat_val\": {\n \"$avg\": { \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\"] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Instr Fetch BW\",\n \"Value\": \"&instrFetchBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 32] }, $numSQC2]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&instrFetchBW_val\"]}, { \"$multiply\": [$numSQC2, { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 32] }] }] }\n },\n {\n \"Metric\": \"Instr Fetch Latency\",\n \"Value\": \"&instrFetchLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]\n }}\n\n ]);", - "type": "table" - } - ], - "title": "Speed of Light", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Metric 1": 0, - "Metric 2": 7, - "Percent of Peak - PoP 1": 5, - "Percent of Peak - PoP 2": 6, - "Unit 1": 8, - "Unit 2": 9, - "Value 1": 1, - "Value 2": 2, - "peak 1": 3, - "peak 2": 4 - }, - "renameByName": { - "Percent of Peak - PoP": "Pct-of-Peak", - "Percent of Peak - PoP 1": "Pct-of-Peak (Current)", - "Percent of Peak - PoP 2": "Pct-of-Peak (Baseline)", - "Unit": "", - "Value": "Avg", - "Value 1": "Avg (Current)", - "Value 2": "Avg (Baseline)", - "peak": "Theoretical Max", - "peak 1": "Theoretical Max (Current)", - "peak 2": "Theoretical Max (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Dispatch ID" - }, - "properties": [ - { - "id": "custom.width", - "value": 126 - } - ] - } - ] - }, - "gridPos": { - "h": 29, - "w": 4, - "x": 16, - "y": 2 - }, - "id": 175, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Dispatch ID\": \"&Index\",\n \"Kernel Name\": \"&KernelName\"\n }},\n {\"$sort\": {\n \"Dispatch ID\": 1\n }}\n],\n{ allowDiskUse: true }\n);", - "type": "table" - } - ], - "title": "Dispatch IDs - Current", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": {}, - "renameByName": { - "_id": "Dispatch ID" - } - } - } - ], - "type": "table" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Dispatch ID" - }, - "properties": [ - { - "id": "custom.width", - "value": 127 - } - ] - } - ] - }, - "gridPos": { - "h": 29, - "w": 4, - "x": 20, - "y": 2 - }, - "id": 215, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "tlh8EwUnk" - }, - "rawQuery": true, - "refId": "A", - "target": "$Workload2.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Dispatch ID\": \"&Index\",\n \"Kernel Name\": \"&KernelName\"\n }},\n {\"$sort\": {\n \"Dispatch ID\": 1\n }}\n]);", - "type": "table" - } - ], - "title": "Dispatch IDs - Baseline", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": {}, - "renameByName": { - "_id": "Dispatch ID" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "System Speed-of-Light", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 2 - }, - "id": 36, - "panels": [ - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "fillOpacity": 80, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineWidth": 1 - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - } - ] - }, - "unit": "µs" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 24, - "x": 0, - "y": 3 - }, - "id": 157, - "options": { - "bucketOffset": 0, - "legend": { - "calcs": [], - "displayMode": "hidden", - "placement": "bottom" - } - }, - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "u5Z2zJhnk" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"elapsedTime1\": {\n \"$divide\": [{\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}, 1000]\n }\n }},\n\n {\"$project\": {\n \"_id\": 0,\n \"elapsedTime1\": 1\n }}\n]);", - "type": "table" - } - ], - "title": "Kernel Time Histogram", - "transparent": true, - "type": "histogram" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "transparent" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "TotalDuration" - }, - "properties": [ - { - "id": "unit", - "value": "ns" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg Duration" - }, - "properties": [ - { - "id": "unit", - "value": "ns" - }, - { - "id": "custom.width", - "value": 107 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "LDS" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 110 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L1 Cache" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 95 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2 Cache" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 123 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "HBM BW " - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Calls" - }, - "properties": [ - { - "id": "custom.width", - "value": 69 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Name" - }, - "properties": [ - { - "id": "custom.width", - "value": 165 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Total Duration" - }, - "properties": [ - { - "id": "custom.width", - "value": 126 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F16)" - }, - "properties": [ - { - "id": "custom.width", - "value": 143 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (BF16)" - }, - "properties": [ - { - "id": "custom.width", - "value": 155 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F32)" - }, - "properties": [ - { - "id": "custom.width", - "value": 146 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F64)" - }, - "properties": [ - { - "id": "custom.width", - "value": 146 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Throughput" - }, - "properties": [ - { - "id": "unit", - "value": "gflops" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Total FLOPs" - }, - "properties": [ - { - "id": "decimals", - "value": 0 - }, - { - "id": "custom.width", - "value": 141 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "VALU FLOPs" - }, - "properties": [ - { - "id": "decimals", - "value": 0 - }, - { - "id": "custom.width", - "value": 130 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (HBM)" - }, - "properties": [ - { - "id": "custom.width", - "value": 89 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (L2 Cache)" - }, - "properties": [ - { - "id": "custom.width", - "value": 103 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (L1 Cache)" - }, - "properties": [ - { - "id": "custom.width", - "value": 114 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Performance" - }, - "properties": [ - { - "id": "custom.width", - "value": 144 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Peak FLOPs" - }, - "properties": [ - { - "id": "unit", - "value": "gflops" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "HBM" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - } - ] - } - ] - }, - "gridPos": { - "h": 12, - "w": 24, - "x": 0, - "y": 12 - }, - "id": 213, - "interval": "2h", - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [ - { - "desc": true, - "displayName": "L1 Cache (Bytes)" - } - ] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "HV80ot2nz" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n { \"$group\": { \n \"_id\": \"&KernelName\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n\n \"Throughput\": {\n \"$avg\": { \"$divide\": [\n \n {\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]},\n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]}\n },\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"LDS_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 128 ]} \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n },\n \"hbm_bw\": {\n \"$avg\": {\n \"$divide\": [\n {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n },\n {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}\n ]\n\n }\n }\n\n }},\n \n {\"$sort\": { \"TotalDuration\": -1 }},\n \n { \"$limit\": $TopN },\n\n {\"$addFields\": {\n \"ai_L1\": { \"$cond\": [\n {\"$ne\": [\"&L1cache_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"]},\n \"\"\n ]},\n \"ai_L2\": { \"$cond\": [\n {\"$ne\": [\"&L2cache_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"]},\n \"\"\n ]},\n \"ai_hbm\": { \"$cond\": [\n {\"$ne\": [\"&hbm_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"]},\n \"\"\n ]}\n }}\n]);", - "type": "table" - } - ], - "title": "Top Kernels", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "AvgDuration": 5, - "Calls": 1, - "L1cache_data": 16, - "L2cache_data": 17, - "LDS_data": 15, - "Throughput": 2, - "TotalDuration": 4, - "_id": 0, - "ai_L1": 6, - "ai_L2": 7, - "ai_hbm": 8, - "hbm_bw": 3, - "hbm_data": 18, - "mfma_flops_bf16": 12, - "mfma_flops_f16": 11, - "mfma_flops_f32": 13, - "mfma_flops_f64": 14, - "total_flops": 9, - "valu_flops": 10 - }, - "renameByName": { - "AvgDuration": "Avg Duration", - "Calls": "", - "L1cache_data": "Vector L1D Cache", - "L2cache_data": "L2 Cache", - "LDS_data": "LDS", - "Throughput": "Performance", - "TotalDuration": "Total Duration", - "_id": "Name", - "ai_L1": "AI (Vector L1D Cache)", - "ai_L2": "AI (L2 Cache)", - "ai_hbm": "AI (HBM)", - "hbm_bw": "HBM BW ", - "hbm_data": "HBM", - "mfma_flops_bf16": "MFMA FLOPs (BF16)", - "mfma_flops_f16": "MFMA FLOPs (F16)", - "mfma_flops_f32": "MFMA FLOPs (F32)", - "mfma_flops_f64": "MFMA FLOPs (F64)", - "peak_flops": "Peak FLOPs", - "total_flops": "Total FLOPs", - "valu_flops": "VALU FLOPs" - } - } - } - ], - "type": "table" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "transparent" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "TotalDuration" - }, - "properties": [ - { - "id": "unit", - "value": "ns" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg Duration" - }, - "properties": [ - { - "id": "unit", - "value": "ns" - }, - { - "id": "custom.width", - "value": 138 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "LDS " - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 110 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L1 Cache" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 95 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2 Cache" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 87 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "HBM BW " - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Calls" - }, - "properties": [ - { - "id": "custom.width", - "value": 69 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Name" - }, - "properties": [ - { - "id": "custom.width", - "value": 165 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Total Duration" - }, - "properties": [ - { - "id": "custom.width", - "value": 153 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F16)" - }, - "properties": [ - { - "id": "custom.width", - "value": 143 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (BF16)" - }, - "properties": [ - { - "id": "custom.width", - "value": 155 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F32)" - }, - "properties": [ - { - "id": "custom.width", - "value": 146 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F64)" - }, - "properties": [ - { - "id": "custom.width", - "value": 146 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Throughput" - }, - "properties": [ - { - "id": "unit", - "value": "gflops" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Total FLOPs" - }, - "properties": [ - { - "id": "decimals", - "value": 0 - }, - { - "id": "custom.width", - "value": 141 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "VALU FLOPs" - }, - "properties": [ - { - "id": "decimals", - "value": 0 - }, - { - "id": "custom.width", - "value": 130 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (HBM)" - }, - "properties": [ - { - "id": "custom.width", - "value": 89 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (L2 Cache)" - }, - "properties": [ - { - "id": "custom.width", - "value": 103 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (L1 Cache)" - }, - "properties": [ - { - "id": "custom.width", - "value": 114 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "LDS (Bytes)" - }, - "properties": [ - { - "id": "custom.width", - "value": 98 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "HBM" - }, - "properties": [ - { - "id": "custom.width", - "value": 124 - }, - { - "id": "unit", - "value": "decbytes" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Dispatch" - }, - "properties": [ - { - "id": "custom.width", - "value": 108 - } - ] - } - ] - }, - "gridPos": { - "h": 12, - "w": 24, - "x": 0, - "y": 24 - }, - "id": 251, - "interval": "2h", - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "HV80ot2nz" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n { \"$group\": { \n \"_id\": \"&Index\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n\n \"Throughput\": {\n \"$avg\": { \"$divide\": [\n \n {\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]},\n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]}\n },\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"LDS_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 128]\n } \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n },\n\n \"hbm_bw\": {\n \"$avg\": {\n \"$divide\": [\n {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n },\n {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}\n ]\n\n }\n }\n\n }},\n \n {\"$sort\": { \"TotalDuration\": -1 }},\n { \"$limit\": $TopN },\n\n {\"$addFields\": {\n \"ai_L1\": { \"$cond\": [\n {\"$ne\": [\"&L1cache_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"]},\n \"\"\n ]},\n \"ai_L2\": { \"$cond\": [\n {\"$ne\": [\"&L2cache_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"]},\n \"\"\n ]},\n \"ai_hbm\": { \"$cond\": [\n {\"$ne\": [\"&hbm_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"]},\n \"\"\n ]}\n\n }}\n]);", - "type": "table" - } - ], - "title": "Top Dispatches", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "AvgDuration": 5, - "Calls": 1, - "L1cache_data": 16, - "L2cache_data": 17, - "LDS_data": 15, - "Throughput": 2, - "TotalDuration": 4, - "_id": 0, - "ai_L1": 6, - "ai_L2": 7, - "ai_hbm": 8, - "hbm_bw": 3, - "hbm_data": 18, - "mfma_flops_bf16": 12, - "mfma_flops_f16": 11, - "mfma_flops_f32": 13, - "mfma_flops_f64": 14, - "peak_flops": 19, - "total_flops": 9, - "valu_flops": 10 - }, - "renameByName": { - "AvgDuration": "Avg Duration", - "Calls": "", - "L1cache_data": "Vector L1D Cache", - "L2cache_data": "L2 Cache", - "LDS_data": "LDS ", - "Throughput": "Performance", - "TotalDuration": "Total Duration", - "_id": "Dispatch", - "ai_L1": "AI (Vector L1D Cache)", - "ai_L2": "AI (L2 Cache)", - "ai_hbm": "AI (HBM)", - "hbm_bw": "HBM BW ", - "hbm_data": "HBM", - "mfma_flops_bf16": "MFMA FLOPs (BF16)", - "mfma_flops_f16": "MFMA FLOPs (F16)", - "mfma_flops_f32": "MFMA FLOPs (F32)", - "mfma_flops_f64": "MFMA FLOPs (F64)", - "total_flops": "Total FLOPs", - "valu_flops": "VALU FLOPs" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Kernel Statistics", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 3 - }, - "id": 40, - "panels": [ - { - "description": "All transaction units default to Billion, when per-sec norm is used", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 13, - "w": 24, - "x": 0, - "y": 4 - }, - "id": 285, - "options": { - "addAllIDs": false, - "captureMappings": false, - "eventAutoComplete": true, - "eventSource": "options.animateLogo(svgmap, data);\r\nconsole.log(\"Starting render\");\r\nlet buff = data.series[0].fields[2].values.buffer;\r\nlet valueCount = buff.length;\r\nconsole.log(\"The buff is \", valueCount, \" long\");\r\n\r\nsvgmap.wave_life_.text(buff[0]);\r\nsvgmap.active_cu_.text(buff[1]);\r\nsvgmap.salu_.text(buff[2]);\r\nsvgmap.smem_.text(buff[3]);\r\nsvgmap.valu_.text(buff[4]);\r\nsvgmap.mfma_.text(buff[5]);\r\nsvgmap.vmem_.text(buff[6]);\r\nsvgmap.lds_.text(buff[7]);\r\nsvgmap.gws_.text(buff[8]);\r\nsvgmap.br_.text(buff[9]);\r\nsvgmap.vgpr_.text(buff[10]);\r\nsvgmap.sgpr_.text(buff[11]);\r\nsvgmap.lds_alloc_.text(buff[12]);\r\nsvgmap.scratch_alloc_.text(buff[13]);\r\nsvgmap.wavefronts_.text(buff[14]);\r\nsvgmap.workgroups_.text(buff[15]);\r\nsvgmap.lds_req_.text(buff[16]);\r\nsvgmap.il1_fetch_.text(buff[17]);\r\nsvgmap.il1_hit_.text(buff[18]);\r\nsvgmap.il1_l2_rd_.text(buff[19]);\r\nsvgmap.sl1_rd_.text(buff[20]);\r\nsvgmap.sl1_hit_.text(buff[21]);\r\nsvgmap.sl1_l2_rd_.text(buff[22]);\r\nsvgmap.sl1_l2_wr_.text(buff[23]);\r\nsvgmap.sl1_l2_atom_.text(buff[24]);\r\nsvgmap.vl1_rd_.text(buff[25]);\r\nsvgmap.vl1_wr_.text(buff[26]);\r\nsvgmap.vl1_atom_.text(buff[27]);\r\nsvgmap.vl1_hit_.text(buff[28]);\r\nsvgmap.vl1_lat_.text(buff[29]);\r\nsvgmap.vl1_l2_rd_.text(buff[30]);\r\nsvgmap.vl1_l2_wr_.text(buff[31]);\r\nsvgmap.vl1_l2_atom_.text(buff[32]);\r\nsvgmap.l2_rd_.text(buff[33]);\r\nsvgmap.l2_wr_.text(buff[34])\r\nsvgmap.l2_atom_.text(buff[35]);\r\nsvgmap.l2_hit_.text(buff[36]);\r\nsvgmap.l2_rd_lat_.text(buff[37]);\r\nsvgmap.l2_wr_lat_.text(buff[38]);\r\nsvgmap.fabric_rd_lat_.text(buff[39]);\r\nsvgmap.fabric_wr_lat_.text(buff[40]);\r\nsvgmap.fabric_atom_lat_.text(buff[41]);\r\nsvgmap.l2_fabric_rd_.text(buff[42]);\r\nsvgmap.l2_fabric_wr_.text(buff[43]);\r\nsvgmap.l2_fabric_atom_.text(buff[44]);\r\nsvgmap.hbm_rd_.text(buff[45]);\r\nsvgmap.hbm_wr_.text(buff[46]);\r\nsvgmap.lds_util_.text(buff[47]);\r\nsvgmap.vl1_coales_.text(buff[48]);\r\nsvgmap.vl1_stall_.text(buff[49]);\r\nsvgmap.wave_occ_.text(buff[50]);\r\nsvgmap.lds_lat_.text(buff[51]);\r\nsvgmap.il1_lat_.text(buff[52]);\r\nsvgmap.sl1_lat_.text(buff[53]);\r\nsvgmap.gds_req_.text(buff[54]);", - "initAutoComplete": true, - "initSource": "options.animateLogo = (svgmap, data) => {\r\n \r\n}\r\n ", - "svgMappings": [ - { - "mappedName": "wave_life_", - "svgId": "wave_life" - }, - { - "mappedName": "wave_occ_", - "svgId": "wave_occ" - }, - { - "mappedName": "salu_", - "svgId": "salu" - }, - { - "mappedName": "smem_", - "svgId": "smem" - }, - { - "mappedName": "valu_", - "svgId": "valu" - }, - { - "mappedName": "mfma_", - "svgId": "mfma" - }, - { - "mappedName": "vmem_", - "svgId": "vmem" - }, - { - "mappedName": "lds_", - "svgId": "lds" - }, - { - "mappedName": "gws_", - "svgId": "gws" - }, - { - "mappedName": "br_", - "svgId": "br" - }, - { - "mappedName": "active_cu_", - "svgId": "active_cu" - }, - { - "mappedName": "vgpr_", - "svgId": "vgpr" - }, - { - "mappedName": "sgpr_", - "svgId": "sgpr" - }, - { - "mappedName": "lds_alloc_", - "svgId": "lds_alloc" - }, - { - "mappedName": "scratch_alloc_", - "svgId": "scratch_alloc" - }, - { - "mappedName": "wavefronts_", - "svgId": "wavefronts" - }, - { - "mappedName": "workgroups_", - "svgId": "workgroups" - }, - { - "mappedName": "lds_req_", - "svgId": "lds_req" - }, - { - "mappedName": "vl1_wr_", - "svgId": "vl1_wr" - }, - { - "mappedName": "vl1_atom_", - "svgId": "vl1_atom" - }, - { - "mappedName": "sl1_rd_", - "svgId": "sl1_rd" - }, - { - "mappedName": "il1_fetch_", - "svgId": "il1_fetch" - }, - { - "mappedName": "lds_lat_", - "svgId": "lds_lat" - }, - { - "mappedName": "lds_bw_", - "svgId": "lds_bw" - }, - { - "mappedName": "lds_util_", - "svgId": "lds_util" - }, - { - "mappedName": "vl1_hit_", - "svgId": "vl1_hit" - }, - { - "mappedName": "vl1_lat_", - "svgId": "vl1_lat" - }, - { - "mappedName": "vl1_coales_", - "svgId": "vl1_coales" - }, - { - "mappedName": "vl1_stall_", - "svgId": "vl1_stall" - }, - { - "mappedName": "sl1_hit_", - "svgId": "sl1_hit" - }, - { - "mappedName": "sl1_lat_", - "svgId": "sl1_lat" - }, - { - "mappedName": "il1_hit_", - "svgId": "il1_hit" - }, - { - "mappedName": "il1_lat_", - "svgId": "il1_lat" - }, - { - "mappedName": "sl1_l2_rd_", - "svgId": "sl1_l2_rd" - }, - { - "mappedName": "sl1_l2_wr_", - "svgId": "sl1_l2_wr" - }, - { - "mappedName": "sl1_l2_atom_", - "svgId": "sl1_l2_atom" - }, - { - "mappedName": "il1_l2_rd_", - "svgId": "il1_l2_rd" - }, - { - "mappedName": "sl1_l2_rd_", - "svgId": "sl1_l2_rd" - }, - { - "mappedName": "sl1_l2_wr_", - "svgId": "sl1_l2_wr" - }, - { - "mappedName": "sl1_l2_atom_", - "svgId": "sl1_l2_atom" - }, - { - "mappedName": "l2_rd_", - "svgId": "l2_rd" - }, - { - "mappedName": "l2_wr_", - "svgId": "l2_wr" - }, - { - "mappedName": "l2_atom_", - "svgId": "l2_atom" - }, - { - "mappedName": "l2_hit_", - "svgId": "l2_hit" - }, - { - "mappedName": "l2_rd_lat_", - "svgId": "l2_rd_lat" - }, - { - "mappedName": "l2_wr_lat_", - "svgId": "l2_wr_lat" - }, - { - "mappedName": "l2_fabric_rd_", - "svgId": "l2_fabric_rd" - }, - { - "mappedName": "l2_fabric_wr_", - "svgId": "l2_fabric_wr" - }, - { - "mappedName": "l2_fabric_atom_", - "svgId": "l2_fabric_atom" - }, - { - "mappedName": "fabric_rd_lat_", - "svgId": "fabric_rd_lat" - }, - { - "mappedName": "fabric_wr_lat_", - "svgId": "fabric_wr_lat" - }, - { - "mappedName": "fabric_atom_lat_", - "svgId": "fabric_atom_lat" - }, - { - "mappedName": "fabric_hbm_rd_", - "svgId": "fabric_hbm_rd" - }, - { - "mappedName": "fabric_hbm_wr_", - "svgId": "fabric_hbm_wr" - }, - { - "mappedName": "vl1_rd_", - "svgId": "vl1_rd" - }, - { - "mappedName": "vl1_l2_rd_", - "svgId": "vl1_l2_rd" - }, - { - "mappedName": "vl1_l2_wr_", - "svgId": "vl1_l2_wr" - }, - { - "mappedName": "vl1_l2_atom_", - "svgId": "vl1_l2_atom" - }, - { - "mappedName": "hbm_rd_", - "svgId": "hbm_rd" - }, - { - "mappedName": "hbm_wr_", - "svgId": "hbm_wr" - } - ], - "svgSource": "\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Wave Occupancy\r\n \r\n Wave Life\r\n \r\n \r\n \r\n xGMI /\r\n PCIe\r\n \r\n GMI\r\n \r\n HBM\r\n \r\n Fabric\r\n \r\n \r\n SALU:\r\n 00000\r\n \r\n \r\n SMEM:\r\n 00000\r\n \r\n \r\n VALU:\r\n 00000\r\n \r\n \r\n MFMA:\r\n 00000\r\n \r\n \r\n VMEM:\r\n 00000\r\n \r\n \r\n LDS:\r\n 00000\r\n \r\n \r\n GWS:\r\n 00000\r\n \r\n \r\n Br:\r\n 00000\r\n \r\n \r\n cycles\r\n Rd:\r\n 00000\r\n \r\n \r\n cycles\r\n Wr:\r\n 00000\r\n \r\n \r\n cycles\r\n Atomic:\r\n 00000\r\n \r\n \r\n Rd:\r\n 00000\r\n \r\n \r\n Wr:\r\n \r\n \r\n 00000\r\n \r\n \r\n Atomic:\r\n 00000\r\n \r\n \r\n cycles\r\n Lat:\r\n 00000\r\n \r\n \r\n %\r\n Hit:\r\n 00000\r\n \r\n \r\n cycles\r\n Lat:\r\n 00000\r\n \r\n \r\n %\r\n Hit:\r\n 00000\r\n \r\n \r\n cycles\r\n Lat:\r\n 00000\r\n 00000\r\n Rd:\r\n 00000\r\n Wr:\r\n 00000\r\n Req:\r\n 00000\r\n 00000\r\n 00000\r\n Rd:\r\n Wr:\r\n Atomic:\r\n per-GCD\r\n cycles\r\n \r\n \r\n %\r\n Hit:\r\n 00000\r\n \r\n \r\n cycles\r\n Rd:\r\n 00000\r\n \r\n \r\n cycles\r\n Wr:\r\n 00000\r\n Wave 0 Instr buff\r\n Wave N-1 Instr buff\r\n Active CUs\r\n \r\n \r\n %\r\n Hit:\r\n 00000\r\n \r\n \r\n cycles\r\n Lat:\r\n 00000\r\n \r\n \r\n %\r\n Util:\r\n 00000\r\n \r\n \r\n %\r\n Coales:\r\n 00000\r\n Exec\r\n Instr Buff\r\n Instr Dispatch\r\n LDS\r\n Vector L1 Cache\r\n Scalar L1D Cache\r\n Instr L1 Cache\r\n L2 Cache\r\n 00000\r\n Req:\r\n \r\n \r\n %\r\n Stall:\r\n 00000\r\n 00000\r\n Fetch:\r\n 0000000\r\n 00000\r\n 000/000\r\n \r\n Latency\r\n \r\n LDS Alloc:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 00000\r\n \r\n Scratch Alloc:\r\n \r\n 00000\r\n \r\n Wavefronts:\r\n \r\n 00000\r\n \r\n Workgroups:\r\n \r\n 00000\r\n \r\n VGPRs:\r\n \r\n 00000\r\n \r\n SGPRs:\r\n \r\n 00000\r\n \r\n \r\n 00000\r\n Rd:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 00000\r\n 00000\r\n 00000\r\n Rd:\r\n Wr:\r\n Atomic:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 00000\r\n 00000\r\n 00000\r\n Rd:\r\n Wr:\r\n Atomic:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 00000\r\n 00000\r\n 00000\r\n Rd:\r\n Wr:\r\n Atomic:\r\n \r\n \r\n \r\n Latency\r\n \r\n \r\n \r\n \r\n Text is not SVG - cannot display\r\n \r\n \r\n" - }, - "pluginVersion": "8.4.0", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "rawQuery": true, - "refId": "pmc_perf", - "target": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"wave_life\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [\"&SQ_WAVES\", 0] },\n { \"$multiply\": [4, { \"$divide\": [\"&SQ_WAVE_CYCLES\", \"&SQ_WAVES\"] }] },\n null\n ]\n }\n },\n \"salu\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SALU\", \"&denom\" ] }\n },\n \"smem\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SMEM\", \"&denom\" ] }\n },\n \"valu\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_VALU\", \"&denom\"] }\n },\n \"mfma\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_MFMA\", \"&denom\"] }\n },\n \"vmem\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_VMEM\", \"&denom\"] }\n },\n \"lds_instr\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_LDS\", \"&denom\"] }\n },\n \"gws\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_GDS\", \"&denom\"] }\n },\n \"br\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_BRANCH\", \"&denom\"] }\n },\n \"vgpr\": {\n \"$avg\": \"&vgpr\"\n },\n \"sgpr\": {\n \"$avg\": \"&sgpr\"\n },\n \"lds_alloc\": {\n \"$avg\": \"&lds\"\n },\n \"scratch_alloc\": {\n \"$avg\": \"&scr\"\n },\n \"wavefronts\": {\n \"$avg\": \"&SPI_CSN_WAVE\"\n },\n \"workgroups\": {\n \"$avg\": \"&SPI_CSN_NUM_THREADGROUPS\"\n },\n \"lds_req\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_LDS\", \"&denom\"] }\n }, \n \"lds_util\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [ 100, \"&SQ_LDS_IDX_ACTIVE\" ]}, \n {\"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}\n ]}\n },\n \"vl1_rd\": {\n \"$avg\": { \"$divide\": [\"&TCP_TOTAL_READ_sum\", \"&denom\"] }\n },\n \"vl1_wr\": {\n \"$avg\": { \"$divide\": [\"&TCP_TOTAL_WRITE_sum\", \"&denom\"] }\n },\n \"vl1_atom\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"] }\n },\n \"il1_fetch\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n \"il1_hit\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_REQ\"] }\n },\n \"il1_l2_req\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_INST_REQ\", \"&denom\"] }\n },\n \"sl1_rd\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n \"sl1_hit\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQC_DCACHE_REQ\", 0]},\n { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_REQ\"] },\n \"\"\n ]\n }\n},\n \"sl1_l2_rd\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n \"sl1_l2_wr\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n \"sl1_l2_atom\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n \"vl1_hit\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0] },\n { \"$subtract\": [100, { \"$divide\": [{ \"$multiply\": [100, { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }] }, \"&TCP_TOTAL_CACHE_ACCESSES_sum\"] }] },\n null\n ]\n }\n },\n \"vl1_lat\": {\n \"$avg\": { \n \"$cond\": [\n { \"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0] },\n { \"$divide\": [\"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\"] },\n null\n ]\n }\n },\n \"vl1_coales\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_TOTAL_ACCESSES_sum\", 0] },\n { \"$divide\": [{\"$multiply\": [\"&TA_TOTAL_WAVEFRONTS_sum\", 64, 100]}, {\"$multiply\": [\"&TCP_TOTAL_ACCESSES_sum\", 4]}] },\n 0\n ]\n }\n },\n \"vl1_stall\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n \"\"\n ]\n }},\n \"vl1_l2_rd\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_READ_REQ_sum\", \"&denom\"] }\n },\n \"vl1_l2_wr\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"vl1_l2_atom\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }\n },\n \"l2_rd\": {\n \"$avg\": { \"$divide\": [\"&TCC_READ_sum\", \"&denom\"] }\n },\n \"l2_wr\": {\n \"$avg\": { \"$divide\": [\"&TCC_WRITE_sum\", \"&denom\"] }\n },\n \"l2_atom\": {\n \"$avg\": { \"$divide\": [\"&TCC_ATOMIC_sum\", \"&denom\"] }\n },\n \"l2_hit\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [{ \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }, 0] },\n { \"$divide\": [{ \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }] },\n null\n ]\n }\n },\n \"l2_rd_lat\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [{ \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }, 0] },\n { \"$divide\": [\"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }] },\n null\n ]\n }\n },\n \"l2_wr_lat\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [{ \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 0] },\n { \"$divide\": [\"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }] },\n null\n ]\n }\n },\n \"fabric_rd_lat\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [\"&TCC_EA_RDREQ_sum\", 0] },\n { \"$divide\": [\"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\"] },\n null\n ]\n }\n },\n \"fabric_wr_lat\": { \n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [\"&TCC_EA_WRREQ_sum\", 0] },\n { \"$divide\": [\"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\"] },\n null\n ]\n }\n },\n \"fabric_atom_lat\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0] },\n { \"$divide\": [\"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\"] },\n null\n ]\n }\n },\n \"l2_fabric_rd\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_RDREQ_sum\", \"&denom\"] }\n },\n \"l2_fabric_wr\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_WRREQ_sum\", \"&denom\"] }\n },\n \"l2_fabric_atom\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_ATOMIC_sum\", \"&denom\"] }\n },\n \"hbm_rd\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\"] }\n },\n \"hbm_wr\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\"] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave Life\",\n \"Alias\": \"wave_life_\",\n \"Value\": { \"$round\": [\"&wave_life\", 0] }\n },\n {\n \"Metric\": \"Active CUs\",\n \"Alias\": \"active_cu_\",\n \"Value\": {\"$concat\": [\"$numActiveCUs\", \"/\", \"$numCU\"]}\n },\n {\n \"Metric\": \"SALU\",\n \"Alias\": \"salu_\",\n \"Value\": { \"$round\": [\"&salu\", 0] }\n },\n {\n \"Metric\": \"SMEM\",\n \"Alias\": \"smem_\",\n \"Value\": { \"$round\": [\"&smem\", 0] }\n },\n {\n \"Metric\": \"VALU\",\n \"Alias\": \"valu_\",\n \"Value\": { \"$round\": [\"&valu\", 0] }\n },\n {\n \"Metric\": \"MFMA\",\n \"Alias\": \"mfma_\",\n \"Value\": { \"$round\": [\"&mfma\", 0] }\n },\n {\n \"Metric\": \"VMEM\",\n \"Alias\": \"vmem_\",\n \"Value\": { \"$round\": [\"&vmem\", 0] }\n },\n {\n \"Metric\": \"LDS\",\n \"Alias\": \"lds_\",\n \"Value\": { \"$round\": [\"&lds_instr\", 0] }\n },\n {\n \"Metric\": \"GWS\",\n \"Alias\": \"gws_\",\n \"Value\": { \"$round\": [\"&gws\", 0] }\n },\n {\n \"Metric\": \"BR\",\n \"Alias\": \"br_\",\n \"Value\": { \"$round\": [\"&br\", 0] }\n },\n {\n \"Metric\": \"VGPR\",\n \"Alias\": \"vgpr_\",\n \"Value\": { \"$round\": [\"&vgpr\", 0] }\n },\n {\n \"Metric\": \"SGPR\",\n \"Alias\": \"sgpr_\",\n \"Value\": { \"$round\": [\"&sgpr\", 0] }\n },\n {\n \"Metric\": \"LDS Allocation\",\n \"Alias\": \"lds_alloc_\",\n \"Value\": { \"$round\": [\"&lds_alloc\", 0] }\n },\n {\n \"Metric\": \"Scratch Allocation\",\n \"Alias\": \"scratch_alloc_\",\n \"Value\": { \"$round\": [\"&scratch_alloc\", 0] }\n },\n {\n \"Metric\": \"Wavefronts\",\n \"Alias\": \"wavefronts_\",\n \"Value\": { \"$round\": [\"&wavefronts\", 0] }\n },\n {\n \"Metric\": \"Workgroups\",\n \"Alias\": \"workgroups_\",\n \"Value\": { \"$round\": [\"&workgroups\", 0] }\n },\n {\n \"Metric\": \"LDS Req\",\n \"Alias\": \"lds_req_\",\n \"Value\": { \"$round\": [\"&lds_req\", 0] }\n },\n {\n \"Metric\": \"IL1 Fetch\",\n \"Alias\": \"il1_fetch_\",\n \"Value\": { \"$round\": [\"&il1_fetch\", 0] }\n },\n {\n \"Metric\": \"IL1 Hit\",\n \"Alias\": \"il1_hit_\",\n \"Value\": { \"$round\": [{ \"$multiply\": [\"&il1_hit\", 100] }, 0] }\n },\n {\n \"Metric\": \"IL1_L2 Rd\",\n \"Alias\": \"il1_l2_req_\",\n \"Value\": { \"$round\": [\"&il1_l2_req\", 0] }\n },\n {\n \"Metric\": \"vL1D Rd\",\n \"Alias\": \"sl1_rd_\",\n \"Value\": { \"$round\": [\"&sl1_rd\", 0] }\n },\n {\n \"Metric\": \"vL1D Hit\",\n \"Alias\": \"sl1_hit_\",\n \"Value\": { \"$round\": [{ \"$multiply\": [\"&sl1_hit\", 100] }, 0] }\n },\n {\n \"Metric\": \"vL1D_L2 Rd\",\n \"Alias\": \"sl1_l2_rd_\",\n \"Value\": { \"$round\": [\"&sl1_l2_rd\", 0] }\n },\n {\n \"Metric\": \"vL1D_L2 Wr\",\n \"Alias\": \"sl1_l2_wr_\",\n \"Value\": { \"$round\": [\"&sl1_l2_wr\", 0] }\n },\n {\n \"Metric\": \"vL1D_L2 Atomic\",\n \"Alias\": \"sl1_l2_atom_\",\n \"Value\": { \"$round\": [\"&sl1_l2_atom\", 0] }\n },\n {\n \"Metric\": \"VL1 Rd\",\n \"Alias\": \"vl1_rd_\",\n \"Value\": { \"$round\": [\"&vl1_rd\", 0] }\n },\n {\n \"Metric\": \"VL1 Wr\",\n \"Alias\": \"vl1_wr_\",\n \"Value\": { \"$round\": [\"&vl1_wr\", 0] }\n },\n {\n \"Metric\": \"VL1 Atomic\",\n \"Alias\": \"vl1_atom_\",\n \"Value\": { \"$round\": [\"&vl1_atom\", 0] }\n },\n {\n \"Metric\": \"VL1 Hit\",\n \"Alias\": \"vl1_hit_\",\n \"Value\": { \"$round\": [\"&vl1_hit\", 0] }\n },\n {\n \"Metric\": \"VL1 Lat\",\n \"Alias\": \"vl1_lat_\",\n \"Value\": { \"$round\": [\"&vl1_lat\", 0] }\n },\n {\n \"Metric\": \"VL1_L2 Rd\",\n \"Alias\": \"vl1_l2_rd_\",\n \"Value\": { \"$round\": [\"&vl1_l2_rd\", 0] }\n },\n {\n \"Metric\": \"VL1_L2 Wr\",\n \"Alias\": \"vl1_l2_wr_\",\n \"Value\": { \"$round\": [\"&vl1_l2_wr\", 0] }\n },\n {\n \"Metric\": \"vL1_L2 Atomic\",\n \"Alias\": \"vl1_l2_atom_\",\n \"Value\": { \"$round\": [\"&vl1_l2_atom\", 0] }\n },\n {\n \"Metric\": \"L2 Rd\",\n \"Alias\": \"l2_rd_\",\n \"Value\": { \"$round\": [\"&l2_rd\", 0] }\n },\n {\n \"Metric\": \"L2 Wr\",\n \"Alias\": \"l2_wr_\",\n \"Value\": { \"$round\": [\"&l2_wr\", 0] }\n },\n {\n \"Metric\": \"L2 Atomic\",\n \"Alias\": \"l2_atom_\",\n \"Value\": { \"$round\": [\"&l2_atom\", 0] }\n },\n {\n \"Metric\": \"L2 Hit\",\n \"Alias\": \"l2_hit_\",\n \"Value\": { \"$round\": [\"&l2_hit\", 0] }\n },\n {\n \"Metric\": \"L2 Rd Lat\",\n \"Alias\": \"l2_rd_lat_\",\n \"Value\": { \"$round\": [\"&l2_rd_lat\", 0] }\n },\n {\n \"Metric\": \"L2 Wr Lat\",\n \"Alias\": \"l2_wr_lat_\",\n \"Value\": { \"$round\": [\"&l2_wr_lat\", 0] }\n },\n {\n \"Metric\": \"Fabric Rd Lat\",\n \"Alias\": \"fabric_rd_lat_\",\n \"Value\": { \"$round\": [\"&fabric_rd_lat\", 0] }\n },\n {\n \"Metric\": \"Fabric Wr Lat\",\n \"Alias\": \"fabric_wr_lat_\",\n \"Value\": { \"$round\": [\"&fabric_wr_lat\", 0] }\n },\n {\n \"Metric\": \"Fabric Atomic Lat\",\n \"Alias\": \"fabric_atom_lat_\",\n \"Value\": { \"$round\": [\"&fabric_atom_lat\", 0] }\n },\n {\n \"Metric\": \"Fabric_L2 Rd\",\n \"Alias\": \"l2_fabric_rd_\",\n \"Value\": { \"$round\": [\"&l2_fabric_rd\", 0] }\n },\n {\n \"Metric\": \"Fabric_L2 Wr\",\n \"Alias\": \"l2_fabric_wr_\",\n \"Value\": { \"$round\": [\"&l2_fabric_wr\", 0] }\n },\n {\n \"Metric\": \"Fabric_l2 Atomic\",\n \"Alias\": \"l2_fabric_atom_\",\n \"Value\": { \"$round\": [\"&l2_fabric_atom\", 0] }\n },\n {\n \"Metric\": \"HBM Rd\",\n \"Alias\": \"hbm_rd_\",\n \"Value\": { \"$round\": [\"&hbm_rd\", 0] }\n },\n {\n \"Metric\": \"HBM Wr\",\n \"Alias\": \"hbm_wr_\",\n \"Value\": { \"$round\": [\"&hbm_wr\", 0] }\n },\n {\n \"Metric\": \"LDS Util\",\n \"Alias\": \"lds_util_\",\n \"Value\": { \"$round\": [\"&lds_util\", 0] }\n },\n {\n \"Metric\": \"VL1 Coalesce\",\n \"Alias\": \"vl1_coales_\",\n \"Value\": { \"$round\": [\"&vl1_coales\", 0]}\n },\n {\n \"Metric\": \"VL1 Stall\",\n \"Alias\": \"vl1_stall_\",\n \"Value\": { \"$round\": [\"&vl1_stall\", 0]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"$array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"$array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_LEVEL_WAVES", - "target": "$Workload1.SQ_LEVEL_WAVES.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"wave_occ\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\",\"&GRBM_GUI_ACTIVE\"] }, $numActiveCUs]}\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave Occupancy\",\n \"Alias\": \"wave_occ_\",\n \"Value\":{ \"$round\": [\"&wave_occ\", 0] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_LDS", - "target": "$Workload1.SQ_INST_LEVEL_LDS.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"lds_lat\": {\n \"$avg\": { \n \"$cond\": [\n { \"$ne\": [\"&SQ_INSTS_LDS\", 0] },\n { \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\"] },\n null\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"LDS Lat\",\n \"Alias\": \"lds_lat_\",\n \"Value\":{ \"$round\": [\"&lds_lat\", 0] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQC_ICACHE_INFLIGHT", - "target": "$Workload1.pmc_perf.aggregate([\n\t{\"$match\": {\n\t\t\"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \t\t\"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \t\t\"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n \t}},\n\t{\"$lookup\": {\n\t\t\"from\": \"SQ_IFETCH_LEVEL\",\n\t\t\"localField\": \"Index\",\n\t\t\"foreignField\": \"Index\",\n\t\t\"as\": \"SQ_IFETCH_LEVEL\",\n\t\t\"pipeline\": [\n\t\t\t{\"$match\": {\n\t\t\t\t\"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \t\t\t\t\"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \t\t\t\t\"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n \t\t\t}},\n\t\t\t{\"$project\":{\n\t\t\t\t\"_id\": 0,\n\t\t\t\t\"SQ_ACCUM_PREV_HIRES\": 1\n\t\t\t}}\n\t\t]\n\t}},\n\t{\"$unwind\":{\n\t\t\"path\": \"&SQ_IFETCH_LEVEL\"\n\t}},\n\t{\"$group\":{\n\t\t\"_id\": null,\n\t\t\"il1_lat\": {\n\t\t\t\"$avg\":{\n\t\t\t\t\"$cond\":[\n\t\t\t\t\t\t{\"$ne\":[\"&SQC_ICACHE_REQ\",0]},\n\t\t\t\t\t\t{\"$divide\":[\"&SQ_IFETCH_LEVEL.SQ_ACCUM_PREV_HIRES\",\"&SQC_ICACHE_REQ\"]},\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t}\n\t\t} \n\t}},\n\t{\"$set\": {\n \t\t\"array\": [\n \t\t{\n \t\t\t\"Metric\": \"IL1 Lat\",\n \t\t\t\"Alias\": \"il1_lat_\",\n \t\t\t\"Value\": { \"$round\": [\"&il1_lat\", 0] }\n \t\t}\n \t\t]\n\t}},\n \t{\"$unwind\": {\n \t\t\"path\": \"&array\"\n \t}},\n \t{\"$replaceRoot\": {\n \t\t\"newRoot\": \"&array\"\n \t}}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQC_DCACHE_INFLIGHT_LEVEL", - "target": "$Workload1.pmc_perf.aggregate([\n\t{\"$match\": {\n\t\t\"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \t\t\"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \t\t\"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n \t}},\n\t{\"$lookup\": {\n\t\t\"from\": \"SQ_IFETCH_LEVEL\",\n\t\t\"localField\": \"Index\",\n\t\t\"foreignField\": \"Index\",\n\t\t\"as\": \"SQ_IFETCH_LEVEL\",\n\t\t\"pipeline\": [\n\t\t\t{\"$match\": {\n\t\t\t\t\"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \t\t\t\t\"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \t\t\t\t\"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n \t\t\t}},\n\t\t\t{\"$project\":{\n\t\t\t\t\"_id\": 0,\n\t\t\t\t\"SQ_ACCUM_PREV_HIRES\": 1\n\t\t\t}}\n\t\t]\n\t}},\n\t{\"$unwind\":{\n\t\t\"path\": \"&SQ_IFETCH_LEVEL\"\n\t}},\n\t{\"$group\":{\n\t\t\"_id\": null,\n\t\t\"sl1_lat\": {\n\t\t\t\"$avg\":{\n\t\t\t\t\"$cond\":[\n\t\t\t\t\t\t{\"$ne\":[\"&SQC_DCACHE_REQ\",0]},\n\t\t\t\t\t\t{\"$divide\":[\"&SQ_IFETCH_LEVEL.SQ_ACCUM_PREV_HIRES\",\"&SQC_DCACHE_REQ\"]},\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t}\n\t\t} \n\t}},\n\t{\"$set\": {\n \t\t\"array\": [\n \t\t{\n \t\t\t\"Metric\": \"vL1D Lat\",\n \t\t\t\"Alias\": \"sl1_lat_\",\n \t\t\t\"Value\": { \"$round\": [\"&sl1_lat\", 0] }\n \t\t}\n \t\t]\n\t}},\n \t{\"$unwind\": {\n \t\t\"path\": \"&array\"\n \t}},\n \t{\"$replaceRoot\": {\n \t\t\"newRoot\": \"&array\"\n \t}}\n]);", - "type": "table" - } - ], - "title": "Memory Chart (Normalization: $normUnit\")", - "transformations": [ - { - "id": "convertFieldType", - "options": { - "conversions": [ - { - "destinationType": "string", - "targetField": "Value" - } - ], - "fields": {} - } - }, - { - "id": "merge", - "options": {} - } - ], - "type": "amd-custom-svg" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Memory Chart Analysis", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 4 - }, - "id": 241, - "panels": [ - { - "gridPos": { - "h": 28, - "w": 24, - "x": 0, - "y": 5 - }, - "id": 253, - "pconfig": { - "fixScale": "", - "layout": { - "dragmode": "zoom", - "font": { - "family": "\"Open Sans\", Helvetica, Arial, sans-serif" - }, - "hovermode": "closest", - "legend": { - "orientation": "v" - }, - "showlegend": true, - "xaxis": { - "range": [ - -2, - 3.8 - ], - "rangemode": "between", - "showgrid": true, - "title": "Arithmetic Intensity (FLOP/Byte)", - "type": "log", - "zeroline": false - }, - "yaxis": { - "rangemode": "normal", - "showgrid": true, - "title": "Performance (GFLOP/sec)", - "type": "log", - "zeroline": false - }, - "zaxis": { - "rangemode": "normal", - "showgrid": true, - "type": "linear", - "zeroline": false - } - }, - "loadFromCDN": false, - "settings": { - "displayModeBar": false, - "type": "scatter" - }, - "showAnnotations": true, - "traces": [ - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "xrange", - "y": "roofline_hbm" - }, - "name": "HBM-VLAU", - "settings": { - "color_option": "ramp", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#33B5E5", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 15, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "circle" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "xrange", - "y": "roofline_L2" - }, - "name": "L2-VALU", - "settings": { - "color_option": "ramp", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#33B5E5", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 15, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "circle" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "xrange", - "y": "roofline_L1" - }, - "name": "vL1D-VALU", - "settings": { - "color_option": "ramp", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#33B5E5", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 15, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "circle" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "LDSBw_peak", - "x": "xrange", - "y": "roofline_LDS" - }, - "name": "LDS-VALU", - "settings": { - "color_option": "ramp", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#33B5E5", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 15, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "circle" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "cur_ai_hbm", - "y": "cur_perf" - }, - "name": "Cur - HBM", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#F2495C", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "square" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "cur_ai_L2", - "y": "cur_perf" - }, - "name": "Cur - L2", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#5794F2", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "diamond" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "cur_ai_L1", - "y": "cur_perf" - }, - "name": "Cur - vL1D", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "base_ai_hbm", - "y": "base_perf" - }, - "name": "Baseline - HBM", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#F2495C", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "square-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "base_ai_L2", - "y": "base_perf" - }, - "name": "Baseline - L2", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#5794F2", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "diamond-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "base_ai_L1", - "y": "base_perf" - }, - "name": "Baseline - vL1D", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "xrange", - "y": "roofline_hbm_MFMA" - }, - "name": "HBM-MFMA", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "xrange", - "y": "roofline_L2_MFMA" - }, - "name": "L2-MFMA", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "xrange", - "y": "roofline_L1_MFMA" - }, - "name": "vL1D-MFMA", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "LDSBw_peak", - "x": "xrange", - "y": "roofline_LDS_MFMA" - }, - "name": "LDS-MFMA", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - } - ] - }, - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "rawQuery": true, - "refId": "HBM-VALU", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&FP32Flops\", \"&FP64Flops\"]\n },\n \"then\": \"&FP64Flops\",\n \"else\": \"&FP32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_hbm\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&HBMBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&HBMBw\"] },\n \"else\": \"$high_flop\"\n }\n },\n \"hbmBw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&HBMBw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "HBM-MFMA", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&MFMAF32Flops\", \"&MFMAF64Flops\"]\n },\n \"then\": \"&MFMAF64Flops\",\n \"else\": \"&MFMAF32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_hbm_MFMA\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&HBMBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&HBMBw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L2-VALU", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&FP32Flops\", \"&FP64Flops\"]\n },\n \"then\": \"&FP64Flops\",\n \"else\": \"&FP32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L2\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L2Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L2Bw\"] },\n \"else\": \"$high_flop\"\n }\n },\n\n \"L2Bw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&L2Bw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L1-VALU", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&FP32Flops\", \"&FP64Flops\"]\n },\n \"then\": \"&FP64Flops\",\n \"else\": \"&FP32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L1\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L1Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L1Bw\"] },\n \"else\": \"&high_flop\"\n }\n },\n\n \"L1Bw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&L1Bw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "LDS", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&FP32Flops\", \"&FP64Flops\"]\n },\n \"then\": \"&FP64Flops\",\n \"else\": \"&FP32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_LDS\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&LDSBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&LDSBw\"] },\n \"else\": \"$high_flop\"\n }\n },\n\n \"LDSBw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&LDSBw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "Cur Workload", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n { \"$group\": { \n \"_id\": \"&KernelName\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"lds_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]\n } \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n }\n\n\n }},\n {\"$sort\": { \"TotalDuration\": -1 }},\n { \"$limit\": 10 },\n {\"$project\": {\n \"_id\": 0,\n \"Kernel\": \"&KernelName\",\n \"cur_ai_L1\": {\n \"$cond\": [\n { \"$ne\": [\"&L1cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"] },\n 0\n ]\n },\n \"cur_ai_L2\": {\n \"$cond\": [\n { \"$ne\": [\"&L2cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"] },\n 0\n ]\n },\n \"cur_ai_hbm\": {\n \"$cond\": [\n { \"$ne\": [\"&hbm_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"] },\n 0\n ]\n },\n \"cur_perf\": { \n \"$cond\": [\n { \"$ne\": [\"&AvgDuration\", 0] },\n { \"$divide\": [\"&total_flops\", \"&AvgDuration\"] },\n 0\n ]\n }\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "Baseline Workload", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Roofline)\"}}\n }},\n { \"$group\": { \n \"_id\": \"&KernelName\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"lds_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]\n } \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n }\n\n\n }},\n {\"$sort\": { \"TotalDuration\": -1 }},\n { \"$limit\": 10 },\n {\"$project\": {\n \"_id\": 0,\n \"Kernel\": \"&KernelName\",\n \"base_ai_L1\": {\n \"$cond\": [\n { \"$ne\": [\"&L1cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"] },\n 0\n ]\n },\n \"base_ai_L2\": {\n \"$cond\": [\n { \"$ne\": [\"&L2cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"] },\n 0\n ]\n },\n \"base_ai_hbm\": {\n \"$cond\": [\n { \"$ne\": [\"&hbm_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"] },\n 0\n ]\n },\n \"base_perf\": { \n \"$cond\": [\n { \"$ne\": [\"&AvgDuration\", 0] },\n { \"$divide\": [\"&total_flops\", \"&AvgDuration\"] },\n 0\n ]\n }\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L2-MFMA", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&MFMAF32Flops\", \"&MFMAF64Flops\"]\n },\n \"then\": \"&MFMAF64Flops\",\n \"else\": \"&MFMAF32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L2_MFMA\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L2Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L2Bw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L1-MFMA", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&MFMAF32Flops\", \"&MFMAF64Flops\"]\n },\n \"then\": \"&MFMAF64Flops\",\n \"else\": \"&MFMAF32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L1_MFMA\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L1Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L1Bw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "jYrBWHfnz" - }, - "hide": false, - "rawQuery": true, - "refId": "LDS-MFMA", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&MFMAF32Flops\", \"&MFMAF64Flops\"]\n },\n \"then\": \"&MFMAF64Flops\",\n \"else\": \"&MFMAF32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_LDS_MFMA\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&LDSBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&LDSBw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - } - ], - "title": "Empirical Roofline FP32/FP64 (MI200)", - "type": "natel-plotly-panel", - "version": 1 - }, - { - "gridPos": { - "h": 28, - "w": 24, - "x": 0, - "y": 33 - }, - "id": 312, - "pconfig": { - "fixScale": "", - "layout": { - "dragmode": "zoom", - "font": { - "family": "\"Open Sans\", Helvetica, Arial, sans-serif" - }, - "hovermode": "closest", - "legend": { - "orientation": "v" - }, - "showlegend": true, - "xaxis": { - "range": [ - -2, - 3.8 - ], - "rangemode": "between", - "showgrid": true, - "title": "Arithmetic Intensity (FLOP/Byte)", - "type": "log", - "zeroline": false - }, - "yaxis": { - "rangemode": "normal", - "showgrid": true, - "title": "Performance (GFLOP/sec)", - "type": "log", - "zeroline": false - }, - "zaxis": { - "rangemode": "normal", - "showgrid": true, - "type": "linear", - "zeroline": false - } - }, - "loadFromCDN": false, - "settings": { - "displayModeBar": false, - "type": "scatter" - }, - "showAnnotations": true, - "traces": [ - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "cur_ai_hbm", - "y": "cur_perf" - }, - "name": "Cur - HBM", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#F2495C", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "square" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "cur_ai_L2", - "y": "cur_perf" - }, - "name": "Cur - L2", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#5794F2", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "diamond" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "cur_ai_L1", - "y": "cur_perf" - }, - "name": "Cur - vL1D", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "base_ai_hbm", - "y": "base_perf" - }, - "name": "Baseline - HBM", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#F2495C", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "square-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "base_ai_L2", - "y": "base_perf" - }, - "name": "Baseline - L2", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#5794F2", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "diamond-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "base_ai_L1", - "y": "base_perf" - }, - "name": "Baseline - vL1D", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "xrange", - "y": "roofline_hbm_MFMA_fp16" - }, - "name": "HBM-MFMA-FP16", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "xrange", - "y": "roofline_L2_MFMA_fp16" - }, - "name": "L2-MFMA-FP16", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "xrange", - "y": "roofline_L1_MFMA_fp16" - }, - "name": "vL1D-MFMA-FP16", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "LDSBw_peak", - "x": "xrange", - "y": "roofline_LDS_MFMA_fp16" - }, - "name": "LDS-MFMA-FP16", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "xrange", - "y": "roofline_hbm_MFMA_i8" - }, - "name": "HBM-MFMA-I8", - "settings": { - "color_option": "solid", - "line": { - "color": "#FA6400", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "xrange", - "y": "roofline_L2_MFMA_i8" - }, - "name": "L2-MFMA-I8", - "settings": { - "color_option": "solid", - "line": { - "color": "#FA6400", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "xrange", - "y": "roofline_L1_MFMA_i8" - }, - "name": "vL1D-MFMA-I8", - "settings": { - "color_option": "solid", - "line": { - "color": "#FA6400", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "LDSBw_peak", - "x": "xrange", - "y": "roofline_LDS_MFMA_i8" - }, - "name": "LDS-MFMA-I8", - "settings": { - "color_option": "solid", - "line": { - "color": "#FA6400", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - } - ] - }, - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "HBM-MFMA-FP16", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAF16Flops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_hbm_MFMA_fp16\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&HBMBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&HBMBw\"] },\n \"else\": \"$high_flop\"\n }\n },\n \"hbmBw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&HBMBw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "HBM-MFMA-I8", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAI8Ops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_hbm_MFMA_i8\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&HBMBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&HBMBw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "Cur Workload", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n { \"$group\": { \n \"_id\": \"&KernelName\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"lds_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]\n } \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n }\n\n\n }},\n {\"$sort\": { \"TotalDuration\": -1 }},\n { \"$limit\": 10 },\n {\"$project\": {\n \"_id\": 0,\n \"Kernel\": \"&KernelName\",\n \"cur_ai_L1\": {\n \"$cond\": [\n { \"$ne\": [\"&L1cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"] },\n 0\n ]\n },\n \"cur_ai_L2\": {\n \"$cond\": [\n { \"$ne\": [\"&L2cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"] },\n 0\n ]\n },\n \"cur_ai_hbm\": {\n \"$cond\": [\n { \"$ne\": [\"&hbm_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"] },\n 0\n ]\n },\n \"cur_perf\": { \n \"$cond\": [\n { \"$ne\": [\"&AvgDuration\", 0] },\n { \"$divide\": [\"&total_flops\", \"&AvgDuration\"] },\n 0\n ]\n }\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "Baseline Workload", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Roofline)\"}}\n }},\n { \"$group\": { \n \"_id\": \"&KernelName\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"lds_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]\n } \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n }\n\n\n }},\n {\"$sort\": { \"TotalDuration\": -1 }},\n { \"$limit\": 10 },\n {\"$project\": {\n \"_id\": 0,\n \"Kernel\": \"&KernelName\",\n \"base_ai_L1\": {\n \"$cond\": [\n { \"$ne\": [\"&L1cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"] },\n 0\n ]\n },\n \"base_ai_L2\": {\n \"$cond\": [\n { \"$ne\": [\"&L2cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"] },\n 0\n ]\n },\n \"base_ai_hbm\": {\n \"$cond\": [\n { \"$ne\": [\"&hbm_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"] },\n 0\n ]\n },\n \"base_perf\": { \n \"$cond\": [\n { \"$ne\": [\"&AvgDuration\", 0] },\n { \"$divide\": [\"&total_flops\", \"&AvgDuration\"] },\n 0\n ]\n }\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L2-MFMA-FP16", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAF16Flops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L2_MFMA_fp16\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L2Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L2Bw\"] },\n \"else\": \"$high_flop\"\n }\n },\n \"L2Bw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&L2Bw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L2-MFMA-I8", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAI8Ops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L2_MFMA_i8\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L2Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L2Bw\"] },\n \"else\": \"$high_flop\"\n }\n }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L1-MFMA-FP16", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAF16Flops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L1_MFMA_fp16\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L1Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L1Bw\"] },\n \"else\": \"$high_flop\"\n }\n },\n \"L1Bw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&L1Bw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L1-MFMA-I8", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAI8Ops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L1_MFMA_i8\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L1Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L1Bw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "jYrBWHfnz" - }, - "hide": false, - "rawQuery": true, - "refId": "LDS-MFMA-FP16", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAF16Flops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_LDS_MFMA_fp16\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&LDSBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&LDSBw\"] },\n \"else\": \"$high_flop\"\n }\n },\n \"LDSBw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&LDSBw\", 1] },0, 32]}, \" GB/s\"] }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "jYrBWHfnz" - }, - "hide": false, - "rawQuery": true, - "refId": "LDS-MFMA-I8", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAI8Ops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_LDS_MFMA_i8\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&LDSBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&LDSBw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - } - ], - "title": "Empirical Roofline FP16/INT8 (MI200)", - "type": "natel-plotly-panel", - "version": 1 - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Roofline Analysis", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 5 - }, - "id": 2, - "panels": [ - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 115 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 118 - } - ] - } - ] - }, - "gridPos": { - "h": 13, - "w": 13, - "x": 0, - "y": 6 - }, - "id": 6, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1 \n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"gpuBusy_avg\": {\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\": {\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\": {\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n\n \"cpfBusy_avg\": {\"$avg\": \"&CPF_CPF_STAT_BUSY\"},\n \"cpfBusy_min\": {\"$min\": \"&CPF_CPF_STAT_BUSY\"},\n \"cpfBusy_max\": {\"$max\": \"&CPF_CPF_STAT_BUSY\"},\n\n \"cpfUtil_avg\": {\"$avg\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n \"cpfUtil_min\": {\"$min\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n \"cpfUtil_max\": {\"$max\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n\n \"cpfStall_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n \"cpfStall_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n \"cpfStall_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n\n \"l2CacheBusy_avg\": {\"$avg\": \"&CPF_CPF_TCIU_BUSY\"},\n \"l2CacheBusy_min\": {\"$min\": \"&CPF_CPF_TCIU_BUSY\"},\n \"l2CacheBusy_max\": {\"$max\": \"&CPF_CPF_TCIU_BUSY\"},\n\n \"l2CacheUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheStall_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n \"l2CacheStall_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n \"l2CacheStall_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n\n \"utcL1Stall_avg\": {\"$avg\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_min\": {\"$min\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_max\": {\"$max\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"}\n\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy Cycles\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"CPF Busy\",\n \"Avg\": \"&cpfBusy_avg\",\n \"Min\": \"&cpfBusy_min\",\n \"Max\": \"&cpfBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"CPF Util\",\n \"Avg\": \"&cpfUtil_avg\",\n \"Min\": \"&cpfUtil_min\",\n \"Max\": \"&cpfUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPF Stall\",\n \"Avg\": \"&cpfStall_avg\",\n \"Min\": \"&cpfStall_min\",\n \"Max\": \"&cpfStall_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"L2Cache Intf Busy\",\n \"Avg\": \"&l2CacheBusy_avg\",\n \"Min\": \"&l2CacheBusy_min\",\n \"Max\": \"&l2CacheBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"L2Cache Intf Util\",\n \"Avg\": \"&l2CacheUtil_avg\",\n \"Min\": \"&l2CacheUtil_min\",\n \"Max\": \"&l2CacheUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"L2Cache Intf Stall\",\n \"Avg\": \"&l2CacheStall_avg\",\n \"Min\": \"&l2CacheStall_min\",\n \"Max\": \"&l2CacheStall_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"UTCL1 Stall\",\n \"Avg\": \"&utcL1Stall_avg\",\n \"Min\": \"&utcL1Stall_min\",\n \"Max\": \"&utcL1Stall_max\", \n \"Unit\": \"Cycles/Kernel\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Command Processor)\"}}\n }},\n\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1 \n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"gpuBusy_avg\": {\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\": {\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\": {\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n \"cpfBusy_avg\": {\"$avg\": \"&CPF_CPF_STAT_BUSY\"},\n \"cpfBusy_min\": {\"$min\": \"&CPF_CPF_STAT_BUSY\"},\n \"cpfBusy_max\": {\"$max\": \"&CPF_CPF_STAT_BUSY\"},\n\n \"cpfUtil_avg\": {\"$avg\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n \"cpfUtil_min\": {\"$min\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n \"cpfUtil_max\": {\"$max\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n\n \"cpfStall_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n \"cpfStall_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n \"cpfStall_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n\n \"l2CacheBusy_avg\": {\"$avg\": \"&CPF_CPF_TCIU_BUSY\"},\n \"l2CacheBusy_min\": {\"$min\": \"&CPF_CPF_TCIU_BUSY\"},\n \"l2CacheBusy_max\": {\"$max\": \"&CPF_CPF_TCIU_BUSY\"},\n\n \"l2CacheUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheStall_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n \"l2CacheStall_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n \"l2CacheStall_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n\n \"utcL1Stall_avg\": {\"$avg\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_min\": {\"$min\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_max\": {\"$max\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"}\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy Cycles\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"CPF Busy\",\n \"Avg\": \"&cpfBusy_avg\",\n \"Min\": \"&cpfBusy_min\",\n \"Max\": \"&cpfBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"CPF Util\",\n \"Avg\": \"&cpfUtil_avg\",\n \"Min\": \"&cpfUtil_min\",\n \"Max\": \"&cpfUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPF Stall\",\n \"Avg\": \"&cpfStall_avg\",\n \"Min\": \"&cpfStall_min\",\n \"Max\": \"&cpfStall_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"L2Cache Intf Busy\",\n \"Avg\": \"&l2CacheBusy_avg\",\n \"Min\": \"&l2CacheBusy_min\",\n \"Max\": \"&l2CacheBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"L2Cache Intf Util\",\n \"Avg\": \"&l2CacheUtil_avg\",\n \"Min\": \"&l2CacheUtil_min\",\n \"Max\": \"&l2CacheUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"L2Cache Intf Stall\",\n \"Avg\": \"&l2CacheStall_avg\",\n \"Min\": \"&l2CacheStall_min\",\n \"Max\": \"&l2CacheStall_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"UTCL1 Stall\",\n \"Avg\": \"&utcL1Stall_avg\",\n \"Min\": \"&utcL1Stall_min\",\n \"Max\": \"&utcL1Stall_max\", \n \"Unit\": \"Cycles/Kernel\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Command Processor Fetcher", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 83 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 171 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 148 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 180 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 118 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baselin)" - }, - "properties": [ - { - "id": "custom.width", - "value": 139 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 138 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 147 - } - ] - } - ] - }, - "gridPos": { - "h": 13, - "w": 11, - "x": 13, - "y": 6 - }, - "id": 4, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \n \"gpuBusy_avg\": {\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\": {\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\": {\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n\n \"cpcBusy_avg\": {\"$avg\": \"&CPC_CPC_STAT_BUSY\"},\n \"cpcBusy_min\": {\"$min\": \"&CPC_CPC_STAT_BUSY\"},\n \"cpcBusy_max\": {\"$max\": \"&CPC_CPC_STAT_BUSY\"},\n\n \"cpcUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n \"cpcUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n \"cpcUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n\n \"cpcStall_avg\": {\"$avg\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStall_min\": {\"$min\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStall_max\": {\"$max\": \"&CPC_CPC_STAT_STALL\"},\n\n \"cpcStallCycles_avg\": {\"$avg\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStallCycles_min\": {\"$min\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStallCycles_max\": {\"$max\": \"&CPC_CPC_STAT_STALL\"},\n\n \"cpcStallRate_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"cpcStallRate_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"cpcStallRate_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n\n \"cpcPacketDecoding_avg\":{\"$avg\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n \"cpcPacketDecoding_min\":{\"$min\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n \"cpcPacketDecoding_max\":{\"$max\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n\n \"spiBusy_avg\":{\"$avg\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n \"spiBusy_min\":{\"$min\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n \"spiBusy_max\":{\"$max\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n\n \"spiUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"spiUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"spiUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n\n \"l2CacheBusy_avg\":{\"$avg\": \"&CPC_CPC_TCIU_BUSY\"},\n \"l2CacheBusy_min\":{\"$min\": \"&CPC_CPC_TCIU_BUSY\"},\n \"l2CacheBusy_max\":{\"$max\": \"&CPC_CPC_TCIU_BUSY\"},\n\n \"l2CacheUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n \"l2CacheUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n \"l2CacheUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n\n \"utcL1Stall_avg\":{\"$avg\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_min\":{\"$min\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_max\":{\"$max\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n\n \"utcL2Busy_avg\":{\"$avg\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n \"utcL2Busy_min\":{\"$min\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n \"utcL2Busy_max\":{\"$max\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n\n \"utcL2Util_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }},\n \"utcL2Util_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }},\n \"utcL2Util_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }}\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy Cycles\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Busy Cycles\",\n \"Avg\": \"&cpcBusy_avg\",\n \"Min\": \"&cpcBusy_min\",\n \"Max\": \"&cpcBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Util\",\n \"Avg\": \"&cpcUtil_avg\",\n \"Min\": \"&cpcUtil_min\",\n \"Max\": \"&cpcUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPC Stall Cycles\",\n \"Avg\": \"&cpcStallCycles_avg\",\n \"Min\": \"&cpcStallCycles_min\",\n \"Max\": \"&cpcStallCycles_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Stall Rate\",\n \"Avg\": \"&cpcStallRate_avg\",\n \"Min\": \"&cpcStallRate_min\",\n \"Max\": \"&cpcStallRate_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPC Packet Decoding\",\n \"Avg\": \"&cpcPacketDecoding_avg\",\n \"Min\": \"&cpcPacketDecoding_min\",\n \"Max\": \"&cpcPacketDecoding_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Intf Busy Cycles\",\n \"Avg\": \"&spiBusy_avg\",\n \"Min\": \"&spiBusy_min\",\n \"Max\": \"&spiBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Intf Util\",\n \"Avg\": \"&spiUtil_avg\",\n \"Min\": \"&spiUtil_min\",\n \"Max\": \"&spiUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"L2Cache Intf Util\",\n \"Avg\": \"&l2CacheUtil_avg\",\n \"Min\": \"&l2CacheUtil_min\",\n \"Max\": \"&l2CacheUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"UTCL1 Stall Cycles\",\n \"Avg\": \"&utcL1Stall_avg\",\n \"Min\": \"&utcL1Stall_min\",\n \"Max\": \"&utcL1Stall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"UTCL2 Intf Busy Cycles\",\n \"Avg\": \"&utcL2Busy_avg\",\n \"Min\": \"&utcL2Busy_min\",\n \"Max\": \"&utcL2Busy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"UTCL2 Intf Util\",\n \"Avg\": \"&utcL2Util_avg\",\n \"Min\": \"&utcL2Util_min\",\n \"Max\": \"&utcL2Util_max\", \n \"Unit\": \"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Command Processor)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \n \"gpuBusy_avg\": {\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\": {\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\": {\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n \"cpcBusy_avg\": {\"$avg\": \"&CPC_CPC_STAT_BUSY\"},\n \"cpcBusy_min\": {\"$min\": \"&CPC_CPC_STAT_BUSY\"},\n \"cpcBusy_max\": {\"$max\": \"&CPC_CPC_STAT_BUSY\"},\n\n \"cpcUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n \"cpcUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n \"cpcUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n\n \"cpcStall_avg\": {\"$avg\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStall_min\": {\"$min\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStall_max\": {\"$max\": \"&CPC_CPC_STAT_STALL\"},\n\n \"cpcStallCycles_avg\": {\"$avg\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStallCycles_min\": {\"$min\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStallCycles_max\": {\"$max\": \"&CPC_CPC_STAT_STALL\"},\n\n \"cpcStallRate_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"cpcStallRate_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"cpcStallRate_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n\n \"cpcPacketDecoding_avg\":{\"$avg\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n \"cpcPacketDecoding_min\":{\"$min\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n \"cpcPacketDecoding_max\":{\"$max\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n\n \"spiBusy_avg\":{\"$avg\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n \"spiBusy_min\":{\"$min\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n \"spiBusy_max\":{\"$max\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n\n \"spiUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"spiUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"spiUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n\n \"l2CacheBusy_avg\":{\"$avg\": \"&CPC_CPC_TCIU_BUSY\"},\n \"l2CacheBusy_min\":{\"$min\": \"&CPC_CPC_TCIU_BUSY\"},\n \"l2CacheBusy_max\":{\"$max\": \"&CPC_CPC_TCIU_BUSY\"},\n\n \"l2CacheUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n \"l2CacheUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n \"l2CacheUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n\n \"utcL1Stall_avg\":{\"$avg\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_min\":{\"$min\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_max\":{\"$max\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n\n \"utcL2Busy_avg\":{\"$avg\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n \"utcL2Busy_min\":{\"$min\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n \"utcL2Busy_max\":{\"$max\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n\n \"utcL2Util_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }},\n \"utcL2Util_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }},\n \"utcL2Util_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }}\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy Cycles\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Busy Cycles\",\n \"Avg\": \"&cpcBusy_avg\",\n \"Min\": \"&cpcBusy_min\",\n \"Max\": \"&cpcBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Util\",\n \"Avg\": \"&cpcUtil_avg\",\n \"Min\": \"&cpcUtil_min\",\n \"Max\": \"&cpcUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPC Stall Cycles\",\n \"Avg\": \"&cpcStallCycles_avg\",\n \"Min\": \"&cpcStallCycles_min\",\n \"Max\": \"&cpcStallCycles_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Stall Rate\",\n \"Avg\": \"&cpcStallRate_avg\",\n \"Min\": \"&cpcStallRate_min\",\n \"Max\": \"&cpcStallRate_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPC Packet Decoding\",\n \"Avg\": \"&cpcPacketDecoding_avg\",\n \"Min\": \"&cpcPacketDecoding_min\",\n \"Max\": \"&cpcPacketDecoding_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Intf Busy Cycles\",\n \"Avg\": \"&spiBusy_avg\",\n \"Min\": \"&spiBusy_min\",\n \"Max\": \"&spiBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Intf Util\",\n \"Avg\": \"&spiUtil_avg\",\n \"Min\": \"&spiUtil_min\",\n \"Max\": \"&spiUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"L2Cache Intf Util\",\n \"Avg\": \"&l2CacheUtil_avg\",\n \"Min\": \"&l2CacheUtil_min\",\n \"Max\": \"&l2CacheUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"UTCL1 Stall Cycles\",\n \"Avg\": \"&utcL1Stall_avg\",\n \"Min\": \"&utcL1Stall_min\",\n \"Max\": \"&utcL1Stall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"UTCL2 Intf Busy Cycles\",\n \"Avg\": \"&utcL2Busy_avg\",\n \"Min\": \"&utcL2Busy_min\",\n \"Max\": \"&utcL2Busy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"UTCL2 Intf Util\",\n \"Avg\": \"&utcL2Util_avg\",\n \"Min\": \"&utcL2Util_min\",\n \"Max\": \"&utcL2Util_max\", \n \"Unit\": \"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Command Processor Compute", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Metric 1": "", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Command Processor (CPC/CPF)", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 6 - }, - "id": 102, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 101 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg 1" - }, - "properties": [ - { - "id": "custom.width", - "value": 121 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min 1" - }, - "properties": [ - { - "id": "custom.width", - "value": 96 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max 1" - }, - "properties": [ - { - "id": "custom.width", - "value": 145 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg 2" - }, - "properties": [ - { - "id": "custom.width", - "value": 97 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min 2" - }, - "properties": [ - { - "id": "custom.width", - "value": 128 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 130 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 123 - } - ] - } - ] - }, - "gridPos": { - "h": 15, - "w": 12, - "x": 0, - "y": 7 - }, - "id": 106, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"csBusy_avg\":{\"$avg\": \"&SPI_CSN_BUSY\"},\n \"csBusy_min\":{\"$min\": \"&SPI_CSN_BUSY\"},\n \"csBusy_max\":{\"$max\": \"&SPI_CSN_BUSY\"},\n\n \"gpuBusy_avg\":{\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\":{\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\":{\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n \"spiBusy_avg\":{\"$avg\": \"&GRBM_SPI_BUSY\"},\n \"spiBusy_min\":{\"$min\": \"&GRBM_SPI_BUSY\"},\n \"spiBusy_max\":{\"$max\": \"&GRBM_SPI_BUSY\"},\n\n \"sqBusy_avg\":{\"$avg\": \"&SQ_BUSY_CYCLES\"},\n \"sqBusy_min\":{\"$min\": \"&SQ_BUSY_CYCLES\"},\n \"sqBusy_max\":{\"$max\": \"&SQ_BUSY_CYCLES\"},\n\n \"dispatchedWorkgroups_avg\":{\"$avg\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n \"dispatchedWorkgroups_min\":{\"$min\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n \"dispatchedWorkgroups_max\":{\"$max\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n\n \"dispatchedWavefronts_avg\":{\"$avg\": \"&SPI_CSN_WAVE\"},\n \"dispatchedWavefronts_min\":{\"$min\": \"&SPI_CSN_WAVE\"},\n \"dispatchedWavefronts_max\":{\"$max\": \"&SPI_CSN_WAVE\"},\n\n\n \"waveAllocFail_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC\"},\n \"waveAllocFail_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC\"},\n \"waveAllocFail_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC\"},\n\n \"waveAllocFailCS_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveAllocFailCS_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveAllocFailCS_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"}\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Busy\",\n \"Avg\": \"&csBusy_avg\",\n \"Min\": \"&csBusy_min\",\n \"Max\": \"&csBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Busy\",\n \"Avg\": \"&spiBusy_avg\",\n \"Min\": \"&spiBusy_min\",\n \"Max\": \"&spiBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SQ Busy\",\n \"Avg\": \"&sqBusy_avg\",\n \"Min\": \"&sqBusy_min\",\n \"Max\": \"&sqBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Dispatched Workgroups\",\n \"Avg\": \"&dispatchedWorkgroups_avg\",\n \"Min\": \"&dispatchedWorkgroups_min\",\n \"Max\": \"&dispatchedWorkgroups_max\", \n \"Unit\": \"Workgroups\"\n },\n {\n \"Metric\": \"Dispatched Wavefronts\",\n \"Avg\": \"&dispatchedWavefronts_avg\",\n \"Min\": \"&dispatchedWavefronts_min\",\n \"Max\": \"&dispatchedWavefronts_max\", \n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Wave Alloc Failed\",\n \"Avg\": \"&waveAllocFail_avg\",\n \"Min\": \"&waveAllocFail_min\",\n \"Max\": \"&waveAllocFail_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Wave Alloc Failed - CS\",\n \"Avg\": \"&waveAllocFailCS_avg\",\n \"Min\": \"&waveAllocFailCS_min\",\n \"Max\": \"&waveAllocFailCS_max\", \n \"Unit\": \"Cycles\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Shader Processor Input)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"csBusy_avg\":{\"$avg\": \"&SPI_CSN_BUSY\"},\n \"csBusy_min\":{\"$min\": \"&SPI_CSN_BUSY\"},\n \"csBusy_max\":{\"$max\": \"&SPI_CSN_BUSY\"},\n\n \"gpuBusy_avg\":{\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\":{\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\":{\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n \"spiBusy_avg\":{\"$avg\": \"&GRBM_SPI_BUSY\"},\n \"spiBusy_min\":{\"$min\": \"&GRBM_SPI_BUSY\"},\n \"spiBusy_max\":{\"$max\": \"&GRBM_SPI_BUSY\"},\n\n \"sqBusy_avg\":{\"$avg\": \"&SQ_BUSY_CYCLES\"},\n \"sqBusy_min\":{\"$min\": \"&SQ_BUSY_CYCLES\"},\n \"sqBusy_max\":{\"$max\": \"&SQ_BUSY_CYCLES\"},\n\n \"dispatchedWorkgroups_avg\":{\"$avg\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n \"dispatchedWorkgroups_min\":{\"$min\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n \"dispatchedWorkgroups_max\":{\"$max\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n\n \"dispatchedWavefronts_avg\":{\"$avg\": \"&SPI_CSN_WAVE\"},\n \"dispatchedWavefronts_min\":{\"$min\": \"&SPI_CSN_WAVE\"},\n \"dispatchedWavefronts_max\":{\"$max\": \"&SPI_CSN_WAVE\"},\n\n \"waveAllocFail_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC\"},\n \"waveAllocFail_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC\"},\n \"waveAllocFail_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC\"},\n\n \"waveAllocFailCS_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveAllocFailCS_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveAllocFailCS_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"}\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Busy\",\n \"Avg\": \"&csBusy_avg\",\n \"Min\": \"&csBusy_min\",\n \"Max\": \"&csBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Busy\",\n \"Avg\": \"&spiBusy_avg\",\n \"Min\": \"&spiBusy_min\",\n \"Max\": \"&spiBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SQ Busy\",\n \"Avg\": \"&sqBusy_avg\",\n \"Min\": \"&sqBusy_min\",\n \"Max\": \"&sqBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Dispatched Workgroups\",\n \"Avg\": \"&dispatchedWorkgroups_avg\",\n \"Min\": \"&dispatchedWorkgroups_min\",\n \"Max\": \"&dispatchedWorkgroups_max\", \n \"Unit\": \"Workgroups\"\n },\n {\n \"Metric\": \"Dispatched Wavefronts\",\n \"Avg\": \"&dispatchedWavefronts_avg\",\n \"Min\": \"&dispatchedWavefronts_min\",\n \"Max\": \"&dispatchedWavefronts_max\", \n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Wave Alloc Failed\",\n \"Avg\": \"&waveAllocFail_avg\",\n \"Min\": \"&waveAllocFail_min\",\n \"Max\": \"&waveAllocFail_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Wave Alloc Failed - CS\",\n \"Avg\": \"&waveAllocFailCS_avg\",\n \"Min\": \"&waveAllocFailCS_min\",\n \"Max\": \"&waveAllocFailCS_max\", \n \"Unit\": \"Cycles\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "SPI Stats", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)", - "Unit 1": "" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 117 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 110 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 121 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 285 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 102 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 122 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 242 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 121 - } - ] - } - ] - }, - "gridPos": { - "h": 15, - "w": 12, - "x": 12, - "y": 7 - }, - "id": 104, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"waveReqFailCS_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveReqFailCS_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveReqFailCS_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n\n \"csStall_avg\":{\"$avg\": \"&SPI_RA_RES_STALL_CSN\"},\n \"csStall_min\":{\"$min\": \"&SPI_RA_RES_STALL_CSN\"},\n \"csStall_max\":{\"$max\": \"&SPI_RA_RES_STALL_CSN\"},\n\n \"csStallRate_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n \"csStallRate_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n \"csStallRate_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n\n \"scratchStall_avg\":{\"$avg\": \"&SPI_RA_TMP_STALL_CSN\"},\n \"scratchStall_min\":{\"$min\": \"&SPI_RA_TMP_STALL_CSN\"},\n \"scratchStall_max\":{\"$max\": \"&SPI_RA_TMP_STALL_CSN\"},\n\n \"simdWaveslots_avg\":{\"$avg\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n \"simdWaveslots_min\":{\"$min\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n \"simdWaveslots_max\":{\"$max\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n\n \"simdVGPRs_avg\":{\"$avg\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n \"simdVGPRs_min\":{\"$min\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n \"simdVGPRs_max\":{\"$max\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n\n \"simdSGPRs_avg\":{\"$avg\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n \"simdSGPRs_min\":{\"$min\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n \"simdSGPRs_max\":{\"$max\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n\n \"cuLDS_avg\":{\"$avg\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n \"cuLDS_min\":{\"$min\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n \"cuLDS_max\":{\"$max\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n\n \"cuBarries_avg\":{\"$avg\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n \"cuBarries_min\":{\"$min\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n \"cuBarries_max\":{\"$max\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n\n \"bulkyResource_avg\":{\"$avg\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n \"bulkyResource_min\":{\"$min\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n \"bulkyResource_max\":{\"$max\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n\n \"threadgroupLimit_avg\":{\"$avg\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n \"threadgroupLimit_min\":{\"$min\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n \"threadgroupLimit_max\":{\"$max\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n\n \"waveLimit_avg\":{\"$avg\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n \"waveLimit_min\":{\"$min\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n \"waveLimit_max\":{\"$max\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n\n \"vgprsWrites_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n \"vgprsWrites_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n \"vgprsWrites_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n\n \"sgprsWrites_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \"sgprsWrites_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \"sgprsWrites_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \n \n \"sgprsWritesUti_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }},\n \"sgprsWritesUti_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }},\n \"sgprsWritesUti_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }}\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave request Failed (CS)\",\n \"Avg\": \"&waveReqFailCS_avg\",\n \"Min\": \"&waveReqFailCS_min\",\n \"Max\": \"&waveReqFailCS_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Stall\",\n \"Avg\": \"&csStall_avg\",\n \"Min\": \"&csStall_min\",\n \"Max\": \"&csStall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Stall Rate\",\n \"Avg\": \"&csStallRate_avg\",\n \"Min\": \"&csStallRate_min\",\n \"Max\": \"&csStallRate_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"Scratch Stall\",\n \"Avg\": \"&scratchStall_avg\",\n \"Min\": \"&scratchStall_min\",\n \"Max\": \"&scratchStall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Insufficient SIMD Waveslots\",\n \"Avg\": \"&simdWaveslots_avg\",\n \"Min\": \"&simdWaveslots_min\",\n \"Max\": \"&simdWaveslots_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient SIMD VGPRs\",\n \"Avg\": \"&simdVGPRs_avg\",\n \"Min\": \"&simdVGPRs_min\",\n \"Max\": \"&simdVGPRs_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient SIMD SGPRs\",\n \"Avg\": \"&simdSGPRs_avg\",\n \"Min\": \"&simdSGPRs_min\",\n \"Max\": \"&simdSGPRs_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient CU LDS\",\n \"Avg\": \"&cuLDS_avg\",\n \"Min\": \"&cuLDS_min\",\n \"Max\": \"&cuLDS_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Insufficient CU Barries\",\n \"Avg\": \"&cuBarries_avg\",\n \"Min\": \"&cuBarries_min\",\n \"Max\": \"&cuBarries_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Insufficient Bulky Resource\",\n \"Avg\": \"&bulkyResource_avg\",\n \"Min\": \"&bulkyResource_min\",\n \"Max\": \"&bulkyResource_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Reach CU Threadgroups Limit\",\n \"Avg\": \"&threadgroupLimit_avg\",\n \"Min\": \"&threadgroupLimit_min\",\n \"Max\": \"&threadgroupLimit_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Reach CU Wave Limit\",\n \"Avg\": \"&waveLimit_avg\",\n \"Min\": \"&waveLimit_min\",\n \"Max\": \"&waveLimit_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"VGPR Writes\",\n \"Avg\": \"&vgprsWrites_avg\",\n \"Min\": \"&vgprsWrites_min\",\n \"Max\": \"&vgprsWrites_max\", \n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"SGPR Writes\",\n \"Avg\": \"&sgprsWrites_avg\",\n \"Min\": \"&sgprsWrites_min\",\n \"Max\": \"&sgprsWrites_max\", \n \"Unit\": \"Cycles/wave\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Shader Processor Input)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"waveReqFailCS_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveReqFailCS_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveReqFailCS_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n\n \"csStall_avg\":{\"$avg\": \"&SPI_RA_RES_STALL_CSN\"},\n \"csStall_min\":{\"$min\": \"&SPI_RA_RES_STALL_CSN\"},\n \"csStall_max\":{\"$max\": \"&SPI_RA_RES_STALL_CSN\"},\n\n \"csStallRate_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n \"csStallRate_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n \"csStallRate_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n\n \"scratchStall_avg\":{\"$avg\": \"&SPI_RA_TMP_STALL_CSN\"},\n \"scratchStall_min\":{\"$min\": \"&SPI_RA_TMP_STALL_CSN\"},\n \"scratchStall_max\":{\"$max\": \"&SPI_RA_TMP_STALL_CSN\"},\n\n \"simdWaveslots_avg\":{\"$avg\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n \"simdWaveslots_min\":{\"$min\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n \"simdWaveslots_max\":{\"$max\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n\n \"simdVGPRs_avg\":{\"$avg\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n \"simdVGPRs_min\":{\"$min\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n \"simdVGPRs_max\":{\"$max\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n\n \"simdSGPRs_avg\":{\"$avg\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n \"simdSGPRs_min\":{\"$min\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n \"simdSGPRs_max\":{\"$max\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n\n \"cuLDS_avg\":{\"$avg\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n \"cuLDS_min\":{\"$min\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n \"cuLDS_max\":{\"$max\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n\n \"cuBarries_avg\":{\"$avg\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n \"cuBarries_min\":{\"$min\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n \"cuBarries_max\":{\"$max\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n\n \"bulkyResource_avg\":{\"$avg\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n \"bulkyResource_min\":{\"$min\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n \"bulkyResource_max\":{\"$max\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n\n \"threadgroupLimit_avg\":{\"$avg\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n \"threadgroupLimit_min\":{\"$min\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n \"threadgroupLimit_max\":{\"$max\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n\n \"waveLimit_avg\":{\"$avg\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n \"waveLimit_min\":{\"$min\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n \"waveLimit_max\":{\"$max\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n\n \"vgprsWrites_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n \"vgprsWrites_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n \"vgprsWrites_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n\n \"sgprsWrites_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \"sgprsWrites_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \"sgprsWrites_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \n \n \"sgprsWritesUti_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }},\n \"sgprsWritesUti_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }},\n \"sgprsWritesUti_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }}\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave request Failed (CS)\",\n \"Avg\": \"&waveReqFailCS_avg\",\n \"Min\": \"&waveReqFailCS_min\",\n \"Max\": \"&waveReqFailCS_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Stall\",\n \"Avg\": \"&csStall_avg\",\n \"Min\": \"&csStall_min\",\n \"Max\": \"&csStall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Stall Rate\",\n \"Avg\": \"&csStallRate_avg\",\n \"Min\": \"&csStallRate_min\",\n \"Max\": \"&csStallRate_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"Scratch Stall\",\n \"Avg\": \"&scratchStall_avg\",\n \"Min\": \"&scratchStall_min\",\n \"Max\": \"&scratchStall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Insufficient SIMD Waveslots\",\n \"Avg\": \"&simdWaveslots_avg\",\n \"Min\": \"&simdWaveslots_min\",\n \"Max\": \"&simdWaveslots_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient SIMD VGPRs\",\n \"Avg\": \"&simdVGPRs_avg\",\n \"Min\": \"&simdVGPRs_min\",\n \"Max\": \"&simdVGPRs_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient SIMD SGPRs\",\n \"Avg\": \"&simdSGPRs_avg\",\n \"Min\": \"&simdSGPRs_min\",\n \"Max\": \"&simdSGPRs_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient CU LDS\",\n \"Avg\": \"&cuLDS_avg\",\n \"Min\": \"&cuLDS_min\",\n \"Max\": \"&cuLDS_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Insufficient CU Barries\",\n \"Avg\": \"&cuBarries_avg\",\n \"Min\": \"&cuBarries_min\",\n \"Max\": \"&cuBarries_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Insufficient Bulky Resource\",\n \"Avg\": \"&bulkyResource_avg\",\n \"Min\": \"&bulkyResource_min\",\n \"Max\": \"&bulkyResource_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Reach CU Threadgroups Limit\",\n \"Avg\": \"&threadgroupLimit_avg\",\n \"Min\": \"&threadgroupLimit_min\",\n \"Max\": \"&threadgroupLimit_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Reach CU Wave Limit\",\n \"Avg\": \"&waveLimit_avg\",\n \"Min\": \"&waveLimit_min\",\n \"Max\": \"&waveLimit_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"VGPR Writes\",\n \"Avg\": \"&vgprsWrites_avg\",\n \"Min\": \"&vgprsWrites_min\",\n \"Max\": \"&vgprsWrites_max\", \n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"SGPR Writes\",\n \"Avg\": \"&sgprsWrites_avg\",\n \"Min\": \"&sgprsWrites_min\",\n \"Max\": \"&sgprsWrites_max\", \n \"Unit\": \"Cycles/wave\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "SPI Resource Allocation", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Shader Processor Input (SPI)", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 7 - }, - "id": 185, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 169 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 142 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 196 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 174 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max" - }, - "properties": [ - { - "id": "custom.width", - "value": 168 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min" - }, - "properties": [ - { - "id": "custom.width", - "value": 272 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg" - }, - "properties": [ - { - "id": "custom.width", - "value": 225 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 100 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 103 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 115 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 117 - } - ] - } - ] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 0, - "y": 8 - }, - "id": 10, - "interval": "12h", - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"gridSize_avg\":{\"$avg\": \"&grd\"},\n \"gridSize_min\":{\"$min\": \"&grd\"},\n \"gridSize_max\":{\"$max\": \"&grd\"},\n\n \"workSize_avg\":{\"$avg\": \"&wgr\"},\n \"workSize_min\":{\"$min\": \"&wgr\"},\n \"workSize_max\":{\"$max\": \"&wgr\"},\n\n \"totWavefront_avg\":{\"$avg\": \"&SPI_CSN_WAVE\"},\n \"totWavefront_min\":{\"$min\": \"&SPI_CSN_WAVE\"},\n \"totWavefront_max\":{\"$max\": \"&SPI_CSN_WAVE\"},\n\n \"savedWavefront_avg\":{\"$avg\": \"&SQ_WAVES_SAVED\"},\n \"savedWavefront_min\":{\"$min\": \"&SQ_WAVES_SAVED\"},\n \"savedWavefront_max\":{\"$max\": \"&SQ_WAVES_SAVED\"},\n\n \"restoredWavefront_avg\":{\"$avg\": \"&SQ_WAVES_RESTORED\"},\n \"restoredWavefront_min\":{\"$min\": \"&SQ_WAVES_RESTORED\"},\n \"restoredWavefront_max\":{\"$max\": \"&SQ_WAVES_RESTORED\"},\n\n \"vgprs_avg\":{\"$avg\": \"&vgpr\"},\n \"vgprs_min\":{\"$min\": \"&vgpr\"},\n \"vgprs_max\":{\"$max\": \"&vgpr\"},\n\n \"sgprs_avg\":{\"$avg\": \"&sgpr\"},\n \"sgprs_min\":{\"$min\": \"&sgpr\"},\n \"sgprs_max\":{\"$max\": \"&sgpr\"},\n\n \"ldsAlloc_avg\":{\"$avg\": \"&lds\"},\n \"ldsAlloc_min\":{\"$min\": \"&lds\"},\n \"ldsAlloc_max\":{\"$max\": \"&lds\"},\n\n \"scratchAlloc_avg\":{\"$avg\": \"&scr\"},\n \"scratchAlloc_min\":{\"$min\": \"&scr\"},\n \"scratchAlloc_max\":{\"$max\": \"&scr\"}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Grid Size\",\n \"Avg\": \"&gridSize_avg\",\n \"Min\": \"&gridSize_min\",\n \"Max\": \"&gridSize_max\",\n \"Unit\": \"Work Items\"\n },\n {\n \"Metric\": \"Workgroup Size\",\n \"Avg\": \"&workSize_avg\",\n \"Min\": \"&workSize_min\",\n \"Max\": \"&workSize_max\",\n \"Unit\": \"Work Items\"\n },\n {\n \"Metric\": \"Total Wavefronts\",\n \"Avg\": \"&totWavefront_avg\",\n \"Min\": \"&totWavefront_min\",\n \"Max\": \"&totWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Saved Wavefronts\",\n \"Avg\": \"&savedWavefront_avg\",\n \"Min\": \"&savedWavefront_min\",\n \"Max\": \"&savedWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Restored Wavefronts\",\n \"Avg\": \"&restoredWavefront_avg\",\n \"Min\": \"&restoredWavefront_min\",\n \"Max\": \"&restoredWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"VGPRs\",\n \"Avg\": \"&vgprs_avg\",\n \"Min\": \"&vgprs_min\",\n \"Max\": \"&vgprs_max\",\n \"Unit\": \"Registers\"\n },\n {\n \"Metric\": \"SGPRs\",\n \"Avg\": \"&sgprs_avg\",\n \"Min\": \"&sgprs_min\",\n \"Max\": \"&sgprs_max\",\n \"Unit\":\"Registers\"\n },\n {\n \"Metric\": \"LDS Allocation\",\n \"Avg\": \"&ldsAlloc_avg\",\n \"Min\": \"&ldsAlloc_min\",\n \"Max\": \"&ldsAlloc_max\",\n \"Unit\": \"Bytes\"\n },\n {\n \"Metric\": \"Scratch Allocation\",\n \"Avg\": \"&scratchAlloc_avg\",\n \"Min\": \"&scratchAlloc_min\",\n \"Max\": \"&scratchAlloc_max\",\n \"Unit\": \"Bytes\"\n }\n \n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Wavefront)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"gridSize_avg\":{\"$avg\": \"&grd\"},\n \"gridSize_min\":{\"$min\": \"&grd\"},\n \"gridSize_max\":{\"$max\": \"&grd\"},\n\n \"workSize_avg\":{\"$avg\": \"&wgr\"},\n \"workSize_min\":{\"$min\": \"&wgr\"},\n \"workSize_max\":{\"$max\": \"&wgr\"},\n\n\n \"totWavefront_avg\":{\"$avg\": \"&SPI_CSN_WAVE\"},\n \"totWavefront_min\":{\"$min\": \"&SPI_CSN_WAVE\"},\n \"totWavefront_max\":{\"$max\": \"&SPI_CSN_WAVE\"},\n\n \"savedWavefront_avg\":{\"$avg\": \"&SQ_WAVES_SAVED\"},\n \"savedWavefront_min\":{\"$min\": \"&SQ_WAVES_SAVED\"},\n \"savedWavefront_max\":{\"$max\": \"&SQ_WAVES_SAVED\"},\n\n \"restoredWavefront_avg\":{\"$avg\": \"&SQ_WAVES_RESTORED\"},\n \"restoredWavefront_min\":{\"$min\": \"&SQ_WAVES_RESTORED\"},\n \"restoredWavefront_max\":{\"$max\": \"&SQ_WAVES_RESTORED\"},\n\n\n \"vgprs_avg\":{\"$avg\": \"&vgpr\"},\n \"vgprs_min\":{\"$min\": \"&vgpr\"},\n \"vgprs_max\":{\"$max\": \"&vgpr\"},\n\n \"sgprs_avg\":{\"$avg\": \"&sgpr\"},\n \"sgprs_min\":{\"$min\": \"&sgpr\"},\n \"sgprs_max\":{\"$max\": \"&sgpr\"},\n\n \"ldsAlloc_avg\":{\"$avg\": \"&lds\"},\n \"ldsAlloc_min\":{\"$min\": \"&lds\"},\n \"ldsAlloc_max\":{\"$max\": \"&lds\"},\n\n \"scratchAlloc_avg\":{\"$avg\": \"&scr\"},\n \"scratchAlloc_min\":{\"$min\": \"&scr\"},\n \"scratchAlloc_max\":{\"$max\": \"&scr\"}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Grid Size\",\n \"Avg\": \"&gridSize_avg\",\n \"Min\": \"&gridSize_min\",\n \"Max\": \"&gridSize_max\",\n \"Unit\": \"Work Items\"\n },\n {\n \"Metric\": \"Workgroup Size\",\n \"Avg\": \"&workSize_avg\",\n \"Min\": \"&workSize_min\",\n \"Max\": \"&workSize_max\",\n \"Unit\": \"Work Items\"\n },\n {\n \"Metric\": \"Total Wavefronts\",\n \"Avg\": \"&totWavefront_avg\",\n \"Min\": \"&totWavefront_min\",\n \"Max\": \"&totWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Saved Wavefronts\",\n \"Avg\": \"&savedWavefront_avg\",\n \"Min\": \"&savedWavefront_min\",\n \"Max\": \"&savedWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Restored Wavefronts\",\n \"Avg\": \"&restoredWavefront_avg\",\n \"Min\": \"&restoredWavefront_min\",\n \"Max\": \"&restoredWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"VGPRs\",\n \"Avg\": \"&vgprs_avg\",\n \"Min\": \"&vgprs_min\",\n \"Max\": \"&vgprs_max\",\n \"Unit\": \"Registers\"\n },\n {\n \"Metric\": \"SGPRs\",\n \"Avg\": \"&sgprs_avg\",\n \"Min\": \"&sgprs_min\",\n \"Max\": \"&sgprs_max\",\n \"Unit\":\"Registers\"\n },\n {\n \"Metric\": \"LDS Allocation\",\n \"Avg\": \"&ldsAlloc_avg\",\n \"Min\": \"&ldsAlloc_min\",\n \"Max\": \"&ldsAlloc_max\",\n \"Unit\": \"Bytes\"\n },\n {\n \"Metric\": \"Scratch Allocation\",\n \"Avg\": \"&scratchAlloc_avg\",\n \"Min\": \"&scratchAlloc_min\",\n \"Max\": \"&scratchAlloc_max\",\n \"Unit\": \"Bytes\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Wavefront Launch Stats", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true, - "Units 2": true, - "metric 2": true - }, - "indexByName": { - "Avg 1": 1, - "Avg 2": 2, - "Max 1": 5, - "Max 2": 6, - "Metric 1": 0, - "Metric 2": 7, - "Min 1": 3, - "Min 2": 4, - "Unit 1": 9, - "Unit 2": 8 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 148 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 122 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 106 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg" - }, - "properties": [ - { - "id": "custom.width", - "value": 223 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 169 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 165 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 133 - } - ] - } - ] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 12, - "y": 8 - }, - "id": 34, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"instrWavefront_avg\":{\"$avg\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n \"instrWavefront_min\":{\"$min\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n \"instrWavefront_max\":{\"$max\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n\n \"waveCycles_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n \"waveCycles_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n \"waveCycles_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n\n \"depWaitingCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"depWaitingCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"depWaitingCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"issueWaitCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"issueWaitCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"issueWaitCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"activeCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"activeCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"activeCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"kernelTime_avg\":{\"$avg\": {\"$subtract\": [ \"&EndNs\", \"&BeginNs\" ]}},\n \"kernelTime_min\":{\"$min\": {\"$subtract\": [ \"&EndNs\", \"&BeginNs\" ]}},\n \"kernelTime_max\":{\"$max\": {\"$subtract\": [ \"&EndNs\", \"&BeginNs\" ]}},\n\n \"kernelCycle_avg\":{\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"kernelCycle_min\":{\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"kernelCycle_max\":{\"$max\": \"&GRBM_GUI_ACTIVE\"}\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Kernel Time (Nanosec)\",\n \"Avg\": \"&kernelTime_avg\",\n \"Min\": \"&kernelTime_min\",\n \"Max\": \"&kernelTime_max\",\n \"Unit\":\"ns\"\n },\n {\n \"Metric\": \"Kernel Time (Cycles)\",\n \"Avg\": \"&kernelCycle_avg\",\n \"Min\": \"&kernelCycle_min\",\n \"Max\": \"&kernelCycle_max\",\n \"Unit\":\"Cycle\"\n },\n\n {\n \"Metric\": \"Instr/wavefront\",\n \"Avg\": \"&instrWavefront_avg\",\n \"Min\": \"&instrWavefront_min\",\n \"Max\": \"&instrWavefront_max\",\n \"Unit\": \"Instr/wavefront\"\n },\n {\n \"Metric\": \"Wave Cycles\",\n \"Avg\": \"&waveCycles_avg\",\n \"Min\": \"&waveCycles_min\",\n \"Max\": \"&waveCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Dependency Wait Cycles\",\n \"Avg\": \"&depWaitingCycles_avg\",\n \"Min\": \"&depWaitingCycles_min\",\n \"Max\": \"&depWaitingCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Issue Wait Cycles\",\n \"Avg\": \"&issueWaitCycles_avg\",\n \"Min\": \"&issueWaitCycles_min\",\n \"Max\": \"&issueWaitCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Active Cycles\",\n \"Avg\": \"&activeCycles_avg\",\n \"Min\": \"&activeCycles_min\",\n \"Max\": \"&activeCycles_max\",\n \"Unit\": \"Cycles/wave\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_LEVEL_WAVES\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"occAvg\": {\"$avg\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } },\n \"occMin\": {\"$min\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } },\n \"occMax\": {\"$max\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } }\n }},\n {\"$project\": {\n \"_id\":0,\n \"Metric\": \"Wavefront Occupancy\",\n \"Avg\": \"&occAvg\",\n \"Min\":\"&occMin\",\n \"Max\":\"&occMax\",\n \"Unit\":\"Wavefronts\"\n }}\n ]\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Wavefront)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"instrWavefront_avg\":{\"$avg\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n \"instrWavefront_min\":{\"$min\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n \"instrWavefront_max\":{\"$max\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n\n \"waveCycles_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n \"waveCycles_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n \"waveCycles_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n\n \"depWaitingCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"depWaitingCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"depWaitingCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"issueWaitCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"issueWaitCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"issueWaitCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"activeCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"activeCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"activeCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"kernelTime_avg\":{\"$avg\": {\"$subtract\": [ \"&EndNs\", \"&BeginNs\" ]}},\n \"kernelTime_min\":{\"$min\": {\"$subtract\": [ \"&EndNs\", \"&BeginNs\" ]}},\n \"kernelTime_max\":{\"$max\": {\"$subtract\": [ \"&EndNs\", \"&BeginNs\" ]}},\n\n \"kernelCycle_avg\":{\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"kernelCycle_min\":{\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"kernelCycle_max\":{\"$max\": \"&GRBM_GUI_ACTIVE\"}\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Kernel Time (Nanosec)\",\n \"Avg\": \"&kernelTime_avg\",\n \"Min\": \"&kernelTime_min\",\n \"Max\": \"&kernelTime_max\",\n \"Unit\":\"ns\"\n },\n {\n \"Metric\": \"Kernel Time (Cycles)\",\n \"Avg\": \"&kernelCycle_avg\",\n \"Min\": \"&kernelCycle_min\",\n \"Max\": \"&kernelCycle_max\",\n \"Unit\":\"Cycle\"\n },\n\n {\n \"Metric\": \"Instr/wavefront\",\n \"Avg\": \"&instrWavefront_avg\",\n \"Min\": \"&instrWavefront_min\",\n \"Max\": \"&instrWavefront_max\",\n \"Unit\": \"Instr/wavefront\"\n },\n {\n \"Metric\": \"Wave Cycles\",\n \"Avg\": \"&waveCycles_avg\",\n \"Min\": \"&waveCycles_min\",\n \"Max\": \"&waveCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Dependency Wait Cycles\",\n \"Avg\": \"&depWaitingCycles_avg\",\n \"Min\": \"&depWaitingCycles_min\",\n \"Max\": \"&depWaitingCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Issue Wait Cycles\",\n \"Avg\": \"&issueWaitCycles_avg\",\n \"Min\": \"&issueWaitCycles_min\",\n \"Max\": \"&issueWaitCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Active Cycles\",\n \"Avg\": \"&activeCycles_avg\",\n \"Min\": \"&activeCycles_min\",\n \"Max\": \"&activeCycles_max\",\n \"Unit\": \"Cycles/wave\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_LEVEL_WAVES\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Wavefront)\"}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"occAvg\": {\"$avg\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } },\n \"occMin\": {\"$min\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } },\n \"occMax\": {\"$max\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } }\n }},\n {\"$project\": {\n \"_id\":0,\n \"Metric\": \"Wavefront Occupancy\",\n \"Avg\": \"&occAvg\",\n \"Min\":\"&occMin\",\n \"Max\":\"&occMax\",\n \"Unit\":\"Wavefronts\"\n }}\n ]\n }}\n ]);", - "type": "table" - } - ], - "title": "Wavefront Runtime Stats", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg": "", - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)", - "Unit 1": "", - "Unit 2": "" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Wavefront", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 8 - }, - "id": 209, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [] - }, - "gridPos": { - "h": 17, - "w": 12, - "x": 0, - "y": 9 - }, - "id": 12, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "text": { - "valueSize": 16 - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"valu\": {\n \"$avg\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_MFMA\"]}, \"&denom\" ] }\n },\n \"mfma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_MFMA\", \"&denom\" ] }\n },\n \"vmem\": {\n \"$avg\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VMEM\", \"&SQ_INSTS_FLAT_LDS_ONLY\"]}, \"&denom\" ] }\n },\n \"lds\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_LDS\", \"&denom\" ] }\n },\n \"salu\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SALU\", \"&denom\" ] }\n },\n \"smem\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SMEM\", \"&denom\" ] }\n },\n \"branch\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_BRANCH\", \"&denom\" ] }\n },\n \"gds\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_GDS\", \"&denom\" ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"VALU - Vector\",\n \"count\": \"&valu\"\n },\n {\n \"metric\": \"VMEM\",\n \"count\": \"&vmem\"\n },\n {\n \"metric\": \"LDS\",\n \"count\": \"&lds\"\n },\n {\n \"metric\": \"VALU - MFMA\",\n \"count\": \"&mfma\"\n },\n {\n \"metric\": \"SALU\",\n \"count\": \"&salu\"\n },\n {\n \"metric\": \"SMEM\",\n \"count\": \"&smem\"\n },\n {\n \"metric\": \"Branch\",\n \"count\": \"&branch\"\n },\n {\n \"metric\": \"GDS\",\n \"count\": \"&gds\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "$Workload2.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Mix)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n \n {\"$group\": {\n \"_id\": null,\n \"valu\": {\n \"$avg\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_MFMA\"]}, \"&denom\" ] }\n },\n \"mfma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_MFMA\", \"&denom\" ] }\n },\n \"vmem\": {\n \"$avg\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VMEM\", \"&SQ_INSTS_FLAT_LDS_ONLY\"]}, \"&denom\" ] }\n },\n \"lds\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_LDS\", \"&denom\" ] }\n },\n \"salu\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SALU\", \"&denom\" ] }\n },\n \"smem\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SMEM\", \"&denom\" ] }\n },\n \"branch\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_BRANCH\", \"&denom\" ] }\n },\n \"gds\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_GDS\", \"&denom\" ] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"VALU - Vector (Baseline)\",\n \"count\": \"&valu\"\n },\n {\n \"metric\": \"VMEM (Baseline)\",\n \"count\": \"&vmem\"\n },\n {\n \"metric\": \"LDS (Baseline)\",\n \"count\": \"&lds\"\n },\n {\n \"metric\": \"VALU - MFMA (Baseline)\",\n \"count\": \"&mfma\"\n },\n {\n \"metric\": \"SALU (Baseline)\",\n \"count\": \"&salu\"\n },\n {\n \"metric\": \"SMEM (Baseline)\",\n \"count\": \"&smem\"\n },\n {\n \"metric\": \"Branch (Baseline)\",\n \"count\": \"&branch\"\n },\n {\n \"metric\": \"GDS (Baseline)\",\n \"count\": \"&gds\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "Instruction Mix", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "field": "metric" - } - ] - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 24, - "w": 12, - "x": 12, - "y": 9 - }, - "id": 24, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "/^count$/", - "limit": 100, - "values": true - }, - "showUnfilled": true, - "text": {} - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"count_int_i32\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_INT32\", \"&denom\" ] }\n },\n \"count_int_i64\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_INT64\", \"&denom\" ] }\n },\n \"count_f16_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F16\", \"&denom\" ] }\n },\n \"count_f16_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F16\", \"&denom\" ] }\n },\n \"count_f16_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F16\", \"&denom\" ] }\n },\n \"count_f16_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F16\", \"&denom\" ] }\n },\n \"count_f32_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F32\", \"&denom\" ] }\n },\n \"count_f32_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F32\", \"&denom\" ] }\n },\n \"count_f32_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F32\", \"&denom\" ] }\n },\n \"count_f32_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F32\", \"&denom\" ] }\n },\n \"count_f64_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F64\", \"&denom\" ] }\n },\n \"count_f64_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F64\", \"&denom\" ] }\n },\n \"count_f64_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F64\", \"&denom\" ] }\n },\n \"count_f64_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F64\", \"&denom\" ] }\n },\n \"conversion\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_CVT\", \"&denom\" ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"INT32\",\n \"count\": \"&count_int_i32\"\n },\n {\n \"metric\": \"INT64\",\n \"count\": \"&count_int_i64\"\n },\n {\n \"metric\": \"F16-ADD\",\n \"count\": \"&count_f16_add\"\n },\n {\n \"metric\": \"F16-MUL\",\n \"count\": \"&count_f16_MUL\"\n },\n {\n \"metric\": \"F16-FMA\",\n \"count\": \"&count_f16_fma\"\n },\n {\n \"metric\": \"F16-Trans\",\n \"count\": \"&count_f16_trans\"\n },\n {\n \"metric\": \"F32-ADD\",\n \"count\": \"&count_f32_add\"\n },\n {\n \"metric\": \"F32-MUL\",\n \"count\": \"&count_f32_MUL\"\n },\n {\n \"metric\": \"F32-FMA\",\n \"count\": \"&count_f32_fma\"\n },\n {\n \"metric\": \"F32-Trans\",\n \"count\": \"&count_f32_trans\"\n },\n {\n \"metric\": \"F64-ADD\",\n \"count\": \"&count_f64_add\"\n },\n {\n \"metric\": \"F64-MUL\",\n \"count\": \"&count_f64_MUL\"\n },\n {\n \"metric\": \"F64-FMA\",\n \"count\": \"&count_f64_fma\"\n },\n {\n \"metric\": \"F64-Trans\",\n \"count\": \"&count_f64_trans\"\n },\n {\n \"metric\": \"Conversion\",\n \"count\": \"&conversion\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Mix)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"count_int_i32\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_INT32\", \"&denom\" ] }\n },\n \"count_int_i64\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_INT64\", \"&denom\" ] }\n },\n \"count_f16_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F16\", \"&denom\" ] }\n },\n \"count_f16_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F16\", \"&denom\" ] }\n },\n \"count_f16_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F16\", \"&denom\" ] }\n },\n \"count_f16_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F16\", \"&denom\" ] }\n },\n \"count_f32_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F32\", \"&denom\" ] }\n },\n \"count_f32_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F32\", \"&denom\" ] }\n },\n \"count_f32_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F32\", \"&denom\" ] }\n },\n \"count_f32_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F32\", \"&denom\" ] }\n },\n \"count_f64_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F64\", \"&denom\" ] }\n },\n \"count_f64_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F64\", \"&denom\" ] }\n },\n \"count_f64_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F64\", \"&denom\" ] }\n },\n \"count_f64_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F64\", \"&denom\" ] }\n },\n \"conversion\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_CVT\", \"&denom\" ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"INT32 (Baseline)\",\n \"count\": \"&count_int_i32\"\n },\n {\n \"metric\": \"INT64 (Baseline)\",\n \"count\": \"&count_int_i64\"\n },\n {\n \"metric\": \"F16-ADD (Baseline)\",\n \"count\": \"&count_f16_add\"\n },\n {\n \"metric\": \"F16-MUL (Baseline)\",\n \"count\": \"&count_f16_MUL\"\n },\n {\n \"metric\": \"F16-FMA (Baseline)\",\n \"count\": \"&count_f16_fma\"\n },\n {\n \"metric\": \"F16-Trans (Baseline)\",\n \"count\": \"&count_f16_trans\"\n },\n {\n \"metric\": \"F32-ADD (Baseline)\",\n \"count\": \"&count_f32_add\"\n },\n {\n \"metric\": \"F32-MUL (Baseline)\",\n \"count\": \"&count_f32_MUL\"\n },\n {\n \"metric\": \"F32-FMA (Baseline)\",\n \"count\": \"&count_f32_fma\"\n },\n {\n \"metric\": \"F32-Trans (Baseline)\",\n \"count\": \"&count_f32_trans\"\n },\n {\n \"metric\": \"F64-ADD (Baseline)\",\n \"count\": \"&count_f64_add\"\n },\n {\n \"metric\": \"F64-MUL (Baseline)\",\n \"count\": \"&count_f64_MUL\"\n },\n {\n \"metric\": \"F64-FMA (Baseline)\",\n \"count\": \"&count_f64_fma\"\n },\n {\n \"metric\": \"F64-Trans (Baseline)\",\n \"count\": \"&count_f64_trans\"\n },\n {\n \"metric\": \"Conversion (Baseline)\",\n \"count\": \"&conversion\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "VALU Arithmetic Instr Mix", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "field": "metric" - } - ] - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 0, - "y": 26 - }, - "id": 275, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"buffer_instr\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_read\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_write\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_atomic\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \n \"flat_instr\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_read\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_write\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_atomic\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\" ] }\n }\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"type\": \"Buffer Instr\",\n \"count\": \"&buffer_instr\"\n },\n {\n \"type\": \"Buffer Read\",\n \"count\": \"&buffer_read\"\n },\n {\n \"type\": \"Buffer Write\",\n \"count\": \"&buffer_write\"\n },\n {\n \"type\": \"Buffer Atomic\",\n \"count\": \"&buffer_atomic\"\n },\n {\n \"type\": \"Flat Instr\",\n \"count\": \"&flat_instr\"\n },\n {\n \"type\": \"Flat Read\",\n \"count\": \"&flat_read\"\n },\n {\n \"type\": \"Flat Write\",\n \"count\": \"&flat_write\"\n },\n {\n \"type\": \"Flat Atomic\",\n \"count\": \"&flat_atomic\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Mix)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"buffer_instr\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_read\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_write\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_atomic\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n\n \"flat_instr\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_read\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_write\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_atomic\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\" ] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"type\": \"Buffer Instr (Baseline)\",\n \"count\": \"&buffer_instr\"\n },\n {\n \"type\": \"Buffer Read (Baseline)\",\n \"count\": \"&buffer_read\"\n },\n {\n \"type\": \"Buffer Write (Baseline)\",\n \"count\": \"&buffer_write\"\n },\n {\n \"type\": \"Buffer Atomic (Baseline)\",\n \"count\": \"&buffer_atomic\"\n },\n {\n \"type\": \"Flat Instr (Baseline)\",\n \"count\": \"&flat_instr\"\n },\n {\n \"type\": \"Flat Read (Baseline)\",\n \"count\": \"&flat_read\"\n },\n {\n \"type\": \"Flat Write (Baseline)\",\n \"count\": \"&flat_write\"\n },\n {\n \"type\": \"Flat Atomic (Baseline)\",\n \"count\": \"&flat_atomic\"\n }\n\n ]\n }},\n\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "VMEM Instr Mix", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "type 2": true - }, - "indexByName": {}, - "renameByName": { - "count": "Count", - "count 1": "Avg (Current)", - "count 2": "Avg (Baseline)", - "type": "VMEM Instr", - "type 1": "VMEM Instr" - } - } - } - ], - "transparent": true, - "type": "table" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 12, - "x": 12, - "y": 33 - }, - "id": 16, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"mmfa_i8\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_I8\", \"&denom\" ] }\n },\n \"mmfa_f16\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F16\", \"&denom\" ] }\n },\n \"mmfa_bf16\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_BF16\", \"&denom\" ] }\n },\n \"mfma_f32\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F32\", \"&denom\" ] }\n },\n \"mfma_f64\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F64\", \"&denom\" ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"type\": \"MFMA-I8\",\n \"count\": \"&mmfa_i8\"\n },\n {\n \"type\": \"MFMA-F16\",\n \"count\": \"&mmfa_f16\"\n },\n {\n \"type\": \"MFMA-BF16\",\n \"count\": \"&mmfa_bf16\"\n },\n {\n \"type\": \"MFMA-F32\",\n \"count\": \"&mfma_f32\"\n },\n {\n \"type\": \"MFMA-F64\",\n \"count\": \"&mfma_f64\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Mix)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"mmfa_i8\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_I8\", \"&SQ_WAVES\" ] }\n },\n \"mmfa_f16\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F16\", \"&SQ_WAVES\" ] }\n },\n \"mmfa_bf16\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_BF16\", \"&SQ_WAVES\" ] }\n },\n \"mfma_f32\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F32\", \"&SQ_WAVES\" ] }\n },\n \"mfma_f64\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F64\", \"&SQ_WAVES\" ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"type\": \"MFMA-I8 (Baseline)\",\n \"count\": \"&mmfa_i8\"\n },\n {\n \"type\": \"MFMA-F16 (Baseline)\",\n \"count\": \"&mmfa_f16\"\n },\n {\n \"type\": \"MFMA-BF16 (Baseline)\",\n \"count\": \"&mmfa_bf16\"\n },\n {\n \"type\": \"MFMA-F32 (Baseline)\",\n \"count\": \"&mfma_f32\"\n },\n {\n \"type\": \"MFMA-F64 (Baseline)\",\n \"count\": \"&mfma_f64\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "MFMA Arithmetic Instr Mix", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "type 2": true - }, - "indexByName": {}, - "renameByName": { - "count": "Count", - "count 1": "Avg (Current)", - "count 2": "Avg (Baseline)", - "type": "MFMA Instr", - "type 1": "MFMA Instr" - } - } - } - ], - "transparent": true, - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Compute Unit - Instruction Mix", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 9 - }, - "id": 8, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 0, - "y": 10 - }, - "id": 211, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "/.*/", - "values": true - }, - "showUnfilled": true, - "text": { - "titleSize": 14, - "valueSize": 14 - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"valu_flops_val\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }] }] }\n ]}\n ,{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }]\n }},\n\n \"mfma_flops_f16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_bf16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f32_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f64_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_i8_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } }\n\n }}, \n {\"$set\": {\n \"array\": [\n {\n \"valu_flops_pop\": {\"$divide\": [{ \"$multiply\": [100, \"&valu_flops_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 64, 2 ]}, 1000] }] },\n \"mfma_flops_bf16_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_bf16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 512 ]}, 1000] }]},\n \"mfma_flops_f16_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 1024 ]}, 1000] }]},\n \"mfma_flops_f32_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f32_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 256 ]}, 1000] }]},\n \"mfma_flops_f64_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f64_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 256 ]}, 1000] }]},\n \"mfma_flops_i8_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_i8_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 1024 ]}, 1000] }]}\n }\n ]\n }},\n\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n \n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"valu_flops_val\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }] }] }\n ]}\n ,{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }]\n }},\n\n \"mfma_flops_f16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_bf16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f32_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f64_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_i8_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n\n \"instr_val\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS\", { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n }\n\n }}, \n {\"$set\": {\n \"array\": [\n {\n \"valu_flops_pop\": {\"$divide\": [{ \"$multiply\": [100, \"&valu_flops_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 64, 2 ]}, 1000] }] },\n \"mfma_flops_bf16_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_bf16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 512 ]}, 1000] }]},\n \"mfma_flops_f16_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 1024 ]}, 1000] }]},\n \"mfma_flops_f32_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f32_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 256 ]}, 1000] }]},\n \"mfma_flops_f64_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f64_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 256 ]}, 1000] }]},\n \"mfma_flops_i8_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_i8_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 1024 ]}, 1000] }]}\n }\n ]\n }},\n\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n \n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - } - ], - "title": "Speed-of-Light: Compute Pipeline", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "mfma_flops_bf16_pop 1": 4, - "mfma_flops_bf16_pop 2": 5, - "mfma_flops_f16_pop 1": 6, - "mfma_flops_f16_pop 2": 7, - "mfma_flops_f32_pop 1": 8, - "mfma_flops_f32_pop 2": 9, - "mfma_flops_f64_pop 1": 10, - "mfma_flops_f64_pop 2": 11, - "mfma_flops_i8_pop 1": 12, - "mfma_flops_i8_pop 2": 13, - "valu_flops_pop 1": 0, - "valu_flops_pop 2": 1, - "valu_iops_pop 1": 2, - "valu_iops_pop 2": 3 - }, - "renameByName": { - "BW (Pct-of-Peak) 1": "BW Pct-of-Peak (Current)", - "BW (Pct-of-Peak) 2": "BW Pct-of-Peak (Baseline)", - "Bandwith (Pct-of-Peak)": "", - "Bandwith (Pct-of-Peak) 1": "BW Pct-of-Peak (Current)", - "Bandwith (Pct-of-Peak) 2": "BW Pct-of-Peak (Baseline) ", - "Bank Conflict Rate 1": "Bank Conflict Rate (Current)", - "Bank Conflict Rate 2": "Bank Conflict Rate (Baseline)", - "Cache Hit 1": "Cache Hit (Current)", - "Cache Hit 2": "Cache Hit (Baseline)", - "Latency (Cycles) 1": "Latency (Current) [Cycles]", - "Latency (Cycles) 2": "Latency (Baseline) [Cycles]", - "Stall 1": "Stall (Current)", - "Stall 2": "Stall (Baseline)", - "Util 1": "Util (Current)", - "Util 2": "Util (Baseline)", - "flops_pop": "FLOPs", - "flops_pop 1": "FLOPs (Current)", - "flops_pop 2": "FLOPs (Baseline)", - "iops_pop": "IOPs", - "iops_pop 1": "IOPs (Current)", - "iops_pop 2": "IOPs (Baseline)", - "mfma_flops_bf16_pop": "MFMA- BF16 (FLOPs)", - "mfma_flops_bf16_pop 1": "MFMA-BF16 (Cur)", - "mfma_flops_bf16_pop 2": "MFMA-BF16 (Baseline)", - "mfma_flops_f16_pop": "MFMA-F16 (FLOPs)", - "mfma_flops_f16_pop 1": "MFMA-F16 (Cur)", - "mfma_flops_f16_pop 2": "MFMA-F16 (Baseline)", - "mfma_flops_f32_pop": "MFMA-F32 (FLOPs)", - "mfma_flops_f32_pop 1": "MFMA-F32 (Cur)", - "mfma_flops_f32_pop 2": "MFMA-F32 (Baseline)", - "mfma_flops_f64_pop": "MFMA-F64 (FLOPs)", - "mfma_flops_f64_pop 1": "MFMA-F64 (Cur)", - "mfma_flops_f64_pop 2": "MFMA-F64 (Baseline)", - "mfma_flops_i8_pop": "MFMA-i8 (IOPs)", - "mfma_flops_i8_pop 1": "MFMA-I8 (Cur)", - "mfma_flops_i8_pop 2": "MFMA-I8 (Baseline)", - "valu_flops_pop": "VALU (FLOPs)", - "valu_flops_pop 1": "VALU FLOPs (Cur)", - "valu_flops_pop 2": "VALU FLOPs (Baseline)", - "valu_iops_pop": "VALU (IOPs)", - "valu_iops_pop 1": "VALU IOPs (Cur)", - "valu_iops_pop 2": "VALU IOPs (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 12, - "y": 10 - }, - "id": 257, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "rawQuery": true, - "refId": "pmc_perf", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_ipcAvg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] }\n },\n \"min_ipcAvg\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] } \n },\n \"max_ipcAvg\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] }\n },\n \n \"avg_ipcIssue\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"min_ipcIssue\": {\n \"$min\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"max_ipcIssue\": {\n \"$max\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n\n \"avg_saluUtil\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU ] }\n },\n \"min_saluUtil\": {\n \"$min\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU ] }\n },\n \"max_saluUtil\": {\n \"$max\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU ] }\n },\n\n \"avg_valuUtil\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU ] }\n },\n \"min_valuUtil\": {\n \"$min\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU ] }\n },\n \"max_valuUtil\": {\n \"$max\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU ] }\n },\n\n \"avg_mfmaUtil\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $numCU, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n \"min_mfmaUtil\": {\n \"$min\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $numCU, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n \"max_mfmaUtil\": {\n \"$max\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $numCU, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n\n \"avg_mfmaInstrCycles\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n \"min_mfmaInstrCycles\": {\n \"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n \"max_mfmaInstrCycles\": {\n \"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n\n\n \"avg_unpredthreads_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \"min_unpredthreads_val\": {\n \"$min\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \"max_unpredthreads_val\": {\n \"$max\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n\n \"avg_instrFetchBand\": {\n \"$avg\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \"min_instrFetchBand\": {\n \"$min\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \"max_instrFetchBand\": {\n \"$max\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n }\n\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"IPC (Avg)\",\n \"Avg\": \"&avg_ipcAvg\",\n \"Min\": \"&min_ipcAvg\",\n \"Max\": \"&max_ipcAvg\",\n \"Unit\": \"Instr/cycle\"\n },\n {\n \"Metric\": \"IPC (Issue)\",\n \"Avg\": \"&avg_ipcIssue\",\n \"Min\": \"&min_ipcIssue\",\n \"Max\": \"&max_ipcIssue\",\n \"Unit\": \"Instr/cycle\"\n },\n {\n \"Metric\": \"SALU Util\",\n \"Avg\": \"&avg_saluUtil\",\n \"Min\": \"&min_saluUtil\",\n \"Max\": \"&max_saluUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"VALU Util\",\n \"Avg\": \"&avg_valuUtil\",\n \"Min\": \"&min_valuUtil\",\n \"Max\": \"&max_valuUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"VALU Active Threads\",\n \"Avg\": \"&avg_unpredthreads_val\",\n \"Min\": \"&min_unpredthreads_val\",\n \"Max\": \"&max_unpredthreads_val\",\n \"Unit\": \"Threads\"\n },\n {\n \"Metric\": \"MFMA Util\",\n \"Avg\": \"&avg_mfmaUtil\",\n \"Min\": \"&min_mfmaUtil\",\n \"Max\": \"&max_mfmaUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"MFMA Instr Cycles\",\n \"Avg\": \"&avg_mfmaInstrCycles\",\n \"Min\": \"&min_mfmaInstrCycles\",\n \"Max\": \"&max_mfmaInstrCycles\",\n \"Unit\": \"cycles/instr\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "pmc_perf2", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_ipcAvg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] }\n },\n \"min_ipcAvg\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] } \n },\n \"max_ipcAvg\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] }\n },\n \n \"avg_ipcIssue\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"min_ipcIssue\": {\n \"$min\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"max_ipcIssue\": {\n \"$max\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n\n \"avg_saluUtil\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU2 ] }\n },\n \"min_saluUtil\": {\n \"$min\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU2 ] }\n },\n \"max_saluUtil\": {\n \"$max\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU2 ] }\n },\n\n \"avg_valuUtil\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU2 ] }\n },\n \"min_valuUtil\": {\n \"$min\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU2 ] }\n },\n \"max_valuUtil\": {\n \"$max\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU2 ] }\n },\n\n\n \"avg_mfmaUtil\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $numCU2, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n \"min_mfmaUtil\": {\n \"$min\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $numCU2, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n \"max_mfmaUtil\": {\n \"$max\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $numCU2, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n\n \"avg_mfmaInstrCycles\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n \"min_mfmaInstrCycles\": {\n \"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n \"max_mfmaInstrCycles\": {\n \"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n\n \"avg_unpredthreads_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \"min_unpredthreads_val\": {\n \"$min\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \"max_unpredthreads_val\": {\n \"$max\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n\n \"avg_instrFetchBand\": {\n \"$avg\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \"min_instrFetchBand\": {\n \"$min\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \"max_instrFetchBand\": {\n \"$max\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"IPC (Avg)\",\n \"Avg 2\": \"&avg_ipcAvg\",\n \"Min 2\": \"&min_ipcAvg\",\n \"Max 2\": \"&max_ipcAvg\",\n \"Unit\": \"Instr/cycle\"\n },\n {\n \"Metric\": \"IPC (Issue)\",\n \"Avg 2\": \"&avg_ipcIssue\",\n \"Min 2\": \"&min_ipcIssue\",\n \"Max 2\": \"&max_ipcIssue\",\n \"Unit\": \"Instr/cycle\"\n },\n {\n \"Metric\": \"SALU Util\",\n \"Avg 2\": \"&avg_saluUtil\",\n \"Min 2\": \"&min_saluUtil\",\n \"Max 2\": \"&max_saluUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"VALU Util\",\n \"Avg 2\": \"&avg_valuUtil\",\n \"Min 2\": \"&min_valuUtil\",\n \"Max 2\": \"&max_valuUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"VALU Active Threads\",\n \"Avg 2\": \"&avg_unpredthreads_val\",\n \"Min 2\": \"&min_unpredthreads_val\",\n \"Max 2\": \"&max_unpredthreads_val\",\n \"Unit\": \"Threads\"\n },\n {\n \"Metric\": \"MFMA Util\",\n \"Avg 2\": \"&avg_mfmaUtil\",\n \"Min 2\": \"&min_mfmaUtil\",\n \"Max 2\": \"&max_mfmaUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"MFMA Instr Cycles\",\n \"Avg 2\": \"&avg_mfmaInstrCycles\",\n \"Min 2\": \"&min_mfmaInstrCycles\",\n \"Max 2\": \"&max_mfmaInstrCycles\",\n \"Unit\": \"cycles/instr\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Pipeline Stats", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Avg": 1, - "Avg 2": 2, - "Max": 5, - "Max 2": 6, - "Metric": 0, - "Min": 3, - "Min 2": 4, - "Unit": 7 - }, - "renameByName": { - "Avg 2": "Avg (Baseline)", - "Max 2": "Max (Baseline)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 111 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 117 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 135 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 112 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 83 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 118 - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 21 - }, - "id": 96, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_intOps\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n \"min_intOps\":{\"$min\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n \"max_intOps\":{\"$max\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n\n\n \"avg_flops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"min_flops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n\n \"max_flops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n\n\n \"avg_int8Ops\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n \"min_int8Ops\":{\"$min\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n \"max_int8Ops\":{\"$max\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n\n \"avg_int32Ops\":{\"$avg\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n \"min_int32Ops\":{\"$min\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n \"max_int32Ops\":{\"$max\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n\n \"avg_int64Ops\":{\"$avg\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n \"min_int64Ops\":{\"$min\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n \"max_int64Ops\":{\"$max\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n\n \"avg_f16Ops\":{\"$avg\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n \"min_f16Ops\":{\"$min\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n \"max_f16Ops\":{\"$max\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n\n\n\n \"avg_bf16Ops\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n \"min_bf16Ops\":{\"$min\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n \"max_bf16Ops\":{\"$max\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n\n \"avg_f32Ops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n \"min_f32Ops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n \"max_f32Ops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n\n \"avg_f64Ops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"min_f64Ops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"max_f64Ops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"FLOPs (Total)\",\n \"Avg\": \"&avg_flops\",\n \"Min\": \"&min_flops\",\n \"Max\": \"&max_flops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"INT8 OPs\",\n \"Avg\": \"&avg_int8Ops\",\n \"Min\": \"&min_int8Ops\",\n \"Max\": \"&max_int8Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"F16 OPs\",\n \"Avg\": \"&avg_f16Ops\",\n \"Min\": \"&min_f16Ops\",\n \"Max\": \"&max_f16Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"BF16 OPs\",\n \"Avg\": \"&avg_bf16Ops\",\n \"Min\": \"&min_bf16Ops\",\n \"Max\": \"&max_bf16Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n\n {\n \"Metric\": \"F32 OPs\",\n \"Avg\": \"&avg_f32Ops\",\n \"Min\": \"&min_f32Ops\",\n \"Max\": \"&max_f32Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"F64 OPs\",\n \"Avg\": \"&avg_f64Ops\",\n \"Min\": \"&min_f64Ops\",\n \"Max\": \"&max_f64Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_intOps\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n \"min_intOps\":{\"$min\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n \"max_intOps\":{\"$max\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n\n\n \"avg_flops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"min_flops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n\n \"max_flops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n\n\n \"avg_int8Ops\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n \"min_int8Ops\":{\"$min\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n \"max_int8Ops\":{\"$max\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n\n \"avg_int32Ops\":{\"$avg\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n \"min_int32Ops\":{\"$min\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n \"max_int32Ops\":{\"$max\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n\n \"avg_int64Ops\":{\"$avg\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n \"min_int64Ops\":{\"$min\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n \"max_int64Ops\":{\"$max\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n\n \"avg_f16Ops\":{\"$avg\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n \"min_f16Ops\":{\"$min\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n \"max_f16Ops\":{\"$max\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n\n\n\n \"avg_bf16Ops\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n \"min_bf16Ops\":{\"$min\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n \"max_bf16Ops\":{\"$max\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n\n \"avg_f32Ops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n \"min_f32Ops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n \"max_f32Ops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n\n \"avg_f64Ops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"min_f64Ops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"max_f64Ops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"FLOPs (Total)\",\n \"Avg\": \"&avg_flops\",\n \"Min\": \"&min_flops\",\n \"Max\": \"&max_flops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"INT8 OPs\",\n \"Avg\": \"&avg_int8Ops\",\n \"Min\": \"&min_int8Ops\",\n \"Max\": \"&max_int8Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"F16 OPs\",\n \"Avg\": \"&avg_f16Ops\",\n \"Min\": \"&min_f16Ops\",\n \"Max\": \"&max_f16Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"BF16 OPs\",\n \"Avg\": \"&avg_bf16Ops\",\n \"Min\": \"&min_bf16Ops\",\n \"Max\": \"&max_bf16Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n\n {\n \"Metric\": \"F32 OPs\",\n \"Avg\": \"&avg_f32Ops\",\n \"Min\": \"&min_f32Ops\",\n \"Max\": \"&max_f32Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"F64 OPs\",\n \"Avg\": \"&avg_f64Ops\",\n \"Min\": \"&min_f64Ops\",\n \"Max\": \"&max_f64Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Arithmetic Operations", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 1, - "Avg 2": 2, - "Max 1": 5, - "Max 2": 6, - "Metric 1": 0, - "Metric 2": 7, - "Min 1": 3, - "Min 2": 4, - "Unit 1": 9, - "Unit 2": 8 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 21 - }, - "id": 255, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_VMEM", - "target": "${Workload1}.SQ_INST_LEVEL_VMEM.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_vmemLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n },\n \"min_vmemLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n },\n \"max_vmemLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"VMEM Latency\",\n \"Avg\": \"&avg_vmemLat\",\n \"Min\": \"&min_vmemLat\",\n \"Max\": \"&max_vmemLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_SMEM", - "target": "${Workload1}.SQ_INST_LEVEL_SMEM.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_smemLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n },\n \"min_smemLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n },\n \"max_smemLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"SMEM Latency\",\n \"Avg\":\"&avg_smemLat\",\n \"Min\":\"&min_smemLat\",\n \"Max\":\"&max_smemLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_IFETCH_LEVEL", - "target": "${Workload1}.SQ_IFETCH_LEVEL.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_instrFetchLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n },\n \"min_instrFetchLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n },\n \"max_instrFetchLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"Instr Fetch Latency\",\n \"Avg\":\"&avg_instrFetchLat\",\n \"Min\":\"&min_instrFetchLat\",\n \"Max\":\"&max_instrFetchLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_LDS", - "target": "${Workload1}.SQ_INST_LEVEL_LDS.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_ldsLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"min_ldsLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"max_ldsLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"LDS Latency\",\n \"Avg\":\"&avg_ldsLat\",\n \"Min\":\"&min_ldsLat\",\n \"Max\":\"&max_ldsLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_VMEM2", - "target": "${Workload2}.SQ_INST_LEVEL_VMEM.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_vmemLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n },\n \"min_vmemLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n },\n \"max_vmemLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"VMEM Latency\",\n \"Avg 2\": \"&avg_vmemLat\",\n \"Min 2\": \"&min_vmemLat\",\n \"Max 2\": \"&max_vmemLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_SMEM2", - "target": "${Workload2}.SQ_INST_LEVEL_SMEM.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_smemLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n },\n \"min_smemLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n },\n \"max_smemLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"SMEM Latency\",\n \"Avg 2\":\"&avg_smemLat\",\n \"Min 2\":\"&min_smemLat\",\n \"Max 2\":\"&max_smemLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_IFETCH_LEVEL2", - "target": "${Workload2}.SQ_IFETCH_LEVEL.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_instrFetchLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n },\n \"min_instrFetchLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n },\n \"max_instrFetchLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"Instr Fetch Latency\",\n \"Avg 2\":\"&avg_instrFetchLat\",\n \"Min 2\":\"&min_instrFetchLat\",\n \"Max 2\":\"&max_instrFetchLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_LDS2", - "target": "${Workload2}.SQ_INST_LEVEL_LDS.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_ldsLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"min_ldsLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"max_ldsLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"LDS Latency\",\n \"Avg 2\":\"&avg_ldsLat\",\n \"Min 2\":\"&min_ldsLat\",\n \"Max 2\":\"&max_ldsLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - } - ], - "title": "Memory Latencies", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Avg": 1, - "Avg 2": 2, - "Max": 5, - "Max 2": 6, - "Metric": 0, - "Min": 3, - "Min 2": 4, - "Unit": 7 - }, - "renameByName": { - "Avg": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Compute Unit - Compute Pipeline", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 10 - }, - "id": 98, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 11 - }, - "id": 205, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "/.*/", - "values": true - }, - "showUnfilled": true, - "text": { - "titleSize": 14, - "valueSize": 16 - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \n \"bconf_rate\": {\n \"$avg\": {\"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n {\"$multiply\": [\"&SQ_LDS_BANK_CONFLICT\", 3.125]},\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n } \n },\n \n \"bw_pop\": {\n \"$avg\": {\"$divide\": [\n {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]}, \n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]},\n \n {\"$multiply\": [$sclk, $numCU, 0.00128]}\n ]}\n },\n\n \"lds_util\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [ 100, \"&SQ_LDS_IDX_ACTIVE\" ]}, \n {\"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}\n ]}\n },\n\n \"lds_access_rate\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [200, \"&SQ_ACTIVE_INST_LDS\" ]}, \n {\"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}\n ]}\n }\n \n }},\n \n {\"$set\": {\n \"array\": [\n {\n \"Utilization\": \"&lds_util\",\n \"Access Rate\": \"&lds_access_rate\",\n \"Bandwith (Pct-of-Peak)\": \"&bw_pop\",\n \"Bank Conflict Rate\": \"&bconf_rate\"\n }\n \n ]\n }},\n \n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n \n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n \n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Local Data Share)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"bconf_rate\": {\n \"$avg\": {\"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n {\"$multiply\": [\"&SQ_LDS_BANK_CONFLICT\", 3.125]},\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n } \n },\n\n \"bw_pop\": {\n \"$avg\": {\"$divide\": [\n {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks2\"}\n ]}, \n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]},\n \n {\"$multiply\": [$sclk2, $numCU2, 0.00128]}\n ]}\n },\n \"lds_util\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [ 100, \"&SQ_LDS_IDX_ACTIVE\" ]}, \n {\"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}\n ]}\n },\n\n \"lds_access_rate\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [200, \"&SQ_ACTIVE_INST_LDS\" ]}, \n {\"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}\n ]}\n }\n\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Utilization\": \"&lds_util\",\n \"Access Rate\": \"&lds_access_rate\",\n \"Bandwith (Pct-of-Peak)\": \"&bw_pop\",\n \"Bank Conflict Rate\": \"&bconf_rate\"\n }\n\n ]\n }},\n\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n \n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - } - ], - "title": "Speed-of-Light: LDS", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Access Rate 1": 6, - "Access Rate 2": 7, - "Bandwith (Pct-of-Peak) 1": 0, - "Bandwith (Pct-of-Peak) 2": 1, - "Bank Conflict Rate 1": 2, - "Bank Conflict Rate 2": 3, - "Utilization 1": 4, - "Utilization 2": 5 - }, - "renameByName": { - "Access Rate 1": "Access Rate (Current)", - "Access Rate 2": "Access Rate (Baseline)", - "BW (Pct-of-Peak) 1": "BW Pct-of-Peak (Current)", - "BW (Pct-of-Peak) 2": "BW Pct-of-Peak (Baseline)", - "Bandwith (Pct-of-Peak)": "", - "Bandwith (Pct-of-Peak) 1": "BW Pct-of-Peak (Current)", - "Bandwith (Pct-of-Peak) 2": "BW Pct-of-Peak (Baseline) ", - "Bank Conflict Rate 1": "Bank Conflict Rate (Current)", - "Bank Conflict Rate 2": "Bank Conflict Rate (Baseline)", - "Cache Hit 1": "Cache Hit (Current)", - "Cache Hit 2": "Cache Hit (Baseline)", - "Latency (Cycles) 1": "Latency (Current) [Cycles]", - "Latency (Cycles) 2": "Latency (Baseline) [Cycles]", - "Stall 1": "Stall (Current)", - "Stall 2": "Stall (Baseline)", - "Util 1": "Util (Current)", - "Util 2": "Util (Baseline)", - "Utilization 1": "Util (Current)", - "Utilization 2": "Util (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "min": -100000000000000000000, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 114 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 107 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 128 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 115 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 138 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 141 - } - ] - } - ] - }, - "gridPos": { - "h": 12, - "w": 12, - "x": 12, - "y": 11 - }, - "id": 100, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_waveCycles\": {\n \"$avg\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ] }\n },\n \"min_waveCycles\": {\n \"$min\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ] }\n },\n \"max_waveCycles\": {\n \"$max\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ] }\n },\n \n \"avg_ldsInstrs\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \"min_ldsInstrs\": {\n \"$min\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \"max_ldsInstrs\": {\n \"$max\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \n \"avg_indexAccesses\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \"min_indexAccesses\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \"max_indexAccesses\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \n \"avg_atomicCycles\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \"min_atomicCycles\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \"max_atomicCycles\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \n \"avg_bankConflicts\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \"min_bankConflicts\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \"max_bankConflicts\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \n \"avg_addrConflicts\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \"min_addrConflicts\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \"max_addrConflicts\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \n \n \"avg_unalignedStall\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \"min_unalignedStall\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \"max_unalignedStall\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \n \"avg_memViolations\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \"min_memViolations\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \"max_memViolations\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \n \"avg_bconf_per_op\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \"min_bconf_per_op\": {\n \"$min\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \"max_bconf_per_op\": {\n \"$max\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \n \"avg_bw\": {\n \"$avg\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$L2Banks\"}]}, \n \"&denom\"\n ]\n }\n },\n \"min_bw\": {\n \"$min\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$L2Banks\"}]}, \n \"&denom\"\n ]\n }\n },\n \"max_bw\": {\n \"$max\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$L2Banks\"}]}, \n \"&denom\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Wave Cycles\",\n \"avg\": \"&avg_waveCycles\",\n \"min\": \"&min_waveCycles\",\n \"max\": \"&max_waveCycles\",\n \"Unit\": \"Cycles/Wave\"\n },\n {\n \"metric\": \"LDS Instrs\",\n \"avg\": \"&avg_ldsInstrs\",\n \"min\": \"&min_ldsInstrs\",\n \"max\": \"&max_ldsInstrs\",\n \"Unit\":{\"$concat\": [\"Instr \", $normUnit]} \n },\n {\n \"metric\": \"Bandwidth\",\n \"avg\": \"&avg_bw\",\n \"min\": \"&min_bw\",\n \"max\": \"&max_bw\",\n \"Unit\": {\"$concat\": [\"Bytes \", $normUnit]}\n },\n {\n \"metric\": \"Bank Conficts/Access\",\n \"avg\": \"&avg_bconf_per_op\",\n \"min\": \"&min_bconf_per_op\",\n \"max\": \"&max_bconf_per_op\",\n \"Unit\": \"Conflicts/Access\"\n },\n {\n \"metric\": \"Index Accesses\",\n \"avg\": \"&avg_indexAccesses\",\n \"min\": \"&min_indexAccesses\",\n \"max\": \"&max_indexAccesses\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Cycles\",\n \"avg\": \"&avg_atomicCycles\",\n \"min\": \"&min_atomicCycles\",\n \"max\": \"&max_atomicCycles\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Bank Conflict\",\n \"avg\": \"&avg_bankConflicts\",\n \"min\": \"&min_bankConflicts\",\n \"max\": \"&max_bankConflicts\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Addr Conflict\",\n \"avg\": \"&avg_addrConflicts\",\n \"min\": \"&min_addrConflicts\",\n \"max\": \"&max_addrConflicts\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Unaligned Stall\",\n \"avg\": \"&avg_unalignedStall\",\n \"min\": \"&min_unalignedStall\",\n \"max\": \"&max_unalignedStall\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Mem Violations\",\n \"avg\": \"&avg_memViolations\",\n \"min\": \"&min_memViolations\",\n \"max\": \"&max_memViolations\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_INST_LEVEL_LDS\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"avg_ldsLatency\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"min_ldsLatency\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"max_ldsLatency\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"metric\": \"LDS Latency\",\n \"avg\": \"&avg_ldsLatency\",\n \"min\": \"&min_ldsLatency\",\n \"max\": \"&max_ldsLatency\",\n \"Unit\": \"Cycles\"\n }}\n ]\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}}, \n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Local Data Share)\"}}\n \n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_waveCycles\": {\n \"$avg\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ] }\n },\n \"min_waveCycles\": {\n \"$min\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ] }\n },\n \"max_waveCycles\": {\n \"$max\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ] }\n },\n \n \"avg_ldsInstrs\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \"min_ldsInstrs\": {\n \"$min\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \"max_ldsInstrs\": {\n \"$max\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \n \"avg_indexAccesses\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \"min_indexAccesses\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \"max_indexAccesses\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \n \"avg_atomicCycles\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \"min_atomicCycles\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \"max_atomicCycles\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \n \"avg_bankConflicts\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \"min_bankConflicts\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \"max_bankConflicts\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \n \"avg_addrConflicts\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \"min_addrConflicts\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \"max_addrConflicts\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \"avg_unalignedStall\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \"min_unalignedStall\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \"max_unalignedStall\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \n \"avg_memViolations\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \"min_memViolations\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \"max_memViolations\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \n \n \"avg_bconf_per_op\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \"min_bconf_per_op\": {\n \"$min\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \"max_bconf_per_op\": {\n \"$max\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \n \"avg_bw\": {\n \"$avg\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$L2Banks\"}]}, \n \"&denom\"\n ]\n }\n },\n \"min_bw\": {\n \"$min\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$L2Banks\"}]}, \n \"&denom\"\n ]\n }\n },\n \"max_bw\": {\n \"$max\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$L2Banks\"}]}, \n \"&denom\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Wave Cycles\",\n \"avg\": \"&avg_waveCycles\",\n \"min\": \"&min_waveCycles\",\n \"max\": \"&max_waveCycles\",\n \"Unit\": \"Cycles/Wave\"\n },\n {\n \"metric\": \"LDS Instrs\",\n \"avg\": \"&avg_ldsInstrs\",\n \"min\": \"&min_ldsInstrs\",\n \"max\": \"&max_ldsInstrs\",\n \"Unit\":{\"$concat\": [\"Instr \", $normUnit]} \n },\n {\n \"metric\": \"Bandwidth\",\n \"avg\": \"&avg_bw\",\n \"min\": \"&min_bw\",\n \"max\": \"&max_bw\",\n \"Unit\": {\"$concat\": [\"Bytes \", $normUnit]}\n },\n {\n \"metric\": \"Bank Conficts/Access\",\n \"avg\": \"&avg_bconf_per_op\",\n \"min\": \"&min_bconf_per_op\",\n \"max\": \"&max_bconf_per_op\",\n \"Unit\": \"Conflicts/Access\"\n },\n {\n \"metric\": \"Index Accesses\",\n \"avg\": \"&avg_indexAccesses\",\n \"min\": \"&min_indexAccesses\",\n \"max\": \"&max_indexAccesses\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Cycles\",\n \"avg\": \"&avg_atomicCycles\",\n \"min\": \"&min_atomicCycles\",\n \"max\": \"&max_atomicCycles\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Bank Conflict\",\n \"avg\": \"&avg_bankConflicts\",\n \"min\": \"&min_bankConflicts\",\n \"max\": \"&max_bankConflicts\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Addr Conflict\",\n \"avg\": \"&avg_addrConflicts\",\n \"min\": \"&min_addrConflicts\",\n \"max\": \"&max_addrConflicts\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Unaligned Stall\",\n \"avg\": \"&avg_unalignedStall\",\n \"min\": \"&min_unalignedStall\",\n \"max\": \"&max_unalignedStall\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Mem Violations\",\n \"avg\": \"&avg_memViolations\",\n \"min\": \"&min_memViolations\",\n \"max\": \"&max_memViolations\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_INST_LEVEL_LDS\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Local Data Share)\"}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"avg_ldsLatency\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"min_ldsLatency\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"max_ldsLatency\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"metric\": \"LDS Latency\",\n \"avg\": \"&avg_ldsLatency\",\n \"min\": \"&min_ldsLatency\",\n \"max\": \"&max_ldsLatency\",\n \"Unit\": \"Cycles\"\n }}\n ]\n }}\n ]);", - "type": "table" - } - ], - "title": "LDS Stats", - "transformations": [ - { - "id": "concatenate", - "options": { - "frameNameLabel": "frame", - "frameNameMode": "field" - } - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Unit 2": true, - "metric 2": true - }, - "indexByName": { - "Unit 1": 9, - "Unit 2": 8, - "avg 1": 1, - "avg 2": 2, - "max 1": 5, - "max 2": 6, - "metric 1": 0, - "metric 2": 7, - "min 1": 3, - "min 2": 4 - }, - "renameByName": { - "avg 1": "Avg (Current)", - "avg 2": "Avg (Baseline)", - "max 1": "Max (Current)", - "max 2": "Max (Baseline)", - "min 1": "Min (Current)", - "min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Local Data Share (LDS)", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 11 - }, - "id": 44, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 12 - }, - "id": 48, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "/.*/", - "values": true - }, - "showUnfilled": true, - "text": {} - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"reqBW_pop\": {\n \"$avg\": {\n \"$divide\": [\n {\"$multiply\": [\"&SQC_ICACHE_REQ\", 100000]}, \n {\"$multiply\": [ {\"$multiply\": [$sclk, $numSQC]}, {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]} ]}\n ]\n }\n },\n\n \"cacheHit\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQC_ICACHE_HITS\", 100] }, { \"$add\": [ \"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\" ] } ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"Bandwidth\": \"&reqBW_pop\",\n \"Cache Hit\": \"&cacheHit\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Cache)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"reqBW_pop\": {\n \"$avg\": {\n \"$divide\": [\n {\"$multiply\": [\"&SQC_ICACHE_REQ\", 100000]}, \n {\"$multiply\": [ {\"$multiply\": [$sclk2, $numSQC2]}, {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]} ]}\n ]\n }\n },\n\n \"cacheHit\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQC_ICACHE_HITS\", 100] }, { \"$add\": [ \"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] } ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"Bandwidth\": \"&reqBW_pop\",\n \"Cache Hit\": \"&cacheHit\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "Speed-of-Light: Instruction Cache ", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "BW (Pct-of-Peak) 1": 4, - "BW (Pct-of-Peak) 2": 5, - "Cache Hit 1": 6, - "Cache Hit 2": 7, - "Stall 1": 2, - "Stall 2": 3, - "Util 1": 0, - "Util 2": 1 - }, - "renameByName": { - "BW (Pct-of-Peak) 1": "BW Pct-of-Peak (Current)", - "BW (Pct-of-Peak) 2": "BW Pct-of-Peak (Baseline)", - "BW Pct-of-Peak 1": "BW Pct-of-Peak (Current)", - "BW Pct-of-Peak 2": "BW Pct-of-Peak (Baseline)", - "Bandwidth 1": "Bandwidth (Current)", - "Bandwidth 2": "Bandwidth (Baseline)", - "Cache Hit 1": "Cache Hit (Current)", - "Cache Hit 2": "Cache Hit (Baseline)", - "Stall 1": "Stall (Current)", - "Stall 2": "Stall (Baseline)", - "Util 1": "Util (Current)", - "Util 2": "Util (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 12 - }, - "id": 259, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "rawQuery": true, - "refId": "pmc_perf", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_req\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n \"min_req\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n \"max_req\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n\n \"avg_hits\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n \"min_hits\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n \"max_hits\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n\n \"avg_misses\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n \"min_misses\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n \"max_misses\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n\n \"avg_misses_dup\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"min_misses_dup\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"max_misses_dup\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n\n\n \"avg_cacheHit\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n },\n \"min_cacheHit\": {\n \"$min\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n },\n \"max_cacheHit\": {\n \"$max\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean\": \"&avg_req\",\n \"Min\": \"&min_req\",\n \"Max\": \"&max_req\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Hits\",\n \"Mean\": \"&avg_hits\",\n \"Min\": \"&min_hits\",\n \"Max\": \"&max_hits\",\n \"Unit\": {\"$concat\": [\"Hits \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Non Duplicated\",\n \"Mean\": \"&avg_misses\",\n \"Min\": \"&min_misses\",\n \"Max\": \"&max_misses\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Duplicated\",\n \"Mean\": \"&avg_misses_dup\",\n \"Min\": \"&min_misses_dup\",\n \"Max\": \"&max_misses_dup\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n \n {\n \"Metric\": \"Cache Hit\",\n \"Mean\": \"&avg_cacheHit\",\n \"Min\": \"&min_cacheHit\",\n \"Max\": \"&max_cacheHit\",\n \"Unit\": \"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "pmc_perf2", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Cache)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_req\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n \"min_req\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n \"max_req\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n\n \"avg_hits\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n \"min_hits\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n \"max_hits\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n\n \"avg_misses\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n \"min_misses\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n \"max_misses\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n\n \"avg_misses_dup\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"min_misses_dup\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"max_misses_dup\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n\n\n \"avg_cacheHit\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n },\n \"min_cacheHit\": {\n \"$min\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n },\n \"max_cacheHit\": {\n \"$max\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean 2\": \"&avg_req\",\n \"Min 2\": \"&min_req\",\n \"Max 2\": \"&max_req\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Hits\",\n \"Mean 2\": \"&avg_hits\",\n \"Min 2\": \"&min_hits\",\n \"Max 2\": \"&max_hits\",\n \"Unit\": {\"$concat\": [\"Hits \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Non Duplicated\",\n \"Mean 2\": \"&avg_misses\",\n \"Min 2\" : \"&min_misses\",\n \"Max 2\": \"&max_misses\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Duplicated\",\n \"Mean 2\": \"&avg_misses_dup\",\n \"Min 2\": \"&min_misses_dup\",\n \"Max 2\": \"&max_misses_dup\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n {\n \"Metric\": \"Cache Hit\",\n \"Mean 2\": \"&avg_cacheHit\",\n \"Min 2\": \"&min_cacheHit\",\n \"Max 2\": \"&max_cacheHit\",\n \"Unit\": \"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Instruction Cache Accesses", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Max": 5, - "Max 2": 6, - "Mean": 1, - "Mean 2": 2, - "Metric": 0, - "Min": 3, - "Min 2": 4, - "Unit": 7 - }, - "renameByName": { - "L1I Metric": "", - "Max": "Max (Current)", - "Max 2": "Max (Baseline)", - "Mean": "Avg (Current)", - "Mean 2": "Avg (Baseline)", - "Min": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Instruction Cache", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 12 - }, - "id": 203, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "L1K-TC BW - GB/s" - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 13 - }, - "id": 54, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showUnfilled": true, - "text": { - "titleSize": 14, - "valueSize": 16 - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"reqBW_pop\": {\n \"$avg\": {\n \"$divide\": [\n {\"$multiply\": [\"&SQC_DCACHE_REQ\", 100000]}, \n {\"$multiply\": [ {\"$multiply\": [$sclk, $numSQC]}, {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]} ]}\n ]\n }\n },\n \"cacheHit\": {\n \"$avg\": { \n \"$cond\":[\n {\"$ne\": [{ \"$add\": [ \"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0 ]},\n {\"$divide\": [{ \"$multiply\": [\"&SQC_DCACHE_HITS\", 100] }, { \"$add\": [ \"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } ]},\n null\n ]\n }\n }\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Bandwidth\": \"&reqBW_pop\",\n \"Cache Hit\": \"&cacheHit\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "sY628IJnz" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Scalar L1D Cache)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"reqBW_pop\": {\n \"$avg\": {\n \"$divide\": [\n {\"$multiply\": [\"&SQC_DCACHE_REQ\", 100000]}, \n {\"$multiply\": [ {\"$multiply\": [$sclk2, $numSQC2]}, {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]} ]}\n ]\n }\n },\n \"cacheHit\": {\n \"$avg\": { \n \"$cond\":[\n {\"$ne\": [{ \"$add\": [ \"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0 ]},\n {\"$divide\": [{ \"$multiply\": [\"&SQC_DCACHE_HITS\", 100] }, { \"$add\": [ \"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } ]},\n null\n ]\n }\n }\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Bandwidth\": \"&reqBW_pop\",\n \"Cache Hit\": \"&cacheHit\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "Speed-of-Light: Scalar L1D Cache", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "BW Pct-of-Peak 1": 0, - "BW Pct-of-Peak 2": 1, - "Cache Hit 1": 2, - "Cache Hit 2": 3, - "Stall 1": 6, - "Stall 2": 7, - "Util 1": 4, - "Util 2": 5 - }, - "renameByName": { - "BW Pct-of-Peak 1": "BW Pct-of-Peak (Current)", - "BW Pct-of-Peak 2": "BW Pct-of-Peak (Baseline)", - "Bandwidth 1": "Bandwidth (Current)", - "Bandwidth 2": "Bandwidth (Baseline)", - "Cache Hit 1": "Cache Hit (Current)", - "Cache Hit 2": "Cache Hit (Baseline)", - "Stall 1": "Stall (Current)", - "Stall 2": "Stall (Baseline)", - "Util 1": "Util (Current)", - "Util 2": "Util (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [] - }, - "gridPos": { - "h": 14, - "w": 12, - "x": 12, - "y": 13 - }, - "id": 261, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "pmc_perf", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n \"req_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n \"req_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n\n \"hits_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n \"hits_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n \"hits_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n\n \"misses_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_MISSES\", \"&denom\"] }\n },\n \"misses_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_MISSES\", \"&denom\"] }\n },\n \"misses_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_MISSES\", \"&denom\"] }\n },\n\n \"dup_misses_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"dup_misses_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"dup_misses_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n\n\n \"cacheHit_avg\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n \"cacheHit_min\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n \"cacheHit_max\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n\n \"readReq_avg\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n \"readReq_min\": {\n \"$min\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n \"readReq_max\": {\n \"$max\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n\n\n \"atomicReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n \"atomicReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n \"atomicReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n\n \"read1d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n \"read1d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n \"read1d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n\n \"read2d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n \"read2d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n \"read2d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n\n \"read4d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n \"read4d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n \"read4d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n\n \"read8d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n \"read8d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n \"read8d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n\n \"read16d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n },\n \"read16d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n },\n \"read16d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean\": \"&req_avg\",\n \"Min\": \"&req_min\",\n \"Max\": \"&req_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Hits\",\n \"Mean\": \"&hits_avg\",\n \"Min\": \"&hits_min\",\n \"Max\": \"&hits_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Non Duplicated\",\n \"Mean\": \"&misses_avg\",\n \"Min\": \"&misses_min\",\n \"Max\": \"&misses_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Misses- Duplicated\",\n \"Mean\": \"&dup_misses_avg\",\n \"Min\": \"&dup_misses_min\",\n \"Max\": \"&dup_misses_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Cache Hit\",\n \"Mean\": \"&cacheHit_avg\",\n \"Min\": \"&cacheHit_min\",\n \"Max\": \"&cacheHit_max\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"Read Req (Total)\",\n \"Mean\": \"&readReq_avg\",\n \"Min\": \"&readReq_min\",\n \"Max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Atomic Req\",\n \"Mean\": \"&atomicReq_avg\",\n \"Min\": \"&atomicReq_min\",\n \"Max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (1 DWord)\",\n \"Mean\": \"&read1d_avg\",\n \"Min\": \"&read1d_min\",\n \"Max\": \"&read1d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (2 DWord)\",\n \"Mean\": \"&read2d_avg\",\n \"Min\": \"&read2d_min\",\n \"Max\": \"&read2d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (4 DWord)\",\n \"Mean\": \"&read4d_avg\",\n \"Min\": \"&read4d_min\",\n \"Max\": \"&read4d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (8 DWord)\",\n \"Mean\": \"&read8d_avg\",\n \"Min\": \"&read8d_min\",\n \"Max\": \"&read8d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (16 DWord)\",\n \"Mean\": \"&read16d_avg\",\n \"Min\": \"&read16d_min\",\n \"Max\": \"&read16d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "pmc_perf2", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Scalar L1D Cache)\"}}\n }}, \n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n \"req_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n \"req_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n\n \"hits_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n \"hits_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n \"hits_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n\n \"dup_misses_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"dup_misses_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"dup_misses_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n\n\n \"cacheHit_avg\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n \"cacheHit_min\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n \"cacheHit_max\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n\n \"readReq_avg\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n \"readReq_min\": {\n \"$min\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n \"readReq_max\": {\n \"$max\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n\n \"atomicReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n \"atomicReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n \"atomicReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n\n\n \"read1d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n \"read1d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n \"read1d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n\n \"read2d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n \"read2d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n \"read2d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n\n \"read4d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n \"read4d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n \"read4d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n\n \"read8d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n \"read8d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n \"read8d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n\n \"read16d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n },\n \"read16d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n },\n \"read16d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean 2\": \"&req_avg\",\n \"Min 2\": \"&req_min\",\n \"Max 2\": \"&req_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Hits\",\n \"Mean 2\": \"&hits_avg\",\n \"Min 2\": \"&hits_min\",\n \"Max 2\": \"&hits_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Non Duplicated\",\n \"Mean 2\": \"&misses_avg\",\n \"Min 2\": \"&misses_min\",\n \"Max 2\": \"&misses_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Misses- Duplicated\",\n \"Mean 2\": \"&dup_misses_avg\",\n \"Min 2\": \"&dup_misses_min\",\n \"Max 2\": \"&dup_misses_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Cache Hit\",\n \"Mean 2\": \"&cacheHit_avg\",\n \"Min 2\": \"&cacheHit_min\",\n \"Max 2\": \"&cacheHit_max\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"Read Req (Total)\",\n \"Mean 2\": \"&readReq_avg\",\n \"Min 2\": \"&readReq_min\",\n \"Max 2\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Write Req (Total)\",\n \"Mean 2\": \"&writeReq_avg\",\n \"Min 2\": \"&writeReq_min\",\n \"Max 2\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Atomic Req\",\n \"Mean 2\": \"&atomicReq_avg\",\n \"Min 2\": \"&atomicReq_min\",\n \"Max 2\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (1 DWord)\",\n \"Mean 2\": \"&read1d_avg\",\n \"Min 2\": \"&read1d_min\",\n \"Max 2\": \"&read1d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (2 DWord)\",\n \"Mean 2\": \"&read2d_avg\",\n \"Min 2\": \"&read2d_min\",\n \"Max 2\": \"&read2d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (4 DWord)\",\n \"Mean 2\": \"&read4d_avg\",\n \"Min 2\": \"&read4d_min\",\n \"Max 2\": \"&read4d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (8 DWord)\",\n \"Mean 2\": \"&read8d_avg\",\n \"Min 2\": \"&read8d_min\",\n \"Max 2\": \"&read8d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (16 DWord)\",\n \"Mean 2\": \"&read16d_avg\",\n \"Min 2\": \"&read16d_min\",\n \"Max 2\": \"&read16d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Scalar L1D Cache Accesses", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Max": 5, - "Max 2": 6, - "Mean": 1, - "Mean 2": 2, - "Metric": 0, - "Min": 3, - "Min 2": 4, - "Unit": 7 - }, - "renameByName": { - "Max": "Max (Current)", - "Max 2": "Max (Baseline)", - "Mean": "Avg (Current)", - "Mean 2": "Avg (Baseline)", - "Min": "Min (Current)", - "Min 2": "Min (Baseline)", - "Unit": "" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 135 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 105 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 112 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 134 - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 20 - }, - "id": 52, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"readReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n \"readReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n \"readReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n\n \"writeReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n \"writeReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n \"writeReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n\n \"atomicReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n \"atomicReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n \"atomicReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n\n \"tc2l1k_stall_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n },\n \"tc2l1k_stall_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n },\n \"tc2l1k_stall_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Read Req\",\n \"Mean\": \"&readReq_avg\",\n \"Min\": \"&readReq_min\",\n \"Max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Write Req\",\n \"Mean\": \"&writeReq_avg\",\n \"Min\": \"&writeReq_min\",\n \"Max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Atomic Req\",\n \"Mean\": \"&atomicReq_avg\",\n \"Min\": \"&atomicReq_min\",\n \"Max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Stall\",\n \"Mean\": \"&tc2l1k_stall_avg\",\n \"Min\": \"&tc2l1k_stall_min\",\n \"Max\": \"&tc2l1k_stall_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}}, \n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Scalar L1D Cache)\"}}\n }},\n {\"$addFields\": {\n \n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"readReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n \"readReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n \"readReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n\n \"writeReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n \"writeReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n \"writeReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n\n \"atomicReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n \"atomicReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n \"atomicReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n\n \"tc2l1k_stall_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n },\n \"tc2l1k_stall_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n },\n \"tc2l1k_stall_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Read Req\",\n \"Mean\": \"&readReq_avg\",\n \"Min\": \"&readReq_min\",\n \"Max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Write Req\",\n \"Mean\": \"&writeReq_avg\",\n \"Min\": \"&writeReq_min\",\n \"Max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Atomic Req\",\n \"Mean\": \"&atomicReq_avg\",\n \"Min\": \"&atomicReq_min\",\n \"Max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Stall\",\n \"Mean\": \"&tc2l1k_stall_avg\",\n \"Min\": \"&tc2l1k_stall_min\",\n \"Max\": \"&tc2l1k_stall_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - } - ], - "title": "Scalar L1D Cache - L2 Interface", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Max 1": 7, - "Max 2": 8, - "Mean 1": 3, - "Mean 2": 4, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Mean 1": "Avg (Current)", - "Mean 2": "Avg (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Scalar L1 Data Cache", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 13 - }, - "id": 130, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 133 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 112 - } - ] - } - ] - }, - "gridPos": { - "h": 17, - "w": 12, - "x": 0, - "y": 14 - }, - "id": 132, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"taBusy_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}] }},\n \"taBusy_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}] }},\n \"taBusy_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}] }},\n\n \"tc2ta_addrStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"tc2ta_addrStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"tc2ta_addrStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n\n \"tc2ta_dataStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"tc2ta_dataStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"tc2ta_dataStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n\n \"td2ta_addrStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"td2ta_addrStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"td2ta_addrStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n\n \"totalInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n \"totalInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n \"totalInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n\n \"flatInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n \"flatInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n \"flatInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n\n \"flatReadInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatReadInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatReadInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"flatWriteInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatWriteInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatWriteInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"flatAtomicInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatAtomicInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatAtomicInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferReadInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferReadInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferReadInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferWriteInstr_avg\":{\"$avg\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferWriteInstr_min\":{\"$min\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferWriteInstr_max\":{\"$max\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferAtomicInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferAtomicInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferAtomicInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"buffTotal_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n \"buffTotal_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n \"buffTotal_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n\n \"buffCoscaleRead_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleRead_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleRead_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n\n \"buffCoscaleWrite_avg\":{\"$avg\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleWrite_min\":{\"$min\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleWrite_max\":{\"$max\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"TA Busy\",\n \"avg\": \"&taBusy_avg\",\n \"min\": \"&taBusy_min\",\n \"max\": \"&taBusy_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TA Addr Stall\",\n \"avg\": \"&tc2ta_addrStall_avg\",\n \"min\": \"&tc2ta_addrStall_min\",\n \"max\": \"&tc2ta_addrStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TA Data Stall\",\n \"avg\": \"&tc2ta_dataStall_avg\",\n \"min\": \"&tc2ta_dataStall_min\",\n \"max\": \"&tc2ta_dataStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TD2TA Addr Stall\",\n \"avg\": \"&td2ta_addrStall_avg\",\n \"min\": \"&td2ta_addrStall_min\",\n \"max\": \"&td2ta_addrStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Total Instructions\",\n \"avg\": \"&totalInstr_avg\",\n \"min\": \"&totalInstr_min\",\n \"max\": \"&totalInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Instr\",\n \"avg\": \"&flatInstr_avg\",\n \"min\": \"&flatInstr_min\",\n \"max\": \"&flatInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Read Instr\",\n \"avg\": \"&flatReadInstr_avg\",\n \"min\": \"&flatReadInstr_min\",\n \"max\": \"&flatReadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Write Instr\",\n \"avg\": \"&flatWriteInstr_avg\",\n \"min\": \"&flatWriteInstr_min\",\n \"max\": \"&flatWriteInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Atomic Instr\",\n \"avg\": \"&flatAtomicInstr_avg\",\n \"min\": \"&flatAtomicInstr_min\",\n \"max\": \"&flatAtomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Instr\",\n \"avg\": \"&bufferInstr_avg\",\n \"min\": \"&bufferInstr_min\",\n \"max\": \"&bufferInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Read Instr\",\n \"avg\": \"&bufferReadInstr_avg\",\n \"min\": \"&bufferReadInstr_min\",\n \"max\": \"&bufferReadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Write Instr\",\n \"avg\": \"&bufferWriteInstr_avg\",\n \"min\": \"&bufferWriteInstr_min\",\n \"max\": \"&bufferWriteInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Atomic Instr\",\n \"avg\": \"&bufferAtomicInstr_avg\",\n \"min\": \"&bufferAtomicInstr_min\",\n \"max\": \"&bufferAtomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Total Cylces\",\n \"avg\": \"&buffTotal_avg\",\n \"min\": \"&buffTotal_min\",\n \"max\": \"&buffTotal_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Coalesced Read\",\n \"avg\": \"&buffCoscaleRead_avg\",\n \"min\": \"&buffCoscaleRead_min\",\n \"max\": \"&buffCoscaleRead_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Coalesced Write\",\n \"avg\": \"&buffCoscaleWrite_avg\",\n \"min\": \"&buffCoscaleWrite_min\",\n \"max\": \"&buffCoscaleWrite_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Texture Addr and Data)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"taBusy_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}] }},\n \"taBusy_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}] }},\n \"taBusy_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}] }},\n\n \"tc2ta_addrStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"tc2ta_addrStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"tc2ta_addrStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n\n \"tc2ta_dataStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"tc2ta_dataStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"tc2ta_dataStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n\n \"td2ta_addrStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"td2ta_addrStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"td2ta_addrStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n\n \"totalInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n \"totalInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n \"totalInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n\n \"flatInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n \"flatInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n \"flatInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n\n \"flatReadInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatReadInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatReadInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"flatWriteInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatWriteInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatWriteInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"flatAtomicInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatAtomicInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatAtomicInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferReadInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferReadInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferReadInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferWriteInstr_avg\":{\"$avg\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferWriteInstr_min\":{\"$min\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferWriteInstr_max\":{\"$max\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferAtomicInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferAtomicInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferAtomicInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"buffTotal_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n \"buffTotal_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n \"buffTotal_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n\n \"buffCoscaleRead_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleRead_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleRead_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n\n \"buffCoscaleWrite_avg\":{\"$avg\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleWrite_min\":{\"$min\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleWrite_max\":{\"$max\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"TA Busy\",\n \"avg\": \"&taBusy_avg\",\n \"min\": \"&taBusy_min\",\n \"max\": \"&taBusy_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TA Addr Stall\",\n \"avg\": \"&tc2ta_addrStall_avg\",\n \"min\": \"&tc2ta_addrStall_min\",\n \"max\": \"&tc2ta_addrStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TA Data Stall\",\n \"avg\": \"&tc2ta_dataStall_avg\",\n \"min\": \"&tc2ta_dataStall_min\",\n \"max\": \"&tc2ta_dataStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TD2TA Addr Stall\",\n \"avg\": \"&td2ta_addrStall_avg\",\n \"min\": \"&td2ta_addrStall_min\",\n \"max\": \"&td2ta_addrStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Total Instructions\",\n \"avg\": \"&totalInstr_avg\",\n \"min\": \"&totalInstr_min\",\n \"max\": \"&totalInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Instr\",\n \"avg\": \"&flatInstr_avg\",\n \"min\": \"&flatInstr_min\",\n \"max\": \"&flatInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Read Instr\",\n \"avg\": \"&flatReadInstr_avg\",\n \"min\": \"&flatReadInstr_min\",\n \"max\": \"&flatReadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Write Instr\",\n \"avg\": \"&flatWriteInstr_avg\",\n \"min\": \"&flatWriteInstr_min\",\n \"max\": \"&flatWriteInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Atomic Instr\",\n \"avg\": \"&flatAtomicInstr_avg\",\n \"min\": \"&flatAtomicInstr_min\",\n \"max\": \"&flatAtomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Instr\",\n \"avg\": \"&bufferInstr_avg\",\n \"min\": \"&bufferInstr_min\",\n \"max\": \"&bufferInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Read Instr\",\n \"avg\": \"&bufferReadInstr_avg\",\n \"min\": \"&bufferReadInstr_min\",\n \"max\": \"&bufferReadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Write Instr\",\n \"avg\": \"&bufferWriteInstr_avg\",\n \"min\": \"&bufferWriteInstr_min\",\n \"max\": \"&bufferWriteInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Atomic Instr\",\n \"avg\": \"&bufferAtomicInstr_avg\",\n \"min\": \"&bufferAtomicInstr_min\",\n \"max\": \"&bufferAtomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Total Cylces\",\n \"avg\": \"&buffTotal_avg\",\n \"min\": \"&buffTotal_min\",\n \"max\": \"&buffTotal_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Coalesced Read\",\n \"avg\": \"&buffCoscaleRead_avg\",\n \"min\": \"&buffCoscaleRead_min\",\n \"max\": \"&buffCoscaleRead_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Coalesced Write\",\n \"avg\": \"&buffCoscaleWrite_avg\",\n \"min\": \"&buffCoscaleWrite_min\",\n \"max\": \"&buffCoscaleWrite_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "TA", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Unit 2": true, - "metric 2": true - }, - "indexByName": { - "Unit 1": 9, - "Unit 2": 2, - "avg 1": 3, - "avg 2": 4, - "max 1": 7, - "max 2": 8, - "metric 1": 0, - "metric 2": 1, - "min 1": 5, - "min 2": 6 - }, - "renameByName": { - "avg 1": "Avg (Current)", - "avg 2": "Avg (Baseline)", - "max 1": "Max (Current)", - "max 2": "Max (Baseline)", - "min 1": "Min (Current)", - "min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 124 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 120 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 135 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 130 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 108 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 136 - } - ] - } - ] - }, - "gridPos": { - "h": 17, - "w": 12, - "x": 12, - "y": 14 - }, - "id": 134, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"tdBusy_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}] }},\n \"tdBusy_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}] }},\n \"tdBusy_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}] }},\n\n \"tc2tdStall_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"tc2tdStall_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"tc2tdStall_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n\n \"spi2td_stall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"spi2td_stall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"spi2td_stall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n\n \"coscaleInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n \"coscaleInstr_min\":{\"$min\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n \"coscaleInstr_max\":{\"$max\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n\n \"loadInstr_avg\":{\"$avg\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n \"loadInstr_min\":{\"$min\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n \"loadInstr_max\":{\"$max\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n\n \"storeInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n \"storeInstr_min\":{\"$min\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n \"storeInstr_max\":{\"$max\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n\n \"atomicInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}},\n \"atomicInstr_min\":{\"$min\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}},\n \"atomicInstr_max\":{\"$max\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"TD Busy\",\n \"avg\": \"&tdBusy_avg\",\n \"min\": \"&tdBusy_min\",\n \"max\": \"&tdBusy_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TD Stall\",\n \"avg\": \"&tc2tdStall_avg\",\n \"min\": \"&tc2tdStall_min\",\n \"max\": \"&tc2tdStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"SPI2TD Stall\",\n \"avg\": \"&spi2td_stall_avg\",\n \"min\": \"&spi2td_stall_min\",\n \"max\": \"&spi2td_stall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Coalescable Instr\",\n \"avg\": \"&coscaleInstr_avg\",\n \"min\": \"&coscaleInstr_min\",\n \"max\": \"&coscaleInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Load Instr\",\n \"avg\": \"&loadInstr_avg\",\n \"min\": \"&loadInstr_min\",\n \"max\": \"&loadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Store Instr\",\n \"avg\": \"&storeInstr_avg\",\n \"min\": \"&storeInstr_min\",\n \"max\": \"&storeInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Instr\",\n \"avg\": \"&atomicInstr_avg\",\n \"min\": \"&atomicInstr_min\",\n \"max\": \"&atomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Texture Addr and Data)\"}}\n }},\n {\"$addFields\": {\n \n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"tdBusy_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}] }},\n \"tdBusy_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}] }},\n \"tdBusy_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}] }},\n\n \"tc2tdStall_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"tc2tdStall_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"tc2tdStall_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n\n \"spi2td_stall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"spi2td_stall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"spi2td_stall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n\n \"coscaleInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n \"coscaleInstr_min\":{\"$min\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n \"coscaleInstr_max\":{\"$max\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n\n \"loadInstr_avg\":{\"$avg\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n \"loadInstr_min\":{\"$min\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n \"loadInstr_max\":{\"$max\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n\n \"storeInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n \"storeInstr_min\":{\"$min\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n \"storeInstr_max\":{\"$max\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n\n \"atomicInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}},\n \"atomicInstr_min\":{\"$min\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}},\n \"atomicInstr_max\":{\"$max\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"TD Busy\",\n \"avg\": \"&tdBusy_avg\",\n \"min\": \"&tdBusy_min\",\n \"max\": \"&tdBusy_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TD Stall\",\n \"avg\": \"&tc2tdStall_avg\",\n \"min\": \"&tc2tdStall_min\",\n \"max\": \"&tc2tdStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"SPI2TD Stall\",\n \"avg\": \"&spi2td_stall_avg\",\n \"min\": \"&spi2td_stall_min\",\n \"max\": \"&spi2td_stall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Coalescable Instr\",\n \"avg\": \"&coscaleInstr_avg\",\n \"min\": \"&coscaleInstr_min\",\n \"max\": \"&coscaleInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Load Instr\",\n \"avg\": \"&loadInstr_avg\",\n \"min\": \"&loadInstr_min\",\n \"max\": \"&loadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Store Instr\",\n \"avg\": \"&storeInstr_avg\",\n \"min\": \"&storeInstr_min\",\n \"max\": \"&storeInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Instr\",\n \"avg\": \"&atomicInstr_avg\",\n \"min\": \"&atomicInstr_min\",\n \"max\": \"&atomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "TD", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Unit 2": true, - "metric 2": true - }, - "indexByName": { - "Unit 1": 9, - "Unit 2": 2, - "avg 1": 3, - "avg 2": 4, - "max 1": 7, - "max 2": 8, - "metric 1": 0, - "metric 2": 1, - "min 1": 5, - "min 2": 6 - }, - "renameByName": { - "avg 1": "Avg (Current)", - "avg 2": "Avg (Baseline)", - "max 1": "Max (Current)", - "max 2": "Max (Baseline)", - "min 1": "Min (Current)", - "min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Texture Addresser and Texture Data (TA/TD)", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 14 - }, - "id": 112, - "panels": [ - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 13, - "w": 12, - "x": 0, - "y": 15 - }, - "id": 165, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showUnfilled": true, - "text": {} - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"bufferCoalescing_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_TOTAL_ACCESSES_sum\", 0] },\n { \"$divide\": [{\"$multiply\": [\"&TA_TOTAL_WAVEFRONTS_sum\", 64, 100]}, {\"$multiply\": [\"&TCP_TOTAL_ACCESSES_sum\", 4]}] },\n null\n ]\n }\n },\n \"cacheUtil_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0] },\n { \"$divide\": [{\"$multiply\": [\"&TCP_GATE_EN2_sum\", 100]}, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }\n },\n \n \"cacheBW_pct\": {\n \"$avg\": { \"$divide\": [ {\"$multiply\":[64, \"&TCP_TOTAL_CACHE_ACCESSES_sum\"]}, \n {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]} \n ] \n }\n },\n \"cacheHit_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0] },\n { \"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]\n }] \n },\n null\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Buffer Coalescing\": \"&bufferCoalescing_pct\",\n \"Cache Util\": \"&cacheUtil_pct\",\n \"Cache BW\": { \"$divide\": [{ \"$multiply\": [100, \"&cacheBW_pct\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numCU]}] },\n \"Cache Hit\": \"&cacheHit_pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Vector L1D Cache)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"bufferCoalescing_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_TOTAL_ACCESSES_sum\", 0] },\n { \"$divide\": [{\"$multiply\": [\"&TA_TOTAL_WAVEFRONTS_sum\", 64, 100]}, {\"$multiply\": [\"&TCP_TOTAL_ACCESSES_sum\", 4]}] },\n null\n ]\n }\n },\n \"cacheUtil_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0] },\n { \"$divide\": [{\"$multiply\": [\"&TCP_GATE_EN2_sum\", 100]}, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }\n },\n \"cacheBW_pct\": {\n \"$avg\": { \"$divide\": [ {\"$multiply\":[64, \"&TCP_TOTAL_CACHE_ACCESSES_sum\"]}, \n {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]} \n ] \n }\n },\n \"cacheHit_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0] },\n { \"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]\n }] \n },\n null\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Buffer Coalescing\": \"&bufferCoalescing_pct\",\n \"Cache Util\": \"&cacheUtil_pct\",\n \"Cache BW\": { \"$divide\": [{ \"$multiply\": [100, \"&cacheBW_pct\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numCU2]}] },\n \"Cache Hit\": \"&cacheHit_pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Speed-of-Light: Vector L1D Cache", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "128B Read Combining 1": 6, - "128B Read Combining 2": 7, - "Buffer Coalescing 1": 0, - "Buffer Coalescing 2": 1, - "Cache BW 1": 2, - "Cache BW 2": 3, - "Cache Hit 1": 4, - "Cache Hit 2": 5 - }, - "renameByName": { - "128B Read Combining 1": "128B Read Combining (Current)", - "128B Read Combining 2": "128B Read Combining(Baseline)", - "Buffer Coalescing 1": "Buf Coalescing (Current)", - "Buffer Coalescing 2": "Buf Coalescing (Baseline)", - "Cache BW 1": "Cache BW (Current)", - "Cache BW 2": "Cache BW (Baseline)", - "Cache Hit 1": "Cache Hit (Current)", - "Cache Hit 2": "Cache Hit (Baseline)", - "Cache Util 1": "Cache Util (Current)", - "Cache Util 2": "Cache Util (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "color-background" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "transparent" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percent" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 52 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 199 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 121 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 144 - } - ] - } - ] - }, - "gridPos": { - "h": 13, - "w": 12, - "x": 12, - "y": 15 - }, - "id": 116, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"l2Pending_avg\": {\"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"l2Pending_min\": {\"$min\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"l2Pending_max\": {\"$max\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n\n\n \"tcr2tcp_Stall_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"tcr2tcp_Stall_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"tcr2tcp_Stall_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \n \"readTagRam_Stall_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \"readTagRam_Stall_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \"readTagRam_Stall_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \n \"writeTagRam_Stall_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"writeTagRam_Stall_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"writeTagRam_Stall_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \n \n \"atomicTagRam_Stall_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }}, \n \"atomicTagRam_Stall_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }}, \n \"atomicTagRam_Stall_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }} \n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Stalled on L2 Data\",\n \"Mean\": \"&l2Pending_avg\",\n \"Min\": \"&l2Pending_min\",\n \"Max\": \"&l2Pending_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Stalled on L2 Req\",\n \"Mean\": \"&tcr2tcp_Stall_avg\",\n \"Min\":\"&tcr2tcp_Stall_min\",\n \"Max\":\"&tcr2tcp_Stall_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Tag RAM Stall (Read)\",\n \"Mean\": \"&readTagRam_Stall_avg\",\n \"Min\": \"&readTagRam_Stall_min\",\n \"Max\": \"&readTagRam_Stall_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Tag RAM Stall (Write)\",\n \"Mean\": \"&writeTagRam_Stall_avg\",\n \"Min\": \"&writeTagRam_Stall_min\",\n \"Max\": \"&writeTagRam_Stall_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Tag RAM Stall (Atomic)\",\n \"Mean\": \"&atomicTagRam_Stall_avg\",\n \"Min\": \"&atomicTagRam_Stall_min\",\n \"Max\": \"&atomicTagRam_Stall_max\",\n \"unit\":\"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Vector L1D Cache)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"l2Pending_avg\": {\"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"l2Pending_min\": {\"$min\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"l2Pending_max\": {\"$max\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n\n \"tcr2tcp_Stall_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"tcr2tcp_Stall_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"tcr2tcp_Stall_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \n \"readTagRam_Stall_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \"readTagRam_Stall_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \"readTagRam_Stall_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \n \"writeTagRam_Stall_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"writeTagRam_Stall_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"writeTagRam_Stall_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \n \n \"atomicTagRam_Stall_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }}, \n \"atomicTagRam_Stall_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }}, \n \"atomicTagRam_Stall_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }} \n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Stalled on L2 Data\",\n \"Mean\": \"&l2Pending_avg\",\n \"Min\": \"&l2Pending_min\",\n \"Max\": \"&l2Pending_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Stalled on L2 Req\",\n \"Mean\": \"&tcr2tcp_Stall_avg\",\n \"Min\":\"&tcr2tcp_Stall_min\",\n \"Max\":\"&tcr2tcp_Stall_max\",\n \"unit\":\"pct\"\n },\n\n {\n \"Metric\": \"Tag RAM Stall (Read)\",\n \"Mean\": \"&readTagRam_Stall_avg\",\n \"Min\": \"&readTagRam_Stall_min\",\n \"Max\": \"&readTagRam_Stall_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Tag RAM Stall (Write)\",\n \"Mean\": \"&writeTagRam_Stall_avg\",\n \"Min\": \"&writeTagRam_Stall_min\",\n \"Max\": \"&writeTagRam_Stall_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Tag RAM Stall (Atomic)\",\n \"Mean\": \"&atomicTagRam_Stall_avg\",\n \"Min\": \"&atomicTagRam_Stall_min\",\n \"Max\": \"&atomicTagRam_Stall_max\",\n \"unit\":\"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Vector L1D Cache Stalls", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Units 2": true, - "unit 2": true - }, - "indexByName": { - "Max 1": 6, - "Max 2": 7, - "Mean 1": 2, - "Mean 2": 3, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 4, - "Min 2": 5, - "unit 1": 9, - "unit 2": 8 - }, - "renameByName": { - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Mean 1": "Avg (Current)", - "Mean 2": "Avg (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)", - "unit 1": "Unit" - } - } - } - ], - "type": "table" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 116 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 78 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 139 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 50 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "max" - }, - "properties": [ - { - "id": "custom.width", - "value": 148 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 127 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 111 - } - ] - } - ] - }, - "gridPos": { - "h": 18, - "w": 12, - "x": 0, - "y": 28 - }, - "id": 128, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n\n \"totalReq_avg\":{\"$avg\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n \"totalReq_min\":{\"$min\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n \"totalReq_max\":{\"$max\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n\n \"readReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n \"readReq_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n \"readReq_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n\n \"writeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n\n \"atomicReq_avg\":{\"$avg\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n \"atomicReq_min\":{\"$min\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n \"atomicReq_max\":{\"$max\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n\n \"cacheBW_avg\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }},\n \"cacheBW_min\":{\"$min\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }},\n \"cacheBW_max\":{\"$max\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }},\n \n \"cacheAccess_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n \"cacheAccess_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n \"cacheAccess_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n\n \"cacheHits_avg\":{\"$avg\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \"cacheHits_min\":{\"$min\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \"cacheHits_max\":{\"$max\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \n \"cacheHitRate_avg\":{\"$avg\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n \"cacheHitRate_min\":{\"$min\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n \"cacheHitRate_max\":{\"$max\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n \n \"l2_l1_read_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n \"l2_l1_read_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n \"l2_l1_read_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n\n \"l2_l1_write_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n \"l2_l1_write_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n \"l2_l1_write_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n\n\n \"l2_l1_atomic_avg\":{\"$avg\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n \"l2_l1_atomic_min\":{\"$min\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n \"l2_l1_atomic_max\":{\"$max\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n\n \"l2_l1_bw_avg\":{\"$avg\": {\"$divide\": [{\"$multiply\": [64, {\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] } ]}, \"&denom\" ]}},\n \"l2_l1_bw_min\":{\"$min\": {\"$divide\": [{\"$multiply\": [64, {\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] } ]}, \"&denom\" ]}},\n \"l2_l1_bw_max\":{\"$max\": {\"$divide\": [{\"$multiply\": [64, {\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] } ]}, \"&denom\" ]}},\n\n \"invalidate_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n \"invalidate_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n \"invalidate_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n\n\n \"l1Latency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n \"l1Latency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n \"l1Latency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n\n\n \"l2ReadLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n \"l2ReadLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n \"l2ReadLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n\n \"l2WriteLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }},\n \"l2WriteLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }},\n \"l2WriteLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }}\n\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Total Req\",\n \"avg\": \"&totalReq_avg\",\n \"min\": \"&totalReq_min\",\n \"max\": \"&totalReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Read Req\",\n \"avg\": \"&readReq_avg\",\n \"min\": \"&readReq_min\",\n \"max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Write Req\",\n \"avg\": \"&writeReq_avg\",\n \"min\": \"&writeReq_min\",\n \"max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Req\",\n \"avg\": \"&l2_l1_atomic_avg\",\n \"min\": \"&l2_l1_atomic_min\",\n \"max\": \"&l2_l1_atomic_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache BW\",\n \"avg\": \"&cacheBW_avg\",\n \"min\": \"&cacheBW_min\",\n \"max\": \"&cacheBW_max\",\n \"Unit\": \"GB/s\"\n },\n {\n \"metric\": \"Cache Accesses\",\n \"avg\": \"&cacheAccess_avg\",\n \"min\": \"&cacheAccess_min\",\n \"max\": \"&cacheAccess_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hits\",\n \"avg\": \"&cacheHits_avg\",\n \"min\": \"&cacheHits_min\",\n \"max\": \"&cacheHits_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hit Rate\",\n \"avg\": \"&cacheHitRate_avg\",\n \"min\": \"&cacheHitRate_min\",\n \"max\": \"&cacheHitRate_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Invalidate\",\n \"avg\": \"&invalidate_avg\",\n \"min\": \"&invalidate_min\",\n \"max\": \"&invalidate_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 BW\",\n \"avg\": \"&l2_l1_bw_avg\",\n \"min\": \"&l2_l1_bw_avg\",\n \"max\": \"&l2_l1_bw_avg\",\n \"Unit\": {\"$concat\": [\"Bytes \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Read\",\n \"avg\": \"&l2_l1_read_avg\",\n \"min\": \"&l2_l1_read_min\",\n \"max\": \"&l2_l1_read_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Write\",\n \"avg\": \"&l2_l1_write_avg\",\n \"min\": \"&l2_l1_write_min\",\n \"max\": \"&l2_l1_write_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Atomic\",\n \"avg\": \"&l2_l1_atomic_avg\",\n \"min\": \"&l2_l1_atomic_min\",\n \"max\": \"&l2_l1_atomic_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1 Access Latency\",\n \"avg\": \"&l1Latency_avg\",\n \"min\": \"&l1Latency_min\",\n \"max\": \"&l1Latency_max\",\n \"Unit\": \"Cycles\"\n },\n {\n \"metric\": \"L1-L2 Read Latency\",\n \"avg\": \"&l2ReadLatency_avg\",\n \"min\": \"&l2ReadLatency_min\",\n \"max\": \"&l2ReadLatency_max\",\n \"Unit\": \"Cycles\"\n },\n {\n \"metric\": \"L1-L2 Write Latency\",\n \"avg\": \"&l2WriteLatency_avg\",\n \"min\": \"&l2WriteLatency_min\",\n \"max\": \"&l2WriteLatency_max\",\n \"Unit\": \"Cycles\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Vector L1D Cache)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n\n \"totalReq_avg\":{\"$avg\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n \"totalReq_min\":{\"$min\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n \"totalReq_max\":{\"$max\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n\n \"readReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n \"readReq_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n \"readReq_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n\n \"writeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n\n \"atomicReq_avg\":{\"$avg\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n \"atomicReq_min\":{\"$min\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n \"atomicReq_max\":{\"$max\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n\n \"cacheBW_avg\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }},\n \"cacheBW_min\":{\"$min\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }},\n \"cacheBW_max\":{\"$max\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }},\n \n \"cacheAccess_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n \"cacheAccess_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n \"cacheAccess_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n\n \"cacheHits_avg\":{\"$avg\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \"cacheHits_min\":{\"$min\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \"cacheHits_max\":{\"$max\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \n \"cacheHitRate_avg\":{\"$avg\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n \"cacheHitRate_min\":{\"$min\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n \"cacheHitRate_max\":{\"$max\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n\n \"l2_l1_read_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n \"l2_l1_read_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n \"l2_l1_read_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n\n \"l2_l1_write_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n \"l2_l1_write_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n \"l2_l1_write_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n\n\n \"l2_l1_atomic_avg\":{\"$avg\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n \"l2_l1_atomic_min\":{\"$min\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n \"l2_l1_atomic_max\":{\"$max\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n\n \"l2_l1_bw_avg\":{\"$avg\": {\"$divide\": [{\"$multiply\": [64, {\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] } ]}, \"&denom\" ]}},\n \"l2_l1_bw_min\":{\"$min\": {\"$divide\": [{\"$multiply\": [64, {\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] } ]}, \"&denom\" ]}},\n \"l2_l1_bw_max\":{\"$max\": {\"$divide\": [{\"$multiply\": [64, {\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] } ]}, \"&denom\" ]}},\n\n \"invalidate_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n \"invalidate_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n \"invalidate_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n\n\n \"l1Latency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n \"l1Latency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n \"l1Latency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n\n\n \"l2ReadLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n \"l2ReadLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n \"l2ReadLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n\n \"l2WriteLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }},\n \"l2WriteLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }},\n \"l2WriteLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Total Req\",\n \"avg\": \"&totalReq_avg\",\n \"min\": \"&totalReq_min\",\n \"max\": \"&totalReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Read Req\",\n \"avg\": \"&readReq_avg\",\n \"min\": \"&readReq_min\",\n \"max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Write Req\",\n \"avg\": \"&writeReq_avg\",\n \"min\": \"&writeReq_min\",\n \"max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Req\",\n \"avg\": \"&atomicReq_avg\",\n \"min\": \"&atomicReq_min\",\n \"max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache BW\",\n \"avg\": \"&cacheBW_avg\",\n \"min\": \"&cacheBW_min\",\n \"max\": \"&cacheBW_max\",\n \"Unit\": \"GB/s\"\n },\n {\n \"metric\": \"Cache Accesses\",\n \"avg\": \"&cacheAccess_avg\",\n \"min\": \"&cacheAccess_min\",\n \"max\": \"&cacheAccess_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hits\",\n \"avg\": \"&cacheHits_avg\",\n \"min\": \"&cacheHits_min\",\n \"max\": \"&cacheHits_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hit Rate\",\n \"avg\": \"&cacheHitRate_avg\",\n \"min\": \"&cacheHitRate_min\",\n \"max\": \"&cacheHitRate_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Invalidate\",\n \"avg\": \"&invalidate_avg\",\n \"min\": \"&invalidate_min\",\n \"max\": \"&invalidate_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 BW\",\n \"avg\": \"&l2_l1_bw_avg\",\n \"min\": \"&l2_l1_bw_avg\",\n \"max\": \"&l2_l1_bw_avg\",\n \"Unit\": {\"$concat\": [\"Bytes \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Read\",\n \"avg\": \"&l2_l1_read_avg\",\n \"min\": \"&l2_l1_read_min\",\n \"max\": \"&l2_l1_read_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Write\",\n \"avg\": \"&l2_l1_write_avg\",\n \"min\": \"&l2_l1_write_min\",\n \"max\": \"&l2_l1_write_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Atomic\",\n \"avg\": \"&l2_l1_atomic_avg\",\n \"min\": \"&l2_l1_atomic_min\",\n \"max\": \"&l2_l1_atomic_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1 Access Latency\",\n \"avg\": \"&l1Latency_avg\",\n \"min\": \"&l1Latency_min\",\n \"max\": \"&l1Latency_max\",\n \"Unit\": \"Cycles\"\n },\n {\n \"metric\": \"L1-L2 Read Latency\",\n \"avg\": \"&l2ReadLatency_avg\",\n \"min\": \"&l2ReadLatency_min\",\n \"max\": \"&l2ReadLatency_max\",\n \"Unit\": \"Cycles\"\n },\n {\n \"metric\": \"L1-L2 Write Latency\",\n \"avg\": \"&l2WriteLatency_avg\",\n \"min\": \"&l2WriteLatency_min\",\n \"max\": \"&l2WriteLatency_max\",\n \"Unit\": \"Cycles\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Vector L1D Cache Accesses", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Unit 2": true, - "metric 2": true - }, - "indexByName": { - "Unit 1": 9, - "Unit 2": 8, - "avg 1": 1, - "avg 2": 2, - "max 1": 5, - "max 2": 6, - "metric 1": 0, - "metric 2": 7, - "min 1": 3, - "min 2": 4 - }, - "renameByName": { - "avg 1": "Avg (Current)", - "avg 2": "Avg (Baseline)", - "max 1": "Max (Current)", - "max 2": "Max (Baseline)", - "min 1": "Min (Current)", - "min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "Aggregate": "last", - "BarPadding": 30, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupColName": "Coherency", - "GroupCols": 2, - "GroupGap": 5, - "GroupLabelColor": "#FF9830", - "GroupLabelFontSize": "100%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 0, - "Horizontal": true, - "LabelColName": "Xfer", - "LabelColor": "#ffffff", - "LabelFontSize": "100%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 0, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#FADE2A", - "ValueDecimals": 0, - "ValueFontSize": "100%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:172", - "Col": 2, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Mean", - "Selected": true - } - ], - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 28 - }, - "id": 120, - "pluginVersion": "8.2.1", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "tlh8EwUnk" - }, - "rawQuery": true, - "refId": "A", - "target": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n\n \"readNC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_NC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readNC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_NC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readNC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_NC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readUC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_UC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readUC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_UC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readUC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_UC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readCC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_CC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readCC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_CC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readCC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_CC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readRW_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_RW_READ_REQ_sum\", \"&denom\"] }\n },\n \"readRW_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_RW_READ_REQ_sum\", \"&denom\"] }\n },\n \"readRW_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_RW_READ_REQ_sum\", \"&denom\"] }\n },\n \n \"writeNC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_NC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeNC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_NC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeNC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_NC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeUC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_UC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeUC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_UC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeUC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_UC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeCC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_CC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeCC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_CC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeCC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_CC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeRW_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_RW_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeRW_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_RW_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeRW_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_RW_WRITE_REQ_sum\", \"&denom\"] }\n },\n \n \"atomicNC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_NC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicNC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_NC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicNC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_NC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicUC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_UC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicUC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_UC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicUC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_UC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicCC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_CC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicCC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_CC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicCC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_CC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicRW_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_RW_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicRW_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_RW_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicRW_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_RW_ATOMIC_REQ_sum\", \"&denom\"] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Xfer\": \"Read\",\n \"Coherency\": \"NC\",\n \"Avg\": \"&readNC_avg\",\n \"Min\": \"&readNC_min\",\n \"Max\": \"&readNC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Read\",\n \"Coherency\": \"UC\",\n \"Avg\": \"&readUC_avg\",\n \"Min\": \"&readUC_min\",\n \"Max\": \"&readUC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Read\",\n \"Coherency\": \"CC\",\n \"Avg\": \"&readCC_avg\",\n \"Min\": \"&readCC_min\",\n \"Max\": \"&readCC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Read\",\n \"Coherency\": \"RW\",\n \"Avg\": \"&readRW_avg\",\n \"Min\": \"&readRW_min\",\n \"Max\": \"&readRW_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Write\",\n \"Coherency\": \"RW\",\n \"Avg\": \"&writeRW_avg\",\n \"Min\": \"&writeRW_min\",\n \"Max\": \"&writeRW_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Write\",\n \"Coherency\": \"NC\",\n \"Avg\": \"&writeNC_avg\",\n \"Min\": \"&writeNC_min\",\n \"Max\": \"&writeNC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Write\",\n \"Coherency\": \"UC\",\n \"Avg\": \"&writeUC_avg\",\n \"Min\": \"&writeUC_min\",\n \"Max\": \"&writeUC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Write\",\n \"Coherency\": \"CC\",\n \"Avg\": \"&writeCC_avg\",\n \"Min\": \"&writeCC_min\",\n \"Max\": \"&writeCC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n\n {\n \"Xfer\": \"Atomic\",\n \"Coherency\": \"NC\",\n \"Avg\": \"&atomicNC_avg\",\n \"Min\": \"&atomicNC_min\",\n \"Max\": \"&atomicNC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Atomic\",\n \"Coherency\": \"UC\",\n \"Avg\": \"&atomicUC_avg\",\n \"Min\": \"&atomicUC_min\",\n \"Max\": \"&atomicUC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Atomic\",\n \"Coherency\": \"CC\",\n \"Avg\": \"&atomicCC_avg\",\n \"Min\": \"&atomicCC_min\",\n \"Max\": \"&atomicCC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Atomic\",\n \"Coherency\": \"RW\",\n \"Avg\": \"&atomicRW_avg\",\n \"Min\": \"&atomicRW_min\",\n \"Max\": \"&atomicRW_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Vector L1D - L2 Transactions Req $normUnit", - "transparent": true, - "type": "michaeldmoore-multistat-panel" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Units" - }, - "properties": [ - { - "id": "custom.width", - "value": 75 - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 36 - }, - "id": 124, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\":{\"$avg\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n \"req_min\":{\"$min\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n \"req_max\":{\"$max\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n\n\n \"hitRatio_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n \"hitRatio_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n \"hitRatio_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n\n \"hits_avg\":{\"$avg\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n \"hits_min\":{\"$min\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n \"hits_max\":{\"$max\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n\n \"missesTrans_avg\":{\"$avg\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n \"missesTrans_min\":{\"$min\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n \"missesTrans_max\":{\"$max\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n\n \"missesPermis_avg\":{\"$avg\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }},\n \"missesPermis_min\":{\"$min\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }},\n \"missesPermis_max\":{\"$max\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean\": \"&req_avg\",\n \"Min\":\"&req_min\",\n \"Max\":\"&req_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Hit Ratio\",\n \"Mean\": \"&hitRatio_avg\",\n \"Min\":\"&hitRatio_min\",\n \"Max\":\"&hitRatio_max\",\n \"Units\":\"pct\"\n },\n {\n \"Metric\": \"Hits\",\n \"Mean\": \"&hits_avg\",\n \"Min\":\"&hits_min\",\n \"Max\":\"&hits_max\",\n \"Units\":{ \"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Misses (Translation)\",\n \"Mean\": \"&missesTrans_avg\",\n \"Min\":\"&missesTrans_min\",\n \"Max\":\"&missesTrans_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Misses (Permission)\",\n \"Mean\": \"&missesPermis_avg\",\n \"Min\":\"&missesPermis_min\",\n \"Max\":\"&missesPermis_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Vector L1D Cache)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\":{\"$avg\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n \"req_min\":{\"$min\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n \"req_max\":{\"$max\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n\n\n \"hitRatio_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n \"hitRatio_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n \"hitRatio_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n\n \"hits_avg\":{\"$avg\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n \"hits_min\":{\"$min\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n \"hits_max\":{\"$max\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n\n \"missesTrans_avg\":{\"$avg\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n \"missesTrans_min\":{\"$min\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n \"missesTrans_max\":{\"$max\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n\n \"missesPermis_avg\":{\"$avg\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }},\n \"missesPermis_min\":{\"$min\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }},\n \"missesPermis_max\":{\"$max\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean\": \"&req_avg\",\n \"Min\":\"&req_min\",\n \"Max\":\"&req_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Hit Ratio\",\n \"Mean\": \"&hitRatio_avg\",\n \"Min\":\"&hitRatio_min\",\n \"Max\":\"&hitRatio_max\",\n \"Units\":\"pct\"\n },\n {\n \"Metric\": \"Hits\",\n \"Mean\": \"&hits_avg\",\n \"Min\":\"&hits_min\",\n \"Max\":\"&hits_max\",\n \"Units\":{ \"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Misses (Translation)\",\n \"Mean\": \"&missesTrans_avg\",\n \"Min\":\"&missesTrans_min\",\n \"Max\":\"&missesTrans_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Misses (Permission)\",\n \"Mean\": \"&missesPermis_avg\",\n \"Min\":\"&missesPermis_min\",\n \"Max\":\"&missesPermis_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Vector L1D Addr Translation", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Units 2": true - }, - "indexByName": { - "Max 1": 7, - "Max 2": 8, - "Mean 1": 3, - "Mean 2": 4, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Units 1": 9, - "Units 2": 2 - }, - "renameByName": { - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Mean 1": "Avg (Current)", - "Mean 2": "Avg (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Vector L1 Data Cache", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 15 - }, - "id": 56, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "L2-EA Rd BW - GB/s" - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2-EA Rd BW " - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - }, - { - "id": "max", - "value": 1638 - }, - { - "id": "color" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2 Util" - }, - "properties": [ - { - "id": "unit", - "value": "percent" - }, - { - "id": "thresholds", - "value": { - "mode": "percentage", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - } - }, - { - "id": "max", - "value": 100 - }, - { - "id": "min", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Cache Hit" - }, - "properties": [ - { - "id": "max", - "value": 100 - }, - { - "id": "unit", - "value": "percent" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - } - }, - { - "id": "min", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2-EA Wr BW" - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - }, - { - "id": "max", - "value": 1638 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2-EA Rd BW" - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - }, - { - "id": "max", - "value": 1638 - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 16 - }, - "id": 64, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "text": { - "titleSize": 14, - "valueSize": 16 - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n{\"$group\": {\n \"_id\": null,\n \"L2Util\": {\n \"$avg\": { \n \n \"$divide\": [\n {\"$multiply\": [\"&TCC_BUSY_sum\", 100]},\n {\"$multiply\": [{\"$toInt\":\"$L2Banks\"}, \"&GRBM_GUI_ACTIVE\"] }\n ] \n } \n },\n\n \"cacheHit\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n 0\n ] \n }},\n\n \"l2eaRdBW\": {\n \"$avg\": { \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \n \"l2eaWrBW\": {\n \"$avg\": { \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"L2 Util\": \"&L2Util\",\n \"Cache Hit\": \"&cacheHit\",\n \"L2-EA Rd BW\": \"&l2eaRdBW\",\n \"L2-EA Wr BW\": \"&l2eaWrBW\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(L2 Cache)\"}}\n }},\n\n{\"$group\": {\n \"_id\": null,\n \"L2Util\": {\n \"$avg\": { \n \"$divide\": [\n {\"$multiply\": [\"&TCC_BUSY_sum\", 100]},\n {\"$multiply\": [{\"$toInt\":\"$L2Banks2\"}, \"&GRBM_GUI_ACTIVE\"] }\n ] \n } \n },\n\n \"cacheHit\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n 0\n ] \n }},\n\n \"l2eaRdBW\": {\n \"$avg\": { \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \n \"l2eaWrBW\": {\n \"$avg\": { \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"L2 Util\": \"&L2Util\",\n \"Cache Hit\": \"&cacheHit\",\n \"L2-EA Rd BW\": \"&l2eaRdBW\",\n \"L2-EA Wr BW\": \"&l2eaWrBW\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Speed-of-Light: L2 Cache", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Cache Hit 1": 2, - "Cache Hit 2": 3, - "L2 Util 1": 0, - "L2 Util 2": 1, - "L2-EA Rd BW 1": 4, - "L2-EA Rd BW 2": 5, - "L2-EA Wr BW 1": 6, - "L2-EA Wr BW 2": 7 - }, - "renameByName": { - "Cache Hit 1": "L2 Cache Hit (Current)", - "Cache Hit 2": "L2 Cache Hit (Baseline)", - "L2 Util 1": "L2 Util (Current)", - "L2 Util 2": "L2 Util (Baseline)", - "L2-EA Rd BW - GB/s 1": "L2-EA RD BW (Current)", - "L2-EA Rd BW - GB/s 2": "L2-EA RD BW (baseline)", - "L2-EA Rd BW 1": "L2-EA Rd BW (Current)", - "L2-EA Rd BW 2": "L2-EA Rd BW (Baseline)", - "L2-EA Wr BW - GB/s 1": "L2-EA WR BW (Current)", - "L2-EA Wr BW - GB/s 2": "L2-EA WR BW (Baseline)", - "L2-EA Wr BW 1": "L2-EA Wr BW (Current)", - "L2-EA Wr BW 2": "L2-EA Wr BW (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 106 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 114 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 148 - } - ] - } - ] - }, - "gridPos": { - "h": 16, - "w": 12, - "x": 12, - "y": 16 - }, - "id": 62, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": \"null\",\n \"readStall_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"readStall_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"readStall_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n\n \"writeStall_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"writeStall_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"writeStall_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n\n \n \"readBW_avg\":{\"$avg\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n \"readBW_min\":{\"$min\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n \"readBW_max\":{\"$max\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n\n \"writeBW_avg\":{\"$avg\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n \"writeBW_min\":{\"$min\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n \"writeBW_max\":{\"$max\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n\n \"read32_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n \"read32_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n \"read32_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n\n \"read32Uncached_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"read32Uncached_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"read32Uncached_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n\n \"read64_avg\":{\"$avg\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n \"read64_min\":{\"$min\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n \"read64_max\":{\"$max\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n\n \"hbmRead_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmRead_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmRead_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n\n \"write32_avg\":{\"$avg\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n \"write32_min\":{\"$min\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n \"write32_max\":{\"$max\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n\n \"write32Uncached_avg\": {\"$avg\":{\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"write32Uncached_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"write32Uncached_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n\n \"write64_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n \"write64_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n \"write64_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n\n \"hbmWrite_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmWrite_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmWrite_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n\n \"readLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n \"readLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n \"readLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n\n \"writeLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n \"writeLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n \"writeLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n\n \"atomicOpLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }},\n \"atomicOpLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }},\n \"atomicOpLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Read BW\",\n \"Avg\": \"&readBW_avg\",\n \"Min\":\"&readBW_min\",\n \"Max\":\"&readBW_max\",\n \"Unit\":{\"$concat\": [\"Bytes \", $normUnit] }\n },\n {\n \"Metric\": \"Write BW\",\n \"Avg\": \"&writeBW_avg\",\n \"Min\":\"&writeBW_min\",\n \"Max\":\"&writeBW_max\",\n \"Unit\":{\"$concat\": [\"Bytes \", $normUnit] }\n },\n {\n \"Metric\": \"Read (32B)\",\n \"Avg\": \"&read32_avg\",\n \"Min\":\"&read32_min\",\n \"Max\":\"&read32_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read (Uncached 32B)\",\n \"Avg\": \"&read32Uncached_avg\",\n \"Min\":\"&read32Uncached_min\",\n \"Max\":\"&read32Uncached_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read (64B)\",\n \"Avg\": \"&read64_avg\",\n \"Min\":\"&read64_min\",\n \"Max\":\"&read64_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"HBM Read\",\n \"Avg\": \"&hbmRead_avg\",\n \"Min\":\"&hbmRead_min\",\n \"Max\":\"&hbmRead_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (32B)\",\n \"Avg\": \"&write32_avg\",\n \"Min\":\"&write32_min\",\n \"Max\":\"&write32_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (Uncached 32B)\",\n \"Avg\": \"&write32Uncached_avg\",\n \"Min\":\"&write32Uncached_min\",\n \"Max\":\"&write32Uncached_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (64B)\",\n \"Avg\": \"&write64_avg\",\n \"Min\":\"&write64_min\",\n \"Max\":\"&write64_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"HBM Write\",\n \"Avg\": \"&hbmWrite_avg\",\n \"Min\":\"&hbmWrite_min\",\n \"Max\":\"&hbmWrite_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read Latency\",\n \"Avg\": \"&readLatency_avg\",\n \"Min\":\"&readLatency_min\",\n \"Max\":\"&readLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Write Latency\",\n \"Avg\": \"&writeLatency_avg\",\n \"Min\":\"&writeLatency_min\",\n \"Max\":\"&writeLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Atomic Latency\",\n \"Avg\": \"&atomicOpLatency_avg\",\n \"Min\":\"&atomicOpLatency_min\",\n \"Max\":\"&atomicOpLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Read Stall\",\n \"Avg\": \"&readStall_avg\",\n \"Min\":\"&readStall_min\",\n \"Max\":\"&readStall_max\",\n \"Unit\":\"pct\"\n },\n {\n \"Metric\": \"Write Stall\",\n \"Avg\": \"&writeStall_avg\",\n \"Min\":\"&writeStall_min\",\n \"Max\":\"&writeStall_max\",\n \"Unit\":\"pct\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(L2 Cache)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": \"null\",\n \"readStall_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"readStall_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"readStall_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n\n \"writeStall_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"writeStall_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"writeStall_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n\n \"readBW_avg\":{\"$avg\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n \"readBW_min\":{\"$min\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n \"readBW_max\":{\"$max\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n\n \"writeBW_avg\":{\"$avg\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n \"writeBW_min\":{\"$min\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n \"writeBW_max\":{\"$max\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n\n \"read32_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n \"read32_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n \"read32_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n\n \"read32Uncached_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"read32Uncached_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"read32Uncached_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n\n \"read64_avg\":{\"$avg\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n \"read64_min\":{\"$min\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n \"read64_max\":{\"$max\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n\n \"hbmRead_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmRead_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmRead_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n\n \"write32_avg\":{\"$avg\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n \"write32_min\":{\"$min\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n \"write32_max\":{\"$max\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n\n \"write32Uncached_avg\": {\"$avg\":{\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"write32Uncached_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"write32Uncached_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n\n \"write64_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n \"write64_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n \"write64_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n\n \"hbmWrite_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmWrite_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmWrite_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n\n \"readLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n \"readLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n \"readLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n\n \"writeLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n \"writeLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n \"writeLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n\n \"atomicOpLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }},\n \"atomicOpLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }},\n \"atomicOpLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Read BW\",\n \"Avg\": \"&readBW_avg\",\n \"Min\":\"&readBW_min\",\n \"Max\":\"&readBW_max\",\n \"Unit\":{\"$concat\": [\"Bytes \", $normUnit] }\n },\n {\n \"Metric\": \"Write BW\",\n \"Avg\": \"&writeBW_avg\",\n \"Min\":\"&writeBW_min\",\n \"Max\":\"&writeBW_max\",\n \"Unit\":{\"$concat\": [\"Bytes \", $normUnit] }\n },\n {\n \"Metric\": \"Read (32B)\",\n \"Avg\": \"&read32_avg\",\n \"Min\":\"&read32_min\",\n \"Max\":\"&read32_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read (Uncached 32B)\",\n \"Avg\": \"&read32Uncached_avg\",\n \"Min\":\"&read32Uncached_min\",\n \"Max\":\"&read32Uncached_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read (64B)\",\n \"Avg\": \"&read64_avg\",\n \"Min\":\"&read64_min\",\n \"Max\":\"&read64_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"HBM Read\",\n \"Avg\": \"&hbmRead_avg\",\n \"Min\":\"&hbmRead_min\",\n \"Max\":\"&hbmRead_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (32B)\",\n \"Avg\": \"&write32_avg\",\n \"Min\":\"&write32_min\",\n \"Max\":\"&write32_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (Uncached 32B)\",\n \"Avg\": \"&write32Uncached_avg\",\n \"Min\":\"&write32Uncached_min\",\n \"Max\":\"&write32Uncached_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (64B)\",\n \"Avg\": \"&write64_avg\",\n \"Min\":\"&write64_min\",\n \"Max\":\"&write64_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n\n {\n \"Metric\": \"HBM Write\",\n \"Avg\": \"&hbmWrite_avg\",\n \"Min\":\"&hbmWrite_min\",\n \"Max\":\"&hbmWrite_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read Latency\",\n \"Avg\": \"&readLatency_avg\",\n \"Min\":\"&readLatency_min\",\n \"Max\":\"&readLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Write Latency\",\n \"Avg\": \"&writeLatency_avg\",\n \"Min\":\"&writeLatency_min\",\n \"Max\":\"&writeLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Atomic Latency\",\n \"Avg\": \"&atomicOpLatency_avg\",\n \"Min\":\"&atomicOpLatency_min\",\n \"Max\":\"&atomicOpLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Read Stall\",\n \"Avg\": \"&readStall_avg\",\n \"Min\":\"&readStall_min\",\n \"Max\":\"&readStall_max\",\n \"Unit\":\"pct\"\n },\n {\n \"Metric\": \"Write Stall\",\n \"Avg\": \"&writeStall_avg\",\n \"Min\":\"&writeStall_min\",\n \"Max\":\"&writeStall_max\",\n \"Unit\":\"pct\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "L2 - Fabric Transactions", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 1, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 178 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 128 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 121 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 126 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 128 - } - ] - } - ] - }, - "gridPos": { - "h": 20, - "w": 12, - "x": 0, - "y": 23 - }, - "id": 58, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n \"req_min\":{\"$min\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n \"req_max\":{\"$max\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n\n \"streamingReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n \"streamingReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n \"streamingReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n\n \"readReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n \"readReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n \"readReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n\n \"writeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n\n \"atomicReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n \"atomicReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n \"atomicReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n\n \"probeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n \"probeReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n \"probeReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n\n \"hits_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n \"hits_min\":{\"$min\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n \"hits_max\":{\"$max\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n\n \"misses_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n \"misses_min\":{\"$min\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n \"misses_max\":{\"$max\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n\n \"cacheHit_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n \"cacheHit_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n \"cacheHit_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n\n\n \"writeback_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n \"writeback_min\":{\"$min\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n \"writeback_max\":{\"$max\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n\n \"nc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n \"nc_min\":{\"$min\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n \"nc_max\":{\"$max\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n\n \"uc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n \"uc_min\":{\"$min\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n \"uc_max\":{\"$max\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n\n \"cc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n \"cc_min\":{\"$min\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n \"cc_max\":{\"$max\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n\n \"rw_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n \"rw_min\":{\"$min\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n \"rw_max\":{\"$max\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n\n \"writebackNorm_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n \"writebackNorm_min\":{\"$min\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n \"writebackNorm_max\":{\"$max\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n\n \"writebackTC_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n \"writebackTC_min\":{\"$min\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n \"writebackTC_max\":{\"$max\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n\n \"evictNorm_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n \"evictNorm_min\":{\"$min\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n \"evictNorm_max\":{\"$max\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n\n \"evictTC_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n \"evictTC_min\":{\"$min\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n \"evictTC_max\":{\"$max\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n\n\n \"readReq128_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }},\n \"readReq128_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }},\n \"readReq128_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Req\",\n \"avg\": \"&req_avg\",\n \"min\": \"&req_min\",\n \"max\": \"&req_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Streaming Req\",\n \"avg\": \"&streamingReq_avg\",\n \"min\": \"&streamingReq_min\",\n \"max\": \"&streamingReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Read Req\",\n \"avg\": \"&readReq_avg\",\n \"min\": \"&readReq_min\",\n \"max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n \n {\n \"metric\": \"Write Req\",\n \"avg\": \"&writeReq_avg\",\n \"min\": \"&writeReq_min\",\n \"max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Req\",\n \"avg\": \"&atomicReq_avg\",\n \"min\": \"&atomicReq_min\",\n \"max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Probe Req\",\n \"avg\": \"&probeReq_avg\",\n \"min\": \"&probeReq_min\",\n \"max\": \"&probeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Hits\",\n \"avg\": \"&hits_avg\",\n \"min\": \"&hits_min\",\n \"max\": \"&hits_max\",\n \"Unit\": {\"$concat\": [\"Hits \", $normUnit]}\n }, \n {\n \"metric\": \"Misses\",\n \"avg\": \"&misses_avg\",\n \"min\": \"&misses_min\",\n \"max\": \"&misses_max\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hit\",\n \"avg\": \"&cacheHit_avg\",\n \"min\": \"&cacheHit_min\",\n \"max\": \"&cacheHit_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Writeback\",\n \"avg\": \"&writeback_avg\",\n \"min\": \"&writeback_min\",\n \"max\": \"&writeback_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"NC Req\",\n \"avg\": \"&nc_avg\",\n \"min\": \"&nc_min\",\n \"max\": \"&nc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"UC Req\",\n \"avg\": \"&uc_avg\",\n \"min\": \"&uc_min\",\n \"max\": \"&uc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"CC Req\",\n \"avg\": \"&cc_avg\",\n \"min\": \"&cc_min\",\n \"max\": \"&cc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"RW Req\",\n \"avg\": \"&rw_avg\",\n \"min\": \"&rw_min\",\n \"max\": \"&rw_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Writeback (Normal)\",\n \"avg\": \"&writebackNorm_avg\",\n \"min\": \"&writebackNorm_min\",\n \"max\": \"&writebackNorm_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Writeback (TC Req)\",\n \"avg\": \"&writebackTC_avg\",\n \"min\": \"&writebackTC_min\",\n \"max\": \"&writebackTC_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Evict (Normal)\",\n \"avg\": \"&evictNorm_avg\",\n \"min\": \"&evictNorm_min\",\n \"max\": \"&evictNorm_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Evict (TC Req)\",\n \"avg\": \"&evictTC_avg\",\n \"min\": \"&evictTC_min\",\n \"max\": \"&evictTC_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(L2 Cache)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n \"req_min\":{\"$min\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n \"req_max\":{\"$max\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n\n \"streamingReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n \"streamingReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n \"streamingReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n\n \"readReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n \"readReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n \"readReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n\n \"writeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n\n \"atomicReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n \"atomicReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n \"atomicReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n\n \"probeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n \"probeReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n \"probeReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n\n \"hits_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n \"hits_min\":{\"$min\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n \"hits_max\":{\"$max\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n\n \"misses_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n \"misses_min\":{\"$min\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n \"misses_max\":{\"$max\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n\n \"cacheHit_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n \"cacheHit_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n \"cacheHit_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n\n\n \"writeback_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n \"writeback_min\":{\"$min\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n \"writeback_max\":{\"$max\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n\n \"nc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n \"nc_min\":{\"$min\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n \"nc_max\":{\"$max\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n\n \"uc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n \"uc_min\":{\"$min\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n \"uc_max\":{\"$max\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n\n \"cc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n \"cc_min\":{\"$min\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n \"cc_max\":{\"$max\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n\n \"rw_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n \"rw_min\":{\"$min\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n \"rw_max\":{\"$max\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n\n \"writebackNorm_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n \"writebackNorm_min\":{\"$min\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n \"writebackNorm_max\":{\"$max\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n\n \"writebackTC_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n \"writebackTC_min\":{\"$min\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n \"writebackTC_max\":{\"$max\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n\n \"evictNorm_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n \"evictNorm_min\":{\"$min\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n \"evictNorm_max\":{\"$max\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n\n \"evictTC_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n \"evictTC_min\":{\"$min\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n \"evictTC_max\":{\"$max\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n\n \"readReq128_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }},\n \"readReq128_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }},\n \"readReq128_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Req\",\n \"avg\": \"&req_avg\",\n \"min\": \"&req_min\",\n \"max\": \"&req_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Streaming Req\",\n \"avg\": \"&streamingReq_avg\",\n \"min\": \"&streamingReq_min\",\n \"max\": \"&streamingReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Read Req\",\n \"avg\": \"&readReq_avg\",\n \"min\": \"&readReq_min\",\n \"max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n \n {\n \"metric\": \"Write Req\",\n \"avg\": \"&writeReq_avg\",\n \"min\": \"&writeReq_min\",\n \"max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Req\",\n \"avg\": \"&atomicReq_avg\",\n \"min\": \"&atomicReq_min\",\n \"max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Probe Req\",\n \"avg\": \"&probeReq_avg\",\n \"min\": \"&probeReq_min\",\n \"max\": \"&probeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Hits\",\n \"avg\": \"&hits_avg\",\n \"min\": \"&hits_min\",\n \"max\": \"&hits_max\",\n \"Unit\": {\"$concat\": [\"Hits \", $normUnit]}\n }, \n {\n \"metric\": \"Misses\",\n \"avg\": \"&misses_avg\",\n \"min\": \"&misses_min\",\n \"max\": \"&misses_max\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hit\",\n \"avg\": \"&cacheHit_avg\",\n \"min\": \"&cacheHit_min\",\n \"max\": \"&cacheHit_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Writeback\",\n \"avg\": \"&writeback_avg\",\n \"min\": \"&writeback_min\",\n \"max\": \"&writeback_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"NC Req\",\n \"avg\": \"&nc_avg\",\n \"min\": \"&nc_min\",\n \"max\": \"&nc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"UC Req\",\n \"avg\": \"&uc_avg\",\n \"min\": \"&uc_min\",\n \"max\": \"&uc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"CC Req\",\n \"avg\": \"&cc_avg\",\n \"min\": \"&cc_min\",\n \"max\": \"&cc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"RW Req\",\n \"avg\": \"&rw_avg\",\n \"min\": \"&rw_min\",\n \"max\": \"&rw_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Writeback (Normal)\",\n \"avg\": \"&writebackNorm_avg\",\n \"min\": \"&writebackNorm_min\",\n \"max\": \"&writebackNorm_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Writeback (TC Req)\",\n \"avg\": \"&writebackTC_avg\",\n \"min\": \"&writebackTC_min\",\n \"max\": \"&writebackTC_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Evict (Normal)\",\n \"avg\": \"&evictNorm_avg\",\n \"min\": \"&evictNorm_min\",\n \"max\": \"&evictNorm_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Evict (TC Req)\",\n \"avg\": \"&evictTC_avg\",\n \"min\": \"&evictTC_min\",\n \"max\": \"&evictTC_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - } - ], - "title": "L2 Cache Accesses", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Unit 2": true, - "metric 2": true - }, - "indexByName": { - "Unit 1": 9, - "Unit 2": 2, - "avg 1": 3, - "avg 2": 4, - "max 1": 7, - "max 2": 8, - "metric 1": 0, - "metric 2": 1, - "min 1": 5, - "min 2": 6 - }, - "renameByName": { - "avg 1": "Avg (Current)", - "avg 2": "Avg (Baseline)", - "max 1": "Max (Current)", - "max 2": "Max (Baseline)", - "min 1": "Min (Current)", - "min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "Aggregate": "last", - "BarPadding": 30, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupColName": "Transaction", - "GroupCols": 1, - "GroupGap": 5, - "GroupLabelColor": "#FADE2A", - "GroupLabelFontSize": "120%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 0, - "Horizontal": true, - "LabelColName": "Metric", - "LabelColor": "#ffffff", - "LabelFontSize": "80%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 0, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#FF9830", - "ValueDecimals": 0, - "ValueFontSize": "100%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:81", - "Col": 3, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Selected": true - } - ], - "datasource": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 32 - }, - "id": 60, - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "$Workload1.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"ioStall_READ_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"ioStall_READ_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"ioStall_READ_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"gmiStall_READ_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"gmiStall_READ_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"gmiStall_READ_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"hbmStall_READ_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"hbmStall_READ_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"hbmStall_READ_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"ioStall_WRITE_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"ioStall_WRITE_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"ioStall_WRITE_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"gmiStall_WRITE_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"gmiStall_WRITE_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"gmiStall_WRITE_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"hbmStall_WRITE_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"hbmStall_WRITE_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"hbmStall_WRITE_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"creditStarvation_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_TOO_MANY_EA_WRREQS_STALL_sum\", \"&denom\"] }\n },\n \"creditStarvation_min\": {\n \"$min\": { \"$divide\": [\"&TCC_TOO_MANY_EA_WRREQS_STALL_sum\", \"&denom\"] }\n },\n \"creditStarvation_max\": {\n \"$max\": { \"$divide\": [\"&TCC_TOO_MANY_EA_WRREQS_STALL_sum\", \"&denom\"] }\n } \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Remote Socket Stall\",\n \"Transaction\": \"Read\",\n \"Target\": \"I/O\",\n \"Avg\": \"&ioStall_READ_avg\",\n \"Min\": \"&ioStall_READ_min\",\n \"Max\": \"&ioStall_READ_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Peer GCD Stall\",\n \"Transaction\": \"Read\",\n \"Target\": \"GMI\",\n \"Avg\": \"&gmiStall_READ_avg\",\n \"Min\": \"&gmiStall_READ_min\",\n \"Max\": \"&gmiStall_READ_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"HBM Stall\",\n \"Transaction\": \"Read\",\n \"Target\": \"HBM\",\n \"Avg\": \"&hbmStall_READ_avg\",\n \"Min\": \"&hbmStall_READ_min\",\n \"Max\": \"&hbmStall_READ_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Remote Socket Stall\",\n \"Transaction\": \"Write\",\n \"Target\": \"I/O\",\n \"Avg\": \"&ioStall_WRITE_avg\",\n \"Min\": \"&ioStall_WRITE_min\",\n \"Max\": \"&ioStall_WRITE_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Peer GCD Stall\",\n \"Transaction\": \"Write\",\n \"Target\": \"GMI\",\n \"Avg\": \"&gmiStall_WRITE_avg\",\n \"Min\": \"&gmiStall_WRITE_min\",\n \"Max\": \"&gmiStall_WRITE_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"HBM Stall\",\n \"Transaction\": \"Write\",\n \"Target\": \"HBM\",\n \"Avg\": \"&hbmStall_WRITE_avg\",\n \"Min\": \"&hbmStall_WRITE_min\",\n \"Max\": \"&hbmStall_WRITE_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Credit Starvation\",\n \"Transaction\": \"Write\",\n \"Target\": \"Fabric\",\n \"Avg\": \"&creditStarvation_avg\",\n \"Min\": \"&creditStarvation_min\",\n \"Max\": \"&creditStarvation_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "L2 - Fabric Interface Stalls (Cycles $normUnit)", - "transparent": true, - "type": "michaeldmoore-multistat-panel" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "L2 Cache", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 16 - }, - "id": 66, - "panels": [ - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLimitValue": 100, - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineValue": 105, - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": true, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "light", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:850", - "Col": 1, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Hit Rate", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "description": "", - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 17 - }, - "id": 87, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 Cache Hit Rate (Percent) (Channel 0 - 15) ", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLimitValue": 100, - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineValue": 105, - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": true, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "light", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:850", - "Col": 1, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Hit Rate", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "description": "", - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 17 - }, - "id": 92, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "Cache Hit Rate % (Channel 16 - 31) ", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 80, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:565", - "Col": 3, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Read Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 25 - }, - "id": 81, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L1 - L2 Read Requests(Channel 0-15) : $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:656", - "Col": 3, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Read Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 25 - }, - "id": 82, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L1 - L 2 Read Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 80, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:697", - "Col": 4, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Write Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 33 - }, - "id": 83, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L1 - L2 Write Requests (Channel 0-15): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 0, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:750", - "Col": 4, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Write Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 33 - }, - "id": 84, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L1 - L2 Write Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLimitValue": 100, - "HighLmitLineWidth": 1, - "HighSideMargin": 0, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "100%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 80, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineValue": 105, - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": true, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:791", - "Col": 5, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "AtomicReq", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 41 - }, - "id": 85, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L1 - L2 Atomic Requests (Channel 0-15): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLimitValue": 100, - "HighLmitLineWidth": 1, - "HighSideMargin": 0, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "100%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 80, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineValue": 105, - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": true, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:791", - "Col": 5, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "AtomicReq", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 41 - }, - "id": 91, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L1 - L2 Atomic Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 6, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 49 - }, - "id": 189, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Read Requests (Channel 0 - 15) : $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:341", - "Col": 6, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 49 - }, - "id": 195, - "maxDataPoints": 10, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Read Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 7, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 57 - }, - "id": 191, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Requests (Channel 0 - 15) : $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:341", - "Col": 7, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 57 - }, - "id": 197, - "maxDataPoints": 10, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 8, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA AtomicReq", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 65 - }, - "id": 193, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Atomic Request (Channel 0 - 15): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:341", - "Col": 8, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA AtomicReq", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 65 - }, - "id": 199, - "maxDataPoints": 10, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Atomic Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupColName": "", - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 9, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Lat - cycles", - "Selected": true - } - ], - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 73 - }, - "hideTimeOverride": false, - "id": 68, - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"b0_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[0]\", \"&TCC_MISS[0]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[0]\"]}, \n { \"$add\": [\"&TCC_HIT[0]\", \"&TCC_MISS[0]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b0_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[0]\"}, \"&denom\"] } \n },\n \"b0_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[0]\"}, \"&denom\"] } \n },\n \"b0_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[0]\"}, \"&denom\"] } \n },\n \"b0_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[0]\"}, \"&denom\"] } \n },\n \"b0_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[0]\"}, \"&denom\"] }\n },\n \"b0_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[0]\"}, \"&denom\"] } \n },\n \"b0_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[0]\"}, \"&denom\"] } \n },\n\n \"b0_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[0]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[0]\", \"&TCC_EA_RDREQ[0]\"]}, null] } },\n \"b0_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[0]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[0]\", \"&TCC_EA_WRREQ[0]\"]}, null] } },\n \"b0_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[0]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[0]\", \"&TCC_EA_ATOMIC[0]\"]}, null]}},\n\n \"b0_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[0]\"}, \"&denom\"] }},\n\n \n \"b1_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[1]\", \"&TCC_MISS[1]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[1]\"]}, \n { \"$add\": [\"&TCC_HIT[1]\", \"&TCC_MISS[1]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b1_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[1]\"}, \"&denom\"] } \n },\n \"b1_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[1]\"}, \"&denom\"] } \n },\n \"b1_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[1]\"}, \"&denom\"] } \n },\n \"b1_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[1]\"}, \"&denom\"] } \n },\n \"b1_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[1]\"}, \"&denom\"] }\n },\n \"b1_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[1]\"}, \"&denom\"] } \n },\n \"b1_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[1]\"}, \"&denom\"] } \n },\n \"b1_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[1]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[1]\", \"&TCC_EA_RDREQ[1]\"]}, null] } },\n \"b1_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[1]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[1]\", \"&TCC_EA_WRREQ[1]\"]}, null] } },\n \"b1_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[1]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[1]\", \"&TCC_EA_ATOMIC[1]\"]}, null]}},\n\n \"b1_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[1]\"}, \"&denom\"] }},\n\n\n \"b2_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[2]\", \"&TCC_MISS[2]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[2]\"]}, \n { \"$add\": [\"&TCC_HIT[2]\", \"&TCC_MISS[2]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b2_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[2]\"}, \"&denom\"] }\n },\n \"b2_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[2]\"}, \"&denom\"] } \n },\n \"b2_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[2]\"}, \"&denom\"] }\n },\n \"b2_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[2]\"}, \"&denom\"] }\n },\n \"b2_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[2]\"}, \"&denom\"] }\n },\n \"b2_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[2]\"}, \"&denom\"] }\n },\n \"b2_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[2]\"}, \"&denom\"] }\n },\n \"b2_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[2]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[2]\", \"&TCC_EA_RDREQ[2]\"]}, null] } },\n \"b2_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[2]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[2]\", \"&TCC_EA_WRREQ[2]\"]}, null] } },\n \"b2_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[2]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[2]\", \"&TCC_EA_ATOMIC[2]\"]}, null]}},\n\n \"b2_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[2]\"}, \"&denom\"] }},\n\n\n \n \"b3_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[3]\", \"&TCC_MISS[3]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[3]\"]}, \n { \"$add\": [\"&TCC_HIT[3]\", \"&TCC_MISS[3]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b3_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[3]\"}, \"&denom\"] } \n },\n \"b3_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[3]\"}, \"&denom\"] } \n },\n \"b3_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[3]\"}, \"&denom\"] }\n },\n \"b3_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[3]\"}, \"&denom\"] }\n },\n \"b3_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[3]\"}, \"&denom\"] }\n },\n \"b3_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[3]\"}, \"&denom\"] }\n },\n \"b3_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[3]\"}, \"&denom\"] } \n },\n \"b3_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[3]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[3]\", \"&TCC_EA_RDREQ[3]\"]}, null] } },\n \"b3_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[3]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[3]\", \"&TCC_EA_WRREQ[3]\"]}, null] } },\n \"b3_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[3]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[3]\", \"&TCC_EA_ATOMIC[3]\"]}, null]}},\n\n \"b3_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[3]\"}, \"&denom\"] }},\n\n\n \n \"b4_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[4]\", \"&TCC_MISS[4]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[4]\"]}, \n { \"$add\": [\"&TCC_HIT[4]\", \"&TCC_MISS[4]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b4_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[4]\"}, \"&denom\"] } \n },\n \"b4_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[4]\"}, \"&denom\"] } \n },\n \"b4_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[4]\"}, \"&denom\"] }\n },\n \"b4_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[4]\"}, \"&denom\"] } \n },\n \"b4_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[4]\"}, \"&denom\"] } \n },\n \"b4_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[4]\"}, \"&denom\"] } \n },\n \"b4_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[4]\"}, \"&denom\"] } \n },\n \"b4_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[4]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[4]\", \"&TCC_EA_RDREQ[4]\"]}, null] } },\n \"b4_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[4]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[4]\", \"&TCC_EA_WRREQ[4]\"]}, null] } },\n \"b4_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[4]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[4]\", \"&TCC_EA_ATOMIC[4]\"]}, null]}},\n\n \"b4_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[4]\"}, \"&denom\"] }},\n\n\n \n \"b5_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[5]\", \"&TCC_MISS[5]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[5]\"]}, \n { \"$add\": [\"&TCC_HIT[5]\", \"&TCC_MISS[5]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b5_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[5]\"}, \"&denom\"] } \n },\n \"b5_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[5]\"}, \"&denom\"] } \n },\n \"b5_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[5]\"}, \"&denom\"] } \n },\n \"b5_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[5]\"}, \"&denom\"] } \n },\n \"b5_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[5]\"}, \"&denom\"] } \n },\n \"b5_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[5]\"}, \"&denom\"] } \n },\n \"b5_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[5]\"}, \"&denom\"] } \n },\n \"b5_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[5]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[5]\", \"&TCC_EA_RDREQ[5]\"]}, null] } },\n \"b5_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[5]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[5]\", \"&TCC_EA_WRREQ[5]\"]}, null] } },\n \"b5_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[5]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[5]\", \"&TCC_EA_ATOMIC[5]\"]}, null]}},\n\n \"b5_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[5]\"}, \"&denom\"] }},\n\n\n \n \"b6_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[6]\", \"&TCC_MISS[6]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[6]\"]}, \n { \"$add\": [\"&TCC_HIT[6]\", \"&TCC_MISS[6]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b6_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[6]\"}, \"&denom\"] } \n },\n \"b6_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[6]\"}, \"&denom\"] } \n },\n \"b6_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[6]\"}, \"&denom\"] } \n },\n \"b6_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[6]\"}, \"&denom\"] } \n },\n \"b6_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[6]\"}, \"&denom\"] } \n },\n \"b6_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[6]\"}, \"&denom\"] }\n },\n \"b6_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[6]\"}, \"&denom\"] } \n },\n \"b6_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[6]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[6]\", \"&TCC_EA_RDREQ[6]\"]}, null] } },\n \"b6_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[6]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[6]\", \"&TCC_EA_WRREQ[6]\"]}, null] } },\n \"b6_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[6]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[6]\", \"&TCC_EA_ATOMIC[6]\"]}, null]}},\n\n \"b6_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[6]\"}, \"&denom\"] }},\n\n\n \n \"b7_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[7]\", \"&TCC_MISS[7]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[7]\"]}, \n { \"$add\": [\"&TCC_HIT[7]\", \"&TCC_MISS[7]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b7_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[7]\"}, \"&denom\"] } \n },\n \"b7_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[7]\"}, \"&denom\"] } \n },\n \"b7_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[7]\"}, \"&denom\"] } \n },\n \"b7_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[7]\"}, \"&denom\"] } \n },\n \"b7_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[7]\"}, \"&denom\"] } \n },\n \"b7_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[7]\"}, \"&denom\"] }\n },\n \"b7_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[7]\"}, \"&denom\"] } \n },\n \"b7_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[7]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[7]\", \"&TCC_EA_RDREQ[7]\"]}, null] } },\n \"b7_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[7]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[7]\", \"&TCC_EA_WRREQ[7]\"]}, null] } },\n \"b7_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[7]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[7]\", \"&TCC_EA_ATOMIC[7]\"]}, null]}},\n\n \"b7_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[7]\"}, \"&denom\"] }},\n\n\n \n \"b8_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[8]\", \"&TCC_MISS[8]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[8]\"]}, \n { \"$add\": [\"&TCC_HIT[8]\", \"&TCC_MISS[8]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b8_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[8]\"}, \"&denom\"] } \n },\n \"b8_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[8]\"}, \"&denom\"] } \n },\n \"b8_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[8]\"}, \"&denom\"] } \n },\n \"b8_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[8]\"}, \"&denom\"] } \n },\n \"b8_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[8]\"}, \"&denom\"] } \n },\n \"b8_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[8]\"}, \"&denom\"] } \n },\n \"b8_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[8]\"}, \"&denom\"] } \n },\n \"b8_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[8]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[8]\", \"&TCC_EA_RDREQ[8]\"]}, null] } },\n \"b8_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[8]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[8]\", \"&TCC_EA_WRREQ[8]\"]}, null] } },\n \"b8_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[8]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[8]\", \"&TCC_EA_ATOMIC[8]\"]}, null]}},\n\n \"b8_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[8]\"}, \"&denom\"] }},\n\n\n \n \"b9_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[9]\", \"&TCC_MISS[9]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[9]\"]}, \n { \"$add\": [\"&TCC_HIT[9]\", \"&TCC_MISS[9]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b9_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[9]\"}, \"&denom\"] } \n },\n \"b9_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[9]\"}, \"&denom\"] } \n },\n \"b9_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[9]\"}, \"&denom\"] } \n },\n \"b9_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[9]\"}, \"&denom\"] } \n },\n \"b9_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[9]\"}, \"&denom\"] } \n },\n \"b9_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[9]\"}, \"&denom\"] } \n },\n \"b9_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[9]\"}, \"&denom\"] } \n },\n \"b9_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[9]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[9]\", \"&TCC_EA_RDREQ[9]\"]}, null] } },\n \"b9_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[9]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[9]\", \"&TCC_EA_WRREQ[9]\"]}, null] } },\n \"b9_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[9]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[9]\", \"&TCC_EA_ATOMIC[9]\"]}, null]}},\n\n \"b9_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[9]\"}, \"&denom\"] }},\n\n\n \n \"b10_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[10]\", \"&TCC_MISS[10]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[10]\"]}, \n { \"$add\": [\"&TCC_HIT[10]\", \"&TCC_MISS[10]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b10_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[10]\"}, \"&denom\"] } \n },\n \"b10_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[10]\"}, \"&denom\"] } \n },\n \"b10_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[10]\"}, \"&denom\"] } \n },\n \"b10_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[10]\"}, \"&denom\"] } \n },\n \"b10_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[10]\"}, \"&denom\"] } \n },\n \"b10_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[10]\"}, \"&denom\"] } \n },\n \"b10_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[10]\"}, \"&denom\"] } \n },\n \"b10_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[10]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[10]\", \"&TCC_EA_RDREQ[10]\"]}, null] } },\n \"b10_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[10]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[10]\", \"&TCC_EA_WRREQ[10]\"]}, null] } },\n \"b10_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[10]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[10]\", \"&TCC_EA_ATOMIC[10]\"]}, null]}},\n\n \"b10_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[10]\"}, \"&denom\"] }},\n\n\n \n \"b11_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[11]\", \"&TCC_MISS[11]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[11]\"]}, \n { \"$add\": [\"&TCC_HIT[11]\", \"&TCC_MISS[11]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b11_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[11]\"}, \"&denom\"] } \n },\n \"b11_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[11]\"}, \"&denom\"] } \n },\n \"b11_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[11]\"}, \"&denom\"] } \n },\n \"b11_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[11]\"}, \"&denom\"] } \n },\n \"b11_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[11]\"}, \"&denom\"] } \n },\n \"b11_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[11]\"}, \"&denom\"] } \n },\n \"b11_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[11]\"}, \"&denom\"] } \n },\n \"b11_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[11]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[11]\", \"&TCC_EA_RDREQ[11]\"]}, null] } },\n \"b11_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[11]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[11]\", \"&TCC_EA_WRREQ[11]\"]}, null] } },\n \"b11_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[11]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[11]\", \"&TCC_EA_ATOMIC[11]\"]}, null]}},\n\n \"b11_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[11]\"}, \"&denom\"] }},\n\n\n \n \"b12_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[12]\", \"&TCC_MISS[12]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[12]\"]}, \n { \"$add\": [\"&TCC_HIT[12]\", \"&TCC_MISS[12]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b12_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[12]\"}, \"&denom\"] } \n },\n \"b12_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[12]\"}, \"&denom\"] } \n },\n \"b12_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[12]\"}, \"&denom\"] } \n },\n \"b12_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[12]\"}, \"&denom\"] } \n },\n \"b12_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[12]\"}, \"&denom\"] } \n },\n \"b12_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[12]\"}, \"&denom\"] } \n },\n \"b12_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[12]\"}, \"&denom\"] } \n },\n \"b12_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[12]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[12]\", \"&TCC_EA_RDREQ[12]\"]}, null] } },\n \"b12_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[12]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[12]\", \"&TCC_EA_WRREQ[12]\"]}, null] } },\n \"b12_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[12]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[12]\", \"&TCC_EA_ATOMIC[12]\"]}, null]}},\n\n \"b12_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[12]\"}, \"&denom\"] }},\n\n\n \n \"b13_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[13]\", \"&TCC_MISS[13]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[13]\"]}, \n { \"$add\": [\"&TCC_HIT[13]\", \"&TCC_MISS[13]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b13_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[13]\"}, \"&denom\"] } \n },\n \"b13_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[13]\"}, \"&denom\"] } \n },\n \"b13_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[13]\"}, \"&denom\"] } \n },\n \"b13_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[13]\"}, \"&denom\"] } \n },\n \"b13_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[13]\"}, \"&denom\"] } \n },\n \"b13_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[13]\"}, \"&denom\"] }\n },\n \"b13_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[13]\"}, \"&denom\"] } \n },\n \"b13_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[13]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[13]\", \"&TCC_EA_RDREQ[13]\"]}, null] } },\n \"b13_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[13]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[13]\", \"&TCC_EA_WRREQ[13]\"]}, null] } },\n \"b13_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[13]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[13]\", \"&TCC_EA_ATOMIC[13]\"]}, null]}},\n\n \"b13_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[13]\"}, \"&denom\"] }},\n\n\n \n \"b14_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[14]\", \"&TCC_MISS[14]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[14]\"]}, \n { \"$add\": [\"&TCC_HIT[14]\", \"&TCC_MISS[14]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b14_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[14]\"}, \"&denom\"] } \n },\n \"b14_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[14]\"}, \"&denom\"] } \n },\n \"b14_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[14]\"}, \"&denom\"] } \n },\n \"b14_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[14]\"}, \"&denom\"] } \n },\n \"b14_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[14]\"}, \"&denom\"] } \n },\n \"b14_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[14]\"}, \"&denom\"] } \n },\n \"b14_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[14]\"}, \"&denom\"] } \n },\n \"b14_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[14]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[14]\", \"&TCC_EA_RDREQ[14]\"]}, null] } },\n \"b14_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[14]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[14]\", \"&TCC_EA_WRREQ[14]\"]}, null] } },\n \"b14_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[14]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[14]\", \"&TCC_EA_ATOMIC[14]\"]}, null]}},\n\n \"b14_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[14]\"}, \"&denom\"] }},\n\n\n \n \"b15_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[15]\", \"&TCC_MISS[15]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[15]\"]}, \n { \"$add\": [\"&TCC_HIT[15]\", \"&TCC_MISS[15]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b15_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[15]\"}, \"&denom\"] } \n },\n \"b15_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[15]\"}, \"&denom\"] } \n },\n \"b15_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[15]\"}, \"&denom\"] } \n },\n \"b15_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[15]\"}, \"&denom\"] } \n },\n \"b15_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[15]\"}, \"&denom\"] } \n },\n \"b15_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[15]\"}, \"&denom\"] } \n },\n \"b15_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[15]\"}, \"&denom\"] }\n },\n \"b15_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[15]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[15]\", \"&TCC_EA_RDREQ[15]\"]}, null] } },\n \"b15_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[15]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[15]\", \"&TCC_EA_WRREQ[15]\"]}, null] } },\n \"b15_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[15]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[15]\", \"&TCC_EA_ATOMIC[15]\"]}, null]}},\n\n \"b15_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[15]\"}, \"&denom\"] }}\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Channel\": \"0\",\n \"Hit Rate\": \"&b0_hitRate\",\n \"Req\": \"&b0_req\",\n \"Read Req\": \"&b0_readReq\",\n \"Write Req\": \"&b0_writeReq\",\n \"AtomicReq\": \"&b0_atomicReq\",\n \"EA Read Req\": \"&b0_eaReadReq\",\n \"EA Write Req\": \"&b0_eaWriteReq\",\n \"EA AtomicReq\": \"&b0_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b0_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b0_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b0_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b0_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b0_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b0_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b0_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b0_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b0_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b0_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n },\n {\n \"Channel\": \"1\",\n \"Hit Rate\": \"&b1_hitRate\",\n \"Req\": \"&b1_req\",\n \"Read Req\": \"&b1_readReq\",\n \"Write Req\": \"&b1_writeReq\",\n \"AtomicReq\": \"&b1_atomicReq\",\n \"EA Read Req\": \"&b1_eaReadReq\",\n \"EA Write Req\": \"&b1_eaWriteReq\",\n \"EA AtomicReq\": \"&b1_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b1_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b1_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b1_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b1_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b1_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b1_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b1_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b1_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b1_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b1_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n },\n {\n \"Channel\": \"2\",\n \"Hit Rate\": \"&b2_hitRate\",\n \"Req\": \"&b2_req\",\n \"Read Req\": \"&b2_readReq\",\n \"Write Req\": \"&b2_writeReq\",\n \"AtomicReq\": \"&b2_atomicReq\",\n \"EA Read Req\": \"&b2_eaReadReq\",\n \"EA Write Req\": \"&b2_eaWriteReq\",\n \"EA AtomicReq\": \"&b2_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b2_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b2_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b2_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b2_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b2_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b2_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b2_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b2_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b2_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b2_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"3\",\n \"Hit Rate\": \"&b3_hitRate\",\n \"Req\": \"&b3_req\",\n \"Read Req\": \"&b3_readReq\",\n \"Write Req\": \"&b3_writeReq\",\n \"AtomicReq\": \"&b3_atomicReq\",\n \"EA Read Req\": \"&b3_eaReadReq\",\n \"EA Write Req\": \"&b3_eaWriteReq\",\n \"EA AtomicReq\": \"&b3_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b3_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b3_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b3_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b3_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b3_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b3_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b3_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b3_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b3_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b3_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"4\",\n \"Hit Rate\": \"&b4_hitRate\",\n \"Req\": \"&b4_req\",\n \"Read Req\": \"&b4_readReq\",\n \"Write Req\": \"&b4_writeReq\",\n \"AtomicReq\": \"&b4_atomicReq\",\n \"EA Read Req\": \"&b4_eaReadReq\",\n \"EA Write Req\": \"&b4_eaWriteReq\",\n \"EA AtomicReq\": \"&b4_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b4_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b4_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b4_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b4_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b4_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b4_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b4_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b4_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b4_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b4_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"5\",\n \"Hit Rate\": \"&b5_hitRate\",\n \"Req\": \"&b5_req\",\n \"Read Req\": \"&b5_readReq\",\n \"Write Req\": \"&b5_writeReq\",\n \"AtomicReq\": \"&b5_atomicReq\",\n \"EA Read Req\": \"&b5_eaReadReq\",\n \"EA Write Req\": \"&b5_eaWriteReq\",\n \"EA AtomicReq\": \"&b5_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b5_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b5_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b5_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b5_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b5_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b5_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b5_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b5_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b5_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b5_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"6\",\n \"Hit Rate\": \"&b6_hitRate\",\n \"Req\": \"&b6_req\",\n \"Read Req\": \"&b6_readReq\",\n \"Write Req\": \"&b6_writeReq\",\n \"AtomicReq\": \"&b6_atomicReq\",\n \"EA Read Req\": \"&b6_eaReadReq\",\n \"EA Write Req\": \"&b6_eaWriteReq\",\n \"EA AtomicReq\": \"&b6_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b6_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b6_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b6_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b6_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b6_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b6_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b6_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b6_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b6_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b6_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"7\",\n \"Hit Rate\": \"&b7_hitRate\",\n \"Req\": \"&b7_req\",\n \"Read Req\": \"&b7_readReq\",\n \"Write Req\": \"&b7_writeReq\",\n \"AtomicReq\": \"&b7_atomicReq\",\n \"EA Read Req\": \"&b7_eaReadReq\",\n \"EA Write Req\": \"&b7_eaWriteReq\",\n \"EA AtomicReq\": \"&b7_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b7_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b7_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b7_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b7_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b7_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b7_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b7_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b7_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b7_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b7_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"8\",\n \"Hit Rate\": \"&b8_hitRate\",\n \"Req\": \"&b8_req\",\n \"Read Req\": \"&b8_readReq\",\n \"Write Req\": \"&b8_writeReq\",\n \"AtomicReq\": \"&b8_atomicReq\",\n \"EA Read Req\": \"&b8_eaReadReq\",\n \"EA Write Req\": \"&b8_eaWriteReq\",\n \"EA AtomicReq\": \"&b8_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b8_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b8_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b8_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b8_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b8_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b8_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b8_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b8_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b8_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b8_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"9\",\n \"Hit Rate\": \"&b9_hitRate\",\n \"Req\": \"&b9_req\",\n \"Read Req\": \"&b9_readReq\",\n \"Write Req\": \"&b9_writeReq\",\n \"AtomicReq\": \"&b9_atomicReq\",\n \"EA Read Req\": \"&b9_eaReadReq\",\n \"EA Write Req\": \"&b9_eaWriteReq\",\n \"EA AtomicReq\": \"&b9_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b9_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b9_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b9_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b9_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b9_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b9_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b9_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b9_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b9_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b9_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"10\",\n \"Hit Rate\": \"&b10_hitRate\",\n \"Req\": \"&b10_req\",\n \"Read Req\": \"&b10_readReq\",\n \"Write Req\": \"&b10_writeReq\",\n \"AtomicReq\": \"&b10_atomicReq\",\n \"EA Read Req\": \"&b10_eaReadReq\",\n \"EA Write Req\": \"&b10_eaWriteReq\",\n \"EA AtomicReq\": \"&b10_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b10_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b10_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b10_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b10_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b10_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b10_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b10_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b10_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b10_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b10_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"11\",\n \"Hit Rate\": \"&b11_hitRate\",\n \"Req\": \"&b11_req\",\n \"Read Req\": \"&b11_readReq\",\n \"Write Req\": \"&b11_writeReq\",\n \"AtomicReq\": \"&b11_atomicReq\",\n \"EA Read Req\": \"&b11_eaReadReq\",\n \"EA Write Req\": \"&b11_eaWriteReq\",\n \"EA AtomicReq\": \"&b11_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b11_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b11_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b11_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b11_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b11_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b11_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b11_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b11_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b11_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b11_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"12\",\n \"Hit Rate\": \"&b12_hitRate\",\n \"Req\": \"&b12_req\",\n \"Read Req\": \"&b12_readReq\",\n \"Write Req\": \"&b12_writeReq\",\n \"AtomicReq\": \"&b12_atomicReq\",\n \"EA Read Req\": \"&b12_eaReadReq\",\n \"EA Write Req\": \"&b12_eaWriteReq\",\n \"EA AtomicReq\": \"&b12_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b12_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b12_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b12_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b12_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b12_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b12_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b12_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b12_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b12_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b12_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"13\",\n \"Hit Rate\": \"&b13_hitRate\",\n \"Req\": \"&b13_req\",\n \"Read Req\": \"&b13_readReq\",\n \"Write Req\": \"&b13_writeReq\",\n \"AtomicReq\": \"&b13_atomicReq\",\n \"EA Read Req\": \"&b13_eaReadReq\",\n \"EA Write Req\": \"&b13_eaWriteReq\",\n \"EA AtomicReq\": \"&b13_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b13_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b13_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b13_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b13_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b13_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b13_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b13_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b13_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b13_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b13_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n\n },\n {\n \"Channel\": \"14\",\n \"Hit Rate\": \"&b14_hitRate\",\n \"Req\": \"&b14_req\",\n \"Read Req\": \"&b14_readReq\",\n \"Write Req\": \"&b14_writeReq\",\n \"AtomicReq\": \"&b14_atomicReq\",\n \"EA Read Req\": \"&b14_eaReadReq\",\n \"EA Write Req\": \"&b14_eaWriteReq\",\n \"EA AtomicReq\": \"&b14_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b14_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b14_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b14_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b14_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b14_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b14_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b14_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b14_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b14_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b14_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n\n },\n {\n \"Channel\": \"15\",\n \"Hit Rate\": \"&b15_hitRate\",\n \"Req\": \"&b15_req\",\n \"Read Req\": \"&b15_readReq\",\n \"Write Req\": \"&b15_writeReq\",\n \"AtomicReq\": \"&b15_atomicReq\",\n \"EA Read Req\": \"&b15_eaReadReq\",\n \"EA Write Req\": \"&b15_eaWriteReq\",\n \"EA AtomicReq\": \"&b15_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b15_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b15_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b15_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b15_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b15_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b15_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b15_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b15_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b15_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b15_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"$array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"$array\"\n }}\n]);", - "type": "table" - } - ], - "title": "L2 - EA Read Latency (Channel 0 - 15) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:341", - "Col": 9, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Lat - cycles", - "Selected": true - } - ], - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 73 - }, - "id": 70, - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"b16_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[16]\", \"&TCC_MISS[16]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[16]\"]}, \n { \"$add\": [\"&TCC_HIT[16]\", \"&TCC_MISS[16]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b16_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[16]\"}, \"&denom\"] } \n },\n \"b16_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[16]\"}, \"&denom\"] } \n },\n \"b16_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[16]\"}, \"&denom\"] } \n },\n \"b16_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[16]\"}, \"&denom\"] } \n },\n \"b16_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[16]\"}, \"&denom\"] }\n },\n \"b16_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[16]\"}, \"&denom\"] } \n },\n \"b16_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[16]\"}, \"&denom\"] } \n },\n\n \"b16_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[16]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[16]\", \"&TCC_EA_RDREQ[16]\"]}, null] } },\n \"b16_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[16]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[16]\", \"&TCC_EA_WRREQ[16]\"]}, null] } },\n \"b16_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[16]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[16]\", \"&TCC_EA_ATOMIC[16]\"]}, null]}},\n \"b16_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[16]\"}, \"&denom\"] }},\n\n \n \"b17_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[17]\", \"&TCC_MISS[17]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[17]\"]}, \n { \"$add\": [\"&TCC_HIT[17]\", \"&TCC_MISS[17]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b17_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[17]\"}, \"&denom\"] } \n },\n \"b17_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[17]\"}, \"&denom\"] } \n },\n \"b17_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[17]\"}, \"&denom\"] } \n },\n \"b17_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[17]\"}, \"&denom\"] } \n },\n \"b17_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[17]\"}, \"&denom\"] }\n },\n \"b17_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[17]\"}, \"&denom\"] } \n },\n \"b17_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[17]\"}, \"&denom\"] } \n },\n \"b17_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[17]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[17]\", \"&TCC_EA_RDREQ[17]\"]}, null] } },\n \"b17_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[17]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[17]\", \"&TCC_EA_WRREQ[17]\"]}, null] } },\n \"b17_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[17]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[17]\", \"&TCC_EA_ATOMIC[17]\"]}, null]}},\n \"b17_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[17]\"}, \"&denom\"] }},\n\n \n \"b18_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[18]\", \"&TCC_MISS[18]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[18]\"]}, \n { \"$add\": [\"&TCC_HIT[18]\", \"&TCC_MISS[18]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b18_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[18]\"}, \"&denom\"] }\n },\n \"b18_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[18]\"}, \"&denom\"] } \n },\n \"b18_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[18]\"}, \"&denom\"] }\n },\n \"b18_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[18]\"}, \"&denom\"] }\n },\n \"b18_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[18]\"}, \"&denom\"] }\n },\n \"b18_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[18]\"}, \"&denom\"] }\n },\n \"b18_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[18]\"}, \"&denom\"] }\n },\n \"b18_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[18]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[18]\", \"&TCC_EA_RDREQ[18]\"]}, null] } },\n \"b18_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[18]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[18]\", \"&TCC_EA_WRREQ[18]\"]}, null] } },\n \"b18_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[18]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[18]\", \"&TCC_EA_ATOMIC[18]\"]}, null]}},\n \"b18_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[18]\"}, \"&denom\"] }},\n\n \n \"b19_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[19]\", \"&TCC_MISS[19]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[19]\"]}, \n { \"$add\": [\"&TCC_HIT[19]\", \"&TCC_MISS[19]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b19_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[19]\"}, \"&denom\"] } \n },\n \"b19_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[19]\"}, \"&denom\"] } \n },\n \"b19_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[19]\"}, \"&denom\"] }\n },\n \"b19_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[19]\"}, \"&denom\"] }\n },\n \"b19_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[19]\"}, \"&denom\"] }\n },\n \"b19_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[19]\"}, \"&denom\"] }\n },\n \"b19_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[19]\"}, \"&denom\"] } \n },\n \"b19_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[19]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[19]\", \"&TCC_EA_RDREQ[19]\"]}, null] } },\n \"b19_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[19]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[19]\", \"&TCC_EA_WRREQ[19]\"]}, null] } },\n \"b19_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[19]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[19]\", \"&TCC_EA_ATOMIC[19]\"]}, null]}},\n \"b19_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[19]\"}, \"&denom\"] }},\n\n \n \"b20_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[20]\", \"&TCC_MISS[20]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[20]\"]}, \n { \"$add\": [\"&TCC_HIT[20]\", \"&TCC_MISS[20]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b20_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[20]\"}, \"&denom\"] } \n },\n \"b20_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[20]\"}, \"&denom\"] } \n },\n \"b20_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[20]\"}, \"&denom\"] }\n },\n \"b20_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[20]\"}, \"&denom\"] } \n },\n \"b20_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[20]\"}, \"&denom\"] } \n },\n \"b20_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[20]\"}, \"&denom\"] } \n },\n \"b20_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[20]\"}, \"&denom\"] } \n },\n \"b20_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[20]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[20]\", \"&TCC_EA_RDREQ[20]\"]}, null] } },\n \"b20_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[20]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[20]\", \"&TCC_EA_WRREQ[20]\"]}, null] } },\n \"b20_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[20]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[20]\", \"&TCC_EA_ATOMIC[20]\"]}, null]}},\n \"b20_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[20]\"}, \"&denom\"] }},\n\n \n\n \"b21_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[21]\", \"&TCC_MISS[21]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[21]\"]}, \n { \"$add\": [\"&TCC_HIT[21]\", \"&TCC_MISS[21]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b21_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[21]\"}, \"&denom\"] } \n },\n \"b21_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[21]\"}, \"&denom\"] } \n },\n \"b21_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[21]\"}, \"&denom\"] } \n },\n \"b21_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[21]\"}, \"&denom\"] } \n },\n \"b21_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[21]\"}, \"&denom\"] } \n },\n \"b21_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[21]\"}, \"&denom\"] } \n },\n \"b21_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[21]\"}, \"&denom\"] } \n },\n \"b21_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[21]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[21]\", \"&TCC_EA_RDREQ[21]\"]}, null] } },\n \"b21_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[21]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[21]\", \"&TCC_EA_WRREQ[21]\"]}, null] } },\n \"b21_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[21]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[21]\", \"&TCC_EA_ATOMIC[21]\"]}, null]}},\n \"b21_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[21]\"}, \"&denom\"] }},\n\n \n\n \"b22_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[22]\", \"&TCC_MISS[22]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[22]\"]}, \n { \"$add\": [\"&TCC_HIT[22]\", \"&TCC_MISS[22]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b22_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[22]\"}, \"&denom\"] } \n },\n \"b22_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[22]\"}, \"&denom\"] } \n },\n \"b22_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[22]\"}, \"&denom\"] } \n },\n \"b22_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[22]\"}, \"&denom\"] } \n },\n \"b22_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[22]\"}, \"&denom\"] } \n },\n \"b22_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[22]\"}, \"&denom\"] }\n },\n \"b22_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[22]\"}, \"&denom\"] } \n },\n \"b22_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[22]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[22]\", \"&TCC_EA_RDREQ[22]\"]}, null] } },\n \"b22_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[22]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[22]\", \"&TCC_EA_WRREQ[22]\"]}, null] } },\n \"b22_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[22]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[22]\", \"&TCC_EA_ATOMIC[22]\"]}, null]}},\n \"b22_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[22]\"}, \"&denom\"] }},\n\n \n\n \"b23_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[23]\", \"&TCC_MISS[23]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[23]\"]}, \n { \"$add\": [\"&TCC_HIT[23]\", \"&TCC_MISS[23]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b23_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[23]\"}, \"&denom\"] } \n },\n \"b23_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[23]\"}, \"&denom\"] } \n },\n \"b23_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[23]\"}, \"&denom\"] } \n },\n \"b23_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[23]\"}, \"&denom\"] } \n },\n \"b23_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[23]\"}, \"&denom\"] } \n },\n \"b23_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[23]\"}, \"&denom\"] }\n },\n \"b23_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[23]\"}, \"&denom\"] } \n },\n \"b23_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[23]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[23]\", \"&TCC_EA_RDREQ[23]\"]}, null] } },\n \"b23_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[23]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[23]\", \"&TCC_EA_WRREQ[23]\"]}, null] } },\n \"b23_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[23]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[23]\", \"&TCC_EA_ATOMIC[23]\"]}, null]}},\n \"b23_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[23]\"}, \"&denom\"] }},\n\n \n \"b24_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[24]\", \"&TCC_MISS[24]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[24]\"]}, \n { \"$add\": [\"&TCC_HIT[24]\", \"&TCC_MISS[24]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b24_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[24]\"}, \"&denom\"] } \n },\n \"b24_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[24]\"}, \"&denom\"] } \n },\n \"b24_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[24]\"}, \"&denom\"] } \n },\n \"b24_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[24]\"}, \"&denom\"] } \n },\n \"b24_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[24]\"}, \"&denom\"] } \n },\n \"b24_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[24]\"}, \"&denom\"] } \n },\n \"b24_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[24]\"}, \"&denom\"] } \n },\n \"b24_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[24]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[24]\", \"&TCC_EA_RDREQ[24]\"]}, null] } },\n \"b24_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[24]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[24]\", \"&TCC_EA_WRREQ[24]\"]}, null] } },\n \"b24_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[24]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[24]\", \"&TCC_EA_ATOMIC[24]\"]}, null]}},\n \"b24_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[24]\"}, \"&denom\"] }},\n\n \n \"b25_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[25]\", \"&TCC_MISS[25]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[25]\"]}, \n { \"$add\": [\"&TCC_HIT[25]\", \"&TCC_MISS[25]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b25_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[25]\"}, \"&denom\"] } \n },\n \"b25_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[25]\"}, \"&denom\"] } \n },\n \"b25_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[25]\"}, \"&denom\"] } \n },\n \"b25_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[25]\"}, \"&denom\"] } \n },\n \"b25_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[25]\"}, \"&denom\"] } \n },\n \"b25_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[25]\"}, \"&denom\"] } \n },\n \"b25_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[25]\"}, \"&denom\"] } \n },\n \"b25_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[25]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[25]\", \"&TCC_EA_RDREQ[25]\"]}, null] } },\n \"b25_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[25]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[25]\", \"&TCC_EA_WRREQ[25]\"]}, null] } },\n \"b25_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[25]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[25]\", \"&TCC_EA_ATOMIC[25]\"]}, null]}},\n \"b25_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[25]\"}, \"&denom\"] }},\n\n \n \"b26_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[26]\", \"&TCC_MISS[26]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[26]\"]}, \n { \"$add\": [\"&TCC_HIT[26]\", \"&TCC_MISS[26]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b26_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[26]\"}, \"&denom\"] } \n },\n \"b26_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[26]\"}, \"&denom\"] } \n },\n \"b26_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[26]\"}, \"&denom\"] } \n },\n \"b26_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[26]\"}, \"&denom\"] } \n },\n \"b26_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[26]\"}, \"&denom\"] } \n },\n \"b26_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[26]\"}, \"&denom\"] } \n },\n \"b26_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[26]\"}, \"&denom\"] } \n },\n \"b26_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[26]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[26]\", \"&TCC_EA_RDREQ[26]\"]}, null] } },\n \"b26_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[26]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[26]\", \"&TCC_EA_WRREQ[26]\"]}, null] } },\n \"b26_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[26]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[26]\", \"&TCC_EA_ATOMIC[26]\"]}, null]}},\n \"b26_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[26]\"}, \"&denom\"] }},\n\n \n \"b27_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[27]\", \"&TCC_MISS[27]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[27]\"]}, \n { \"$add\": [\"&TCC_HIT[27]\", \"&TCC_MISS[27]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b27_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[27]\"}, \"&denom\"] } \n },\n \"b27_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[27]\"}, \"&denom\"] } \n },\n \"b27_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[27]\"}, \"&denom\"] } \n },\n \"b27_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[27]\"}, \"&denom\"] } \n },\n \"b27_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[27]\"}, \"&denom\"] } \n },\n \"b27_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[27]\"}, \"&denom\"] } \n },\n \"b27_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[27]\"}, \"&denom\"] } \n },\n \"b27_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[27]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[27]\", \"&TCC_EA_RDREQ[27]\"]}, null] } },\n \"b27_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[27]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[27]\", \"&TCC_EA_WRREQ[27]\"]}, null] } },\n \"b27_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[27]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[27]\", \"&TCC_EA_ATOMIC[27]\"]}, null]}},\n \"b27_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[27]\"}, \"&denom\"] }},\n\n \n \"b28_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[28]\", \"&TCC_MISS[28]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[28]\"]}, \n { \"$add\": [\"&TCC_HIT[28]\", \"&TCC_MISS[28]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b28_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[28]\"}, \"&denom\"] } \n },\n \"b28_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[28]\"}, \"&denom\"] } \n },\n \"b28_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[28]\"}, \"&denom\"] } \n },\n \"b28_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[28]\"}, \"&denom\"] } \n },\n \"b28_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[28]\"}, \"&denom\"] } \n },\n \"b28_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[28]\"}, \"&denom\"] } \n },\n \"b28_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[28]\"}, \"&denom\"] } \n },\n \"b28_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[28]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[28]\", \"&TCC_EA_RDREQ[28]\"]}, null] } },\n \"b28_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[28]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[28]\", \"&TCC_EA_WRREQ[28]\"]}, null] } },\n \"b28_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[28]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[28]\", \"&TCC_EA_ATOMIC[28]\"]}, null]}},\n \"b28_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[28]\"}, \"&denom\"] }},\n\n \n \"b29_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[29]\", \"&TCC_MISS[29]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[29]\"]}, \n { \"$add\": [\"&TCC_HIT[29]\", \"&TCC_MISS[29]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b29_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[29]\"}, \"&denom\"] } \n },\n \"b29_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[29]\"}, \"&denom\"] } \n },\n \"b29_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[29]\"}, \"&denom\"] } \n },\n \"b29_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[29]\"}, \"&denom\"] } \n },\n \"b29_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[29]\"}, \"&denom\"] } \n },\n \"b29_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[29]\"}, \"&denom\"] }\n },\n \"b29_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[29]\"}, \"&denom\"] } \n },\n \"b29_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[29]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[29]\", \"&TCC_EA_RDREQ[29]\"]}, null] } },\n \"b29_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[29]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[29]\", \"&TCC_EA_WRREQ[29]\"]}, null] } },\n \"b29_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[29]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[29]\", \"&TCC_EA_ATOMIC[29]\"]}, null]}},\n \"b29_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[29]\"}, \"&denom\"] }},\n\n \n \"b30_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[30]\", \"&TCC_MISS[30]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[30]\"]}, \n { \"$add\": [\"&TCC_HIT[30]\", \"&TCC_MISS[30]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b30_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[30]\"}, \"&denom\"] } \n },\n \"b30_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[30]\"}, \"&denom\"] } \n },\n \"b30_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[30]\"}, \"&denom\"] } \n },\n \"b30_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[30]\"}, \"&denom\"] } \n },\n \"b30_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[30]\"}, \"&denom\"] } \n },\n \"b30_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[30]\"}, \"&denom\"] } \n },\n \"b30_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[30]\"}, \"&denom\"] } \n },\n \"b30_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[30]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[30]\", \"&TCC_EA_RDREQ[30]\"]}, null] } },\n \"b30_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[30]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[30]\", \"&TCC_EA_WRREQ[30]\"]}, null] } },\n \"b30_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[30]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[30]\", \"&TCC_EA_ATOMIC[30]\"]}, null]}},\n \"b30_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[30]\"}, \"&denom\"] }},\n\n \n \"b31_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[31]\", \"&TCC_MISS[31]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[31]\"]}, \n { \"$add\": [\"&TCC_HIT[31]\", \"&TCC_MISS[31]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b31_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[31]\"}, \"&denom\"] } \n },\n \"b31_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[31]\"}, \"&denom\"] } \n },\n \"b31_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[31]\"}, \"&denom\"] } \n },\n \"b31_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[31]\"}, \"&denom\"] } \n },\n \"b31_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[31]\"}, \"&denom\"] } \n },\n \"b31_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[31]\"}, \"&denom\"] } \n },\n \"b31_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[31]\"}, \"&denom\"] }\n },\n \"b31_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[31]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[31]\", \"&TCC_EA_RDREQ[31]\"]}, null] } },\n \"b31_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[31]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[31]\", \"&TCC_EA_WRREQ[31]\"]}, null] } },\n \"b31_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[31]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[31]\", \"&TCC_EA_ATOMIC[31]\"]}, null]}},\n \"b31_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[31]\"}, \"&denom\"] }}\n\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Channel\": \"16\",\n \"Hit Rate\": \"&b16_hitRate\",\n \"Req\": \"&b16_req\",\n \"Read Req\": \"&b16_readReq\",\n \"Write Req\": \"&b16_writeReq\",\n \"AtomicReq\": \"&b16_atomicReq\",\n \"EA Read Req\": \"&b16_eaReadReq\",\n \"EA Write Req\": \"&b16_eaWriteReq\",\n \"EA AtomicReq\": \"&b16_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b16_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b16_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b16_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b16_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b16_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b16_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b16_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b16_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b16_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b16_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"17\",\n \"Hit Rate\": \"&b17_hitRate\",\n \"Req\": \"&b17_req\",\n \"Read Req\": \"&b17_readReq\",\n \"Write Req\": \"&b17_writeReq\",\n \"AtomicReq\": \"&b17_atomicReq\",\n \"EA Read Req\": \"&b17_eaReadReq\",\n \"EA Write Req\": \"&b17_eaWriteReq\",\n \"EA AtomicReq\": \"&b17_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b17_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b17_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b17_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b17_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b17_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b17_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b17_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b17_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b17_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b17_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"18\",\n \"Hit Rate\": \"&b18_hitRate\",\n \"Req\": \"&b18_req\",\n \"Read Req\": \"&b18_readReq\",\n \"Write Req\": \"&b18_writeReq\",\n \"AtomicReq\": \"&b18_atomicReq\",\n \"EA Read Req\": \"&b18_eaReadReq\",\n \"EA Write Req\": \"&b18_eaWriteReq\",\n \"EA AtomicReq\": \"&b18_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b18_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b18_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b18_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b18_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b18_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b18_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b18_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b18_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b18_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b18_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"19\",\n \"Hit Rate\": \"&b19_hitRate\",\n \"Req\": \"&b19_req\",\n \"Read Req\": \"&b19_readReq\",\n \"Write Req\": \"&b19_writeReq\",\n \"AtomicReq\": \"&b19_atomicReq\",\n \"EA Read Req\": \"&b19_eaReadReq\",\n \"EA Write Req\": \"&b19_eaWriteReq\",\n \"EA AtomicReq\": \"&b19_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b19_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b19_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b19_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b19_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b19_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b19_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b19_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b19_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b19_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b19_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"20\",\n \"Hit Rate\": \"&b20_hitRate\",\n \"Req\": \"&b20_req\",\n \"Read Req\": \"&b20_readReq\",\n \"Write Req\": \"&b20_writeReq\",\n \"AtomicReq\": \"&b20_atomicReq\",\n \"EA Read Req\": \"&b20_eaReadReq\",\n \"EA Write Req\": \"&b20_eaWriteReq\",\n \"EA AtomicReq\": \"&b20_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b20_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b20_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b20_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b20_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b20_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b20_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b20_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b20_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b20_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b20_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"21\",\n \"Hit Rate\": \"&b21_hitRate\",\n \"Req\": \"&b21_req\",\n \"Read Req\": \"&b21_readReq\",\n \"Write Req\": \"&b21_writeReq\",\n \"AtomicReq\": \"&b21_atomicReq\",\n \"EA Read Req\": \"&b21_eaReadReq\",\n \"EA Write Req\": \"&b21_eaWriteReq\",\n \"EA AtomicReq\": \"&b21_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b21_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b21_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b21_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b21_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b21_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b21_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b21_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b21_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b21_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b21_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"22\",\n \"Hit Rate\": \"&b22_hitRate\",\n \"Req\": \"&b22_req\",\n \"Read Req\": \"&b22_readReq\",\n \"Write Req\": \"&b22_writeReq\",\n \"AtomicReq\": \"&b22_atomicReq\",\n \"EA Read Req\": \"&b22_eaReadReq\",\n \"EA Write Req\": \"&b22_eaWriteReq\",\n \"EA AtomicReq\": \"&b22_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b22_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b22_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b22_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b22_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b22_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b22_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b22_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b22_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b22_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b22_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"23\",\n \"Hit Rate\": \"&b23_hitRate\",\n \"Req\": \"&b23_req\",\n \"Read Req\": \"&b23_readReq\",\n \"Write Req\": \"&b23_writeReq\",\n \"AtomicReq\": \"&b23_atomicReq\",\n \"EA Read Req\": \"&b23_eaReadReq\",\n \"EA Write Req\": \"&b23_eaWriteReq\",\n \"EA AtomicReq\": \"&b23_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b23_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b23_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b23_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b23_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b23_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b23_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b23_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b23_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b23_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b23_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n\n },\n {\n \"Channel\": \"24\",\n \"Hit Rate\": \"&b24_hitRate\",\n \"Req\": \"&b24_req\",\n \"Read Req\": \"&b24_readReq\",\n \"Write Req\": \"&b24_writeReq\",\n \"AtomicReq\": \"&b24_atomicReq\",\n \"EA Read Req\": \"&b24_eaReadReq\",\n \"EA Write Req\": \"&b24_eaWriteReq\",\n \"EA AtomicReq\": \"&b24_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b24_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b24_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b24_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b24_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b24_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b24_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b24_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b24_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b24_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b24_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"25\",\n \"Hit Rate\": \"&b25_hitRate\",\n \"Req\": \"&b25_req\",\n \"Read Req\": \"&b25_readReq\",\n \"Write Req\": \"&b25_writeReq\",\n \"AtomicReq\": \"&b25_atomicReq\",\n \"EA Read Req\": \"&b25_eaReadReq\",\n \"EA Write Req\": \"&b25_eaWriteReq\",\n \"EA AtomicReq\": \"&b25_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b25_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b25_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b25_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b25_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b25_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b25_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b25_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b25_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b25_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b25_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"26\",\n \"Hit Rate\": \"&b26_hitRate\",\n \"Req\": \"&b26_req\",\n \"Read Req\": \"&b26_readReq\",\n \"Write Req\": \"&b26_writeReq\",\n \"AtomicReq\": \"&b26_atomicReq\",\n \"EA Read Req\": \"&b26_eaReadReq\",\n \"EA Write Req\": \"&b26_eaWriteReq\",\n \"EA AtomicReq\": \"&b26_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b26_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b26_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b26_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b26_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b26_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b26_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b26_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b26_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b26_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b26_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n\n },\n {\n \"Channel\": \"27\",\n \"Hit Rate\": \"&b27_hitRate\",\n \"Req\": \"&b27_req\",\n \"Read Req\": \"&b27_readReq\",\n \"Write Req\": \"&b27_writeReq\",\n \"AtomicReq\": \"&b27_atomicReq\",\n \"EA Read Req\": \"&b27_eaReadReq\",\n \"EA Write Req\": \"&b27_eaWriteReq\",\n \"EA AtomicReq\": \"&b27_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b27_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b27_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b27_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b27_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b27_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b27_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b27_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b27_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b27_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b27_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"28\",\n \"Hit Rate\": \"&b28_hitRate\",\n \"Req\": \"&b28_req\",\n \"Read Req\": \"&b28_readReq\",\n \"Write Req\": \"&b28_writeReq\",\n \"AtomicReq\": \"&b28_atomicReq\",\n \"EA Read Req\": \"&b28_eaReadReq\",\n \"EA Write Req\": \"&b28_eaWriteReq\",\n \"EA AtomicReq\": \"&b28_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b28_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b28_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b28_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b28_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b28_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b28_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b28_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b28_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b28_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b28_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"29\",\n \"Hit Rate\": \"&b29_hitRate\",\n \"Req\": \"&b29_req\",\n \"Read Req\": \"&b29_readReq\",\n \"Write Req\": \"&b29_writeReq\",\n \"AtomicReq\": \"&b29_atomicReq\",\n \"EA Read Req\": \"&b29_eaReadReq\",\n \"EA Write Req\": \"&b29_eaWriteReq\",\n \"EA AtomicReq\": \"&b29_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b29_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b29_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b29_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b29_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b29_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b29_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b29_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b29_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b29_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b29_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"30\",\n \"Hit Rate\": \"&b30_hitRate\",\n \"Req\": \"&b30_req\",\n \"Read Req\": \"&b30_readReq\",\n \"Write Req\": \"&b30_writeReq\",\n \"AtomicReq\": \"&b30_atomicReq\",\n \"EA Read Req\": \"&b30_eaReadReq\",\n \"EA Write Req\": \"&b30_eaWriteReq\",\n \"EA AtomicReq\": \"&b30_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b30_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b30_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b30_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b30_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b30_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b30_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b30_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b30_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b30_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b30_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"31\",\n \"Hit Rate\": \"&b31_hitRate\",\n \"Req\": \"&b31_req\",\n \"Read Req\": \"&b31_readReq\",\n \"Write Req\": \"&b31_writeReq\",\n \"AtomicReq\": \"&b31_atomicReq\",\n \"EA Read Req\": \"&b31_eaReadReq\",\n \"EA Write Req\": \"&b31_eaWriteReq\",\n \"EA AtomicReq\": \"&b31_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b31_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b31_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b31_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b31_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b31_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b31_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b31_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b31_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b31_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b31_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"$array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"$array\"\n }}\n]);", - "type": "table" - } - ], - "title": "L2 - EA Read Latency (Channel 16-31) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 10, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Lat - cycles", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 81 - }, - "id": 93, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Latency (Channel 0 - 15) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 10, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Lat - cycles", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 81 - }, - "id": 94, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Latency (Channel 16 - 31) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 11, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Atomic Lat - cycles", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 89 - }, - "id": 187, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Atomic Latency (Channel 0 - 15) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 11, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Atomic Lat - cycles", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 89 - }, - "id": 201, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Atomic Latency (Channel 16 - 31) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 12, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - IO", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 97 - }, - "id": 220, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - I/O (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 12, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - IO", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 97 - }, - "id": 227, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - I/O (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 13, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - GMI", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 105 - }, - "id": 221, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - GMI (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 13, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - GMI", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 105 - }, - "id": 228, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - GMI (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 14, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - DRAM", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 113 - }, - "id": 222, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - HBM (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 14, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - DRAM", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 113 - }, - "id": 229, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - HBM (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 15, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - IO", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 121 - }, - "id": 223, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - I/O (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 15, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - IO", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 121 - }, - "id": 230, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - I/O (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 16, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - GMI", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 129 - }, - "id": 225, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - GMI (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 16, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - GMI", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 129 - }, - "id": 231, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - GMI (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 17, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - DRAM", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 137 - }, - "id": 224, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - HBM (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 17, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - DRAM", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 137 - }, - "id": 232, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - HBM (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 18, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - Starve", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 145 - }, - "id": 226, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Starve (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 18, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - Starve", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 145 - }, - "id": 233, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Starve (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "L2 Cache (per Channel)", - "type": "row" - } - ], - "refresh": "", - "schemaVersion": 34, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "current": { - "selected": true, - "text": "\"per Wave\"", - "value": "\"per Wave\"" - }, - "hide": 0, - "includeAll": false, - "label": "Normalization", - "multi": false, - "name": "normUnit", - "options": [ - { - "selected": true, - "text": "\"per Wave\"", - "value": "\"per Wave\"" - }, - { - "selected": false, - "text": "\"per Cycle\"", - "value": "\"per Cycle\"" - }, - { - "selected": false, - "text": "\"per Sec\"", - "value": "\"per Sec\"" - }, - { - "selected": false, - "text": "\"per Kernel\"", - "value": "\"per Kernel\"" - } - ], - "query": "\"per Wave\",\n\"per Cycle\",\n\"per Sec\",\n\"per Kernel\"", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - }, - { - "current": { - "selected": false, - "text": "32", - "value": "32" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&L2Banks\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "L2 Channels", - "multi": false, - "name": "L2Banks", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&L2Banks\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "8", - "value": "8" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSE\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "#SEs", - "multi": false, - "name": "numSE", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSE\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "104", - "value": "104" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numCU\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "#CUs", - "multi": false, - "name": "numCU", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numCU\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "32", - "value": "32" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&maxWavesPerCU\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Max Waves/CU", - "multi": false, - "name": "maxWavesPerCU", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&maxWavesPerCU\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "1700", - "value": "1700" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&sclk\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "SCLK (MHz)", - "multi": false, - "name": "sclk", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&sclk\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "56", - "value": "56" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSQC\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "#SQC", - "multi": false, - "name": "numSQC", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSQC\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "1638.4", - "value": "1638.4" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&hbmBW\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "HBM BW (GB/s)", - "multi": false, - "name": "hbmBW", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&hbmBW\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": "rocprofiler-compute_asw_mix_mi200", - "value": "rocprofiler-compute_asw_mix_mi200" - }, - "definition": "workload_names.names.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "hide": 0, - "includeAll": false, - "label": "Workload", - "multi": false, - "name": "Workload1", - "options": [], - "query": "workload_names.names.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "433323", - "value": "433323" - }, - "definition": "$Workload1.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"myAvg\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }, 1000] }, $sclk] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": { \"$round\": [\"&myAvg\", 0] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Kernel Cycles", - "multi": false, - "name": "kernelBusyCycles", - "options": [], - "query": "$Workload1.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"myAvg\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }, 1000] }, $sclk] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": { \"$round\": [\"&myAvg\", 0] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "103", - "value": "103" - }, - "definition": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"theAvg\": {\n \"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&GRBM_GUI_ACTIVE\", 0]},\n {\"$divide\": [{ \"$multiply\": [4, \"&SQ_BUSY_CU_CYCLES\"] }, \"&GRBM_GUI_ACTIVE\"]},\n \"\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": {\"$toInt\": { \"$min\": [{ \"$add\": [{ \"$multiply\": [{ \"$divide\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU] },8] }, { \"$min\": [{ \"$mod\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU] }, 8] }] }, $numCU] }}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"$array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"$array\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Active CUs", - "multi": false, - "name": "numActiveCUs", - "options": [], - "query": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"theAvg\": {\n \"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&GRBM_GUI_ACTIVE\", 0]},\n {\"$divide\": [{ \"$multiply\": [4, \"&SQ_BUSY_CU_CYCLES\"] }, \"&GRBM_GUI_ACTIVE\"]},\n \"\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": {\"$toInt\": { \"$min\": [{ \"$add\": [{ \"$multiply\": [{ \"$divide\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU] },8] }, { \"$min\": [{ \"$mod\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU] }, 8] }] }, $numCU] }}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"$array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"$array\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "definition": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": \"&Index\"\n }},\n {\"$sort\": {\n \"_id\": 1\n }}\n]);", - "description": "Defaults to all DispatchIDs", - "hide": 2, - "includeAll": true, - "label": "Filtered Dispatch ID", - "multi": false, - "name": "DispatchIDFilter", - "options": [], - "query": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": \"&Index\"\n }},\n {\"$sort\": {\n \"_id\": 1\n }}\n]);", - "refresh": 1, - "regex": "${DispatchID:text}", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": "", - "value": "" - }, - "description": "Desired DispatchID filters as regex ex. (1|18)", - "hide": 0, - "label": "Dispatch Filter", - "name": "DispatchID", - "options": [ - { - "selected": true, - "text": "", - "value": "" - } - ], - "query": "", - "skipUrlSync": false, - "type": "textbox" - }, - { - "current": { - "selected": false, - "text": "0", - "value": "0" - }, - "definition": "$Workload1.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&gpu-id\"\n }}\n]);", - "hide": 0, - "includeAll": false, - "label": "GCD", - "multi": false, - "name": "gpuFilter", - "options": [], - "query": "$Workload1.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&gpu-id\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 3, - "type": "query" - }, - { - "current": { - "selected": true, - "text": [ - "All" - ], - "value": [ - "$__all" - ] - }, - "definition": "$Workload1.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&KernelName\"\n }}\n]);", - "hide": 0, - "includeAll": true, - "label": "Kernels", - "multi": true, - "name": "KernelNameFilter", - "options": [], - "query": "$Workload1.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&KernelName\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "miperf_asw_vcopy_mi200", - "value": "miperf_asw_vcopy_mi200" - }, - "definition": "workload_names.names.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "hide": 0, - "includeAll": false, - "label": "Baseline Workload", - "multi": false, - "name": "Workload2", - "options": [], - "query": "workload_names.names.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "84", - "value": "84" - }, - "definition": "$Workload2.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"theAvg\": {\n \"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&GRBM_GUI_ACTIVE\", 0]},\n {\"$divide\": [{ \"$multiply\": [4, \"&SQ_BUSY_CU_CYCLES\"] }, \"&GRBM_GUI_ACTIVE\"]},\n \"\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": {\"$toInt\": { \"$min\": [{ \"$add\": [{ \"$multiply\": [{ \"$divide\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU2] },8] }, { \"$min\": [{ \"$mod\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU2] }, 8] }] }, $numCU2] }}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline ActiveCUs", - "multi": false, - "name": "numActiveCUs2", - "options": [], - "query": "$Workload2.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"theAvg\": {\n \"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&GRBM_GUI_ACTIVE\", 0]},\n {\"$divide\": [{ \"$multiply\": [4, \"&SQ_BUSY_CU_CYCLES\"] }, \"&GRBM_GUI_ACTIVE\"]},\n \"\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": {\"$toInt\": { \"$min\": [{ \"$add\": [{ \"$multiply\": [{ \"$divide\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU2] },8] }, { \"$min\": [{ \"$mod\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU2] }, 8] }] }, $numCU2] }}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "definition": "$Workload2.pmc_perf.aggregate([\n {\"$match\": {\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}}\n }},\n {\"$group\": {\n \"_id\": \"&Index\"\n }},\n {\"$sort\": {\n \"_id\": 1\n }}\n]);", - "description": "Defaults to all DispatchIDs", - "hide": 2, - "includeAll": true, - "label": "Baseline Dispatch IDs", - "multi": false, - "name": "DispatchIDFilter2", - "options": [], - "query": "$Workload2.pmc_perf.aggregate([\n {\"$match\": {\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}}\n }},\n {\"$group\": {\n \"_id\": \"&Index\"\n }},\n {\"$sort\": {\n \"_id\": 1\n }}\n]);", - "refresh": 1, - "regex": "${DispatchID2:text}", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": "", - "value": "" - }, - "description": "Desired DispatchID filters as regex ex. (1|18)", - "hide": 0, - "label": "Baseline Dispatch Filter", - "name": "DispatchID2", - "options": [ - { - "selected": true, - "text": "", - "value": "" - } - ], - "query": "", - "skipUrlSync": false, - "type": "textbox" - }, - { - "current": { - "selected": false, - "text": "0", - "value": "0" - }, - "definition": "$Workload2.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&gpu-id\"\n }}\n]);", - "hide": 0, - "includeAll": false, - "label": "Baseline GCD", - "multi": false, - "name": "gpuFilter2", - "options": [], - "query": "$Workload2.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&gpu-id\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": [ - "All" - ], - "value": [ - "$__all" - ] - }, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "definition": "$Workload2.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&KernelName\"\n }}\n]);", - "hide": 0, - "includeAll": true, - "label": "Baseline Kernels", - "multi": true, - "name": "KernelNameFilter2", - "options": [], - "query": "$Workload2.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&KernelName\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": [ - "System Info" - ], - "value": [ - "System Info" - ] - }, - "hide": 0, - "includeAll": false, - "label": "Comparison Panels", - "multi": true, - "name": "select", - "options": [ - { - "selected": true, - "text": "System Info", - "value": "System Info" - }, - { - "selected": false, - "text": "System Speed-of-Light", - "value": "System Speed-of-Light" - }, - { - "selected": false, - "text": "Roofline", - "value": "Roofline" - }, - { - "selected": false, - "text": "Command Processor", - "value": "Command Processor" - }, - { - "selected": false, - "text": "Shader Processor Input", - "value": "Shader Processor Input" - }, - { - "selected": false, - "text": "Wavefront", - "value": "Wavefront" - }, - { - "selected": false, - "text": "Compute Pipeline", - "value": "Compute Pipeline" - }, - { - "selected": false, - "text": "Instruction Mix", - "value": "Instruction Mix" - }, - { - "selected": false, - "text": "Local Data Share", - "value": "Local Data Share" - }, - { - "selected": false, - "text": "Instruction Cache", - "value": "Instruction Cache" - }, - { - "selected": false, - "text": "Scalar L1D Cache", - "value": "Scalar L1D Cache" - }, - { - "selected": false, - "text": "Texture Addr and Data", - "value": "Texture Addr and Data" - }, - { - "selected": false, - "text": "Vector L1D Cache", - "value": "Vector L1D Cache" - }, - { - "selected": false, - "text": "L2 Cache", - "value": "L2 Cache" - } - ], - "query": "System Info, \nSystem Speed-of-Light, \nRoofline,\nCommand Processor, \nShader Processor Input, \nWavefront,\nCompute Pipeline, \nInstruction Mix,\nLocal Data Share, \nInstruction Cache, \nScalar L1D Cache, \nTexture Addr and Data, \nVector L1D Cache,\nL2 Cache", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - }, - { - "current": { - "selected": false, - "text": "32", - "value": "32" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&L2Banks\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline L2 Channels", - "multi": false, - "name": "L2Banks2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&L2Banks\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "8", - "value": "8" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSE\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline #SEs", - "multi": false, - "name": "numSE2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSE\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "110", - "value": "110" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numCU\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline #CUs", - "multi": false, - "name": "numCU2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numCU\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "32", - "value": "32" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&maxWavesPerCU\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline Max Waves/CU", - "multi": false, - "name": "maxWavesPerCU2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&maxWavesPerCU\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "1700", - "value": "1700" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&sclk\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline SCLK (MHz)", - "multi": false, - "name": "sclk2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&sclk\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "56", - "value": "56" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSQC\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline #SQC", - "multi": false, - "name": "numSQC2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSQC\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "1638.4", - "value": "1638.4" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&hbmBW\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline HBM BW (GB/s)", - "multi": false, - "name": "hbmBW2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&hbmBW\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "mi200", - "value": "mi200" - }, - "definition": "${Workload1}.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "SOC", - "multi": false, - "name": "soc", - "options": [], - "query": "${Workload1}.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": "5", - "value": "5" - }, - "hide": 0, - "includeAll": false, - "multi": false, - "name": "TopN", - "options": [ - { - "selected": false, - "text": "1", - "value": "1" - }, - { - "selected": true, - "text": "5", - "value": "5" - }, - { - "selected": false, - "text": "10", - "value": "10" - }, - { - "selected": false, - "text": "15", - "value": "15" - }, - { - "selected": false, - "text": "20", - "value": "20" - }, - { - "selected": false, - "text": "50", - "value": "50" - }, - { - "selected": false, - "text": "100", - "value": "100" - } - ], - "query": "1,5,10,15,20,50,100", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - } - ] - }, - "time": { - "from": "2021-11-04T14:21:39.749Z", - "to": "2021-11-08T14:21:39.749Z" - }, - "timepicker": {}, - "timezone": "", - "title": "rocprofiler-compute_v1.0.7_pub", - "uid": "MIPerf_v1_0_06302022112", - "version": 2, - "weekStart": "" -} diff --git a/projects/rocprofiler-compute/grafana/dashboards/RocProfCompute_v1.0.8_pub.json b/projects/rocprofiler-compute/grafana/dashboards/RocProfCompute_v1.0.8_pub.json deleted file mode 100644 index 760081cf13..0000000000 --- a/projects/rocprofiler-compute/grafana/dashboards/RocProfCompute_v1.0.8_pub.json +++ /dev/null @@ -1,13397 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 0, - "id": 2, - "iteration": 1692036465764, - "links": [], - "liveNow": false, - "panels": [ - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 217, - "panels": [ - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [] - }, - "gridPos": { - "h": 23, - "w": 13, - "x": 0, - "y": 1 - }, - "id": 159, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.sysinfo.aggregate([\n {\"$project\": {\n \"_id\": 0,\n \"date\":1,\n \"command\": 1,\n \"host_name\": 1,\n \"host_cpu\": 1,\n \"host_distro\": 1,\n \"host_kernel\": 1,\n \"host_rocmver\": 1,\n \"gpu_soc\": 1,\n \"name\": 1,\n \"numSE\": 1,\n \"numSQC\": 1,\n \"numCU\": 1,\n \"numSIMD\": 1,\n \"waveSize\": 1,\n \"maxWavesPerCU\": 1,\n \"maxWorkgroupSize\":1,\n \"L1\":1,\n \"L2\":1,\n \"L2Banks\": 1,\n \"sclk\":1,\n \"mclk\":1,\n \"cur_sclk\": 1,\n \"cur_mclk\":1,\n \"hbmBW\":1\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\":\"Date\",\n \"Value\": \"&date\"\n },\n {\n \"Metric\":\"App Command\",\n \"Value\": \"&command\"\n },\n {\n \"Metric\":\"Host Name\",\n \"Value\": \"&host_name\"\n },\n {\n \"Metric\":\"Host CPU\",\n \"Value\": \"&host_cpu\"\n },\n {\n \"Metric\":\"Host Distro\",\n \"Value\": \"&host_distro\"\n },\n {\n \"Metric\":\"Host Kernel\",\n \"Value\": \"&host_kernel\"\n },\n {\n \"Metric\":\"ROCm Version\",\n \"Value\": \"&host_rocmver\"\n },\n {\n \"Metric\":\"GFX SoC\",\n \"Value\": \"&name\"\n },\n {\n \"Metric\":\"GFX ID\",\n \"Value\": \"&gpu_soc\"\n },\n {\n \"Metric\":\"Total SEs\",\n \"Value\":\"&numSE\"\n },\n {\n \"Metric\":\"Total SQCs\",\n \"Value\":\"&numSQC\"\n },\n {\n\n \"Metric\":\"Total CUs\",\n \"Value\":\"&numCU\"\n },\n {\n \"Metric\":\"SIMDs/CU\",\n \"Value\": \"&numSIMD\"\n },\n {\n \"Metric\":\"Max Wavefronts Occupancy Per CU\",\n \"Value\":\"&maxWavesPerCU\"\n },\n {\n \"Metric\":\"Max Workgroup Size\",\n \"Value\":\"&maxWorkgroupSize\"\n },\n {\n \"Metric\":\"L1Cache per CU (KB)\",\n \"Value\":\"&L1\"\n },\n {\n \"Metric\":\"L2Cache (KB)\",\n \"Value\":\"&L2\"\n },\n {\n \"Metric\":\"L2Cache Channels\",\n \"Value\":\"&L2Banks\"\n },\n {\n \"Metric\":\"Sys Clock (Max) - MHz\",\n \"Value\":\"&sclk\"\n \n },\n {\n \"Metric\":\"Memory Clock (Max) - MHz\",\n \"Value\":\"&mclk\"\n },\n {\n \"Metric\":\"Sys Clock (Cur) - MHz\",\n \"Value\":\"&cur_sclk\"\n \n },\n {\n \"Metric\":\"Memory Clock (Cur) - MHz\",\n \"Value\":\"&cur_mclk\"\n },\n {\n \"Metric\":\"HBM Bandwidth - GB/s\",\n \"Value\":\"&hbmBW\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.sysinfo.aggregate([\n {\"$match\": {\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(System Info)\"}}\n }},\n\n {\"$project\": {\n \"_id\": 0,\n \"date\":1,\n \"command\": 1,\n \"host_name\": 1,\n \"host_cpu\": 1,\n \"host_distro\": 1,\n \"host_kernel\": 1,\n \"host_rocmver\": 1,\n \"gpu_soc\": 1,\n \"name\": 1,\n \"numSE\": 1,\n \"numSQC\": 1,\n \"numCU\": 1,\n \"numSIMD\": 1,\n \"waveSize\": 1,\n \"maxWavesPerCU\": 1,\n \"maxWorkgroupSize\":1,\n \"L1\":1,\n \"L2\":1,\n \"L2Banks\": 1,\n \"sclk\":1,\n \"mclk\":1,\n \"cur_sclk\": 1,\n \"cur_mclk\":1,\n \"hbmBW\":1\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\":\"Date\",\n \"Value\": \"&date\"\n },\n {\n \"Metric\":\"App Command\",\n \"Value\": \"&command\"\n },\n {\n \"Metric\":\"Host Name\",\n \"Value\": \"&host_name\"\n },\n {\n \"Metric\":\"Host CPU\",\n \"Value\": \"&host_cpu\"\n },\n {\n \"Metric\":\"Host Distro\",\n \"Value\": \"&host_distro\"\n },\n {\n \"Metric\":\"Host Kernel\",\n \"Value\": \"&host_kernel\"\n },\n {\n \"Metric\":\"ROCm Version\",\n \"Value\": \"&host_rocmver\"\n },\n {\n \"Metric\":\"GFX SoC\",\n \"Value\": \"&name\"\n },\n {\n \"Metric\":\"GFX ID\",\n \"Value\": \"&gpu_soc\"\n },\n {\n \"Metric\":\"Total SEs\",\n \"Value\":\"&numSE\"\n },\n {\n \"Metric\":\"Total SQCs\",\n \"Value\":\"&numSQC\"\n },\n {\n\n \"Metric\":\"Total CUs\",\n \"Value\":\"&numCU\"\n },\n {\n \"Metric\":\"SIMDs/CU\",\n \"Value\": \"&numSIMD\"\n },\n {\n \"Metric\":\"Max Wavefronts Occupancy Per CU\",\n \"Value\":\"&maxWavesPerCU\"\n },\n {\n \"Metric\":\"Max Workgroup Size\",\n \"Value\":\"&maxWorkgroupSize\"\n },\n {\n \"Metric\":\"L1Cache per CU (KB)\",\n \"Value\":\"&L1\"\n },\n {\n \"Metric\":\"L2Cache (KB)\",\n \"Value\":\"&L2\"\n },\n {\n \"Metric\":\"L2Cache Channels\",\n \"Value\":\"&L2Banks\"\n },\n {\n \"Metric\":\"Sys Clock (Max) - MHz\",\n \"Value\":\"&sclk\"\n \n },\n {\n \"Metric\":\"Memory Clock (Max) - MHz\",\n \"Value\":\"&mclk\"\n },\n {\n \"Metric\":\"Sys Clock (Cur) - MHz\",\n \"Value\":\"&cur_sclk\"\n \n },\n {\n \"Metric\":\"Memory Clock (Cur) - MHz\",\n \"Value\":\"&cur_mclk\"\n },\n {\n \"Metric\":\"HBM Bandwidth - GB/s\",\n \"Value\":\"&hbmBW\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "System Info", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true - }, - "indexByName": {}, - "renameByName": { - "Value 1": "Current", - "Value 2": "Baseline" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "System Info", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 1 - }, - "id": 108, - "panels": [ - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto", - "filterable": false - }, - "decimals": 0, - "links": [], - "mappings": [ - { - "options": { - "match": "false", - "result": { - "index": 0 - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text" - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Percent of Peak - PoP" - }, - "properties": [ - { - "id": "unit", - "value": "percent" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "transparent" - }, - { - "color": "orange", - "value": 50 - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - { - "id": "custom.displayMode", - "value": "color-background" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.displayMode", - "value": "color-text" - }, - { - "id": "custom.width", - "value": 252 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit 1" - }, - "properties": [ - { - "id": "custom.displayMode", - "value": "color-background" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 137 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 110 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 125 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg" - }, - "properties": [ - { - "id": "custom.width", - "value": 161 - } - ] - } - ] - }, - "gridPos": { - "h": 29, - "w": 15, - "x": 0, - "y": 2 - }, - "id": 110, - "interval": "2h", - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"valu_flops_val\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }] }] }\n ]}\n ,{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }]\n }},\n \n \"valu_intOps_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] }] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n },\n \n \"mfma_flops_f16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_bf16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f32_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f64_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_i8_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \n \n \"salu_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU] }] }\n },\n \n \"valu_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU] }] }\n },\n \n \"mfma_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU, 4] }] }\n },\n\n \n \"lds_bconf\": {\n \"$avg\": {\"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n } \n },\n \n \n \"lds_bw\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]}, \n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]}\n },\n \n \"lds_bw_pop\": {\n \"$avg\": {\"$divide\": [\n {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]}, \n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]}, \n {\"$multiply\": [$sclk, $numCU, 0.00128]}\n ]}\n },\n \n \"unpredthreads_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \n \"ipcIssue_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\", \"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"eaWriteLat_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\" , 0]},\n { \"$divide\": [\"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\"] },\n null \n ]\n }\n },\n \"eaReadLat_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\" , 0]},\n { \"$divide\": [\"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\"] },\n null \n ]\n }\n },\n \"eaWriteBW_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64] }, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n }, \n \"eaReadBW_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32] }, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] }] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n },\n \"l2_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }, 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }] },\n null \n ]\n }\n },\n \"vecl1_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]},\n { \"$subtract\": [100, { \"$divide\": [{ \"$multiply\": [100, { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }] }, \"&TCP_TOTAL_CACHE_ACCESSES_sum\"] }] },\n null\n ]\n }\n },\n \"vecl1_BW_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \"l1k_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\"]} , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\"]}] },\n null\n ]\n }\n },\n \"l1i_hitRate_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\"]}] }\n },\n \"l1i_BW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQC_ICACHE_REQ\",{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }, 64] }\n },\n \"l1k_BW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQC_DCACHE_REQ\", { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }, 64] }\n }\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"VALU FLOPs\",\n \"Value\": \"&valu_flops_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 64, 2 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&valu_flops_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 64, 2 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"VALU IOPs\",\n \"Value\": \"&valu_intOps_val\",\n \"Unit\": \"GIOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 64, 2 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&valu_intOps_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 64, 2 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (BF16)\",\n \"Value\": \"&mfma_flops_bf16_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 512 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_bf16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 512 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F16)\",\n \"Value\": \"&mfma_flops_f16_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 1024 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 1024 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F32)\",\n \"Value\": \"&mfma_flops_f32_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 256 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f32_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 256 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F64)\",\n \"Value\": \"&mfma_flops_f64_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 256 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f64_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 256 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA IOPs (Int8)\",\n \"Value\": \"&mfma_flops_i8_val\",\n \"Unit\": \"GIOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 1024 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_i8_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 1024 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"Active CUs\",\n \"Value\": $numActiveCUs,\n \"Unit\": \"CUs\",\n \"peak\": $numCU,\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, $numActiveCUs] }, $numCU]}\n },\n \n {\n \"Metric\": \"SALU Util\",\n \"Value\": \"&salu_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&salu_val\"\n },\n {\n \"Metric\": \"VALU Util\",\n \"Value\": \"&valu_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&valu_val\"\n },\n {\n \"Metric\": \"MFMA Util\",\n \"Value\": \"&mfma_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&mfma_val\"\n },\n {\n \"Metric\": \"VALU Active Threads/Wave\",\n \"Value\": \"&unpredthreads_val\",\n \"Unit\": \"Threads\",\n \"peak\": 64,\n \"Percent of Peak - PoP\": { \"$multiply\": [\"&unpredthreads_val\", 1.5625]}\n },\n {\n \"Metric\": \"IPC - Issue\",\n \"Value\": \"&ipcIssue_val\",\n \"Unit\": \"Instr/cycle\",\n \"peak\": 5,\n \"Percent of Peak - PoP\": {\"$divide\": [{ \"$multiply\": [100, \"&ipcIssue_val\"] }, 5] }\n },\n {\n \"Metric\": \"LDS BW\",\n \"Value\": \"&lds_bw\",\n \"Unit\": \"GB/sec\",\n \"peak\": {\"$multiply\": [$sclk, $numCU, 0.128]},\n \"Percent of Peak - PoP\": \"&lds_bw_pop\"\n },\n {\n \"Metric\": \"LDS Bank Conflict\",\n \"Value\": \"&lds_bconf\",\n \"Unit\": \"Conflicts/access\",\n \"peak\": \"32\",\n \"Percent of Peak - PoP\": {\"$divide\": [{ \"$multiply\": [100, \"&lds_bconf\"] }, 32] }\n },\n {\n \"Metric\": \"Instr Cache Hit Rate\",\n \"Value\": \"&l1i_hitRate_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l1i_hitRate_val\"\n }, \n {\n \"Metric\": \"Instr Cache BW\",\n \"Value\": \"&l1i_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numSQC]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&l1i_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numSQC]}] }\n },\n {\n \"Metric\": \"Scalar L1D Cache Hit Rate\",\n \"Value\": \"&l1k_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l1k_cacheHits_val\"\n },\n {\n \"Metric\": \"Scalar L1D Cache BW\",\n \"Value\": \"&l1k_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numSQC]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&l1k_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numSQC]}] }\n },\n\n {\n \"Metric\": \"Vector L1D Cache Hit Rate\",\n \"Value\": \"&vecl1_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&vecl1_cacheHits_val\"\n },\n {\n \"Metric\": \"Vector L1D Cache BW\",\n \"Value\": \"&vecl1_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numCU]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&vecl1_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numCU]}] }\n },\n {\n \"Metric\": \"L2 Cache Hit Rate\",\n \"Value\": \"&l2_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l2_cacheHits_val\"\n },\n {\n \"Metric\": \"L2-Fabric Read BW\",\n \"Value\": \"&eaReadBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": \"$hbmBW\",\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&eaReadBW_val\"] }, $hbmBW] }\n },\n {\n \"Metric\": \"L2-Fabric Write BW\",\n \"Value\": \"&eaWriteBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": \"$hbmBW\",\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&eaWriteBW_val\"] }, $hbmBW] }\n },\n {\n \"Metric\": \"L2-Fabric Read Latency\",\n \"Value\": \"&eaReadLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n },\n {\n \"Metric\": \"L2-Fabric Write Latency\",\n \"Value\": \"&eaWriteLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_LEVEL_WAVES\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"waveOcc_val\": {\n \"$avg\": { \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\"] }\n },\n \"waveOcc_pop\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\"] },{ \"$multiply\": [$maxWavesPerCU, $numCU] }] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave Occupancy\",\n \"Value\": \"&waveOcc_val\",\n \"Unit\": \"Wavefronts\",\n \"peak\": { \"$multiply\": [$maxWavesPerCU, $numCU] },\n \"Percent of Peak - PoP\": { \"$multiply\": [100, \"&waveOcc_pop\"] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n ]\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_IFETCH_LEVEL\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"instrFetchBW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQ_IFETCH\", { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }, 32] }\n },\n \"instrFetchLat_val\": {\n \"$avg\": { \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\"] }\n }\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Instr Fetch BW\",\n \"Value\": \"&instrFetchBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 32] }, $numSQC]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&instrFetchBW_val\"]}, { \"$multiply\": [$numSQC, { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 32] }] }] }\n },\n {\n \"Metric\": \"Instr Fetch Latency\",\n \"Value\": \"&instrFetchLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n ]\n }}\n\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"System Speed-of-Light\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"valu_flops_val\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }] }] }\n ]}\n ,{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }]\n }},\n \n \"valu_intOps_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] }] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n },\n \n \"mfma_flops_f16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_bf16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f32_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f64_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_i8_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \n \n \"salu_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2] }] }\n },\n \n \"valu_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2] }] }\n },\n \n \"mfma_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2, 4] }] }\n },\n \n \"lds_bconf\": {\n \"$avg\": {\"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n } \n },\n \n \"lds_bw\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks2\"}\n ]}, \n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]}\n },\n \n \"lds_bw_pop\": {\n \"$avg\": {\"$divide\": [\n {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks2\"}\n ]}, \n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]}, \n {\"$multiply\": [$sclk2, $numCU2, 0.00128]}\n ]}\n },\n \n \"unpredthreads_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \n \"ipcIssue_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\", \"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"eaWriteLat_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\" , 0]},\n { \"$divide\": [\"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\"] },\n null \n ]\n }\n },\n \"eaReadLat_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\" , 0]},\n { \"$divide\": [\"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\"] },\n null \n ]\n }\n },\n \"eaWriteBW_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64] }, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n }, \n \"eaReadBW_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32] }, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] }] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n },\n \"l2_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }, 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }] },\n null \n ]\n }\n },\n \"vecl1_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]},\n { \"$subtract\": [100, { \"$divide\": [{ \"$multiply\": [100, { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }] }, \"&TCP_TOTAL_CACHE_ACCESSES_sum\"] }] },\n null\n ]\n }\n },\n \"vecl1_BW_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \"l1k_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\"]} , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\"]}] },\n null\n ]\n }\n },\n \"l1i_hitRate_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\"]}] }\n },\n \"l1i_BW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQC_ICACHE_REQ\",{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }, 64] }\n },\n \"l1k_BW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQC_DCACHE_REQ\", { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }, 64] }\n }\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"VALU FLOPs\",\n \"Value\": \"&valu_flops_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 64, 2 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&valu_flops_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 64, 2 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"VALU IOPs\",\n \"Value\": \"&valu_intOps_val\",\n \"Unit\": \"GIOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 64, 2 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&valu_intOps_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 64, 2 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (BF16)\",\n \"Value\": \"&mfma_flops_bf16_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 512 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_bf16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 512 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F16)\",\n \"Value\": \"&mfma_flops_f16_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 1024 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 1024 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F32)\",\n \"Value\": \"&mfma_flops_f32_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 256 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f32_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 256 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F64)\",\n \"Value\": \"&mfma_flops_f64_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 256 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f64_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 256 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA IOPs (Int8)\",\n \"Value\": \"&mfma_flops_i8_val\",\n \"Unit\": \"GIOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 1024 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_i8_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 1024 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"Active CUs\",\n \"Value\": $numActiveCUs2,\n \"Unit\": \"CUs\",\n \"peak\": $numCU2,\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, $numActiveCUs2] }, $numCU2]}\n },\n \n {\n \"Metric\": \"SALU Util\",\n \"Value\": \"&salu_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&salu_val\"\n },\n {\n \"Metric\": \"VALU Util\",\n \"Value\": \"&valu_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&valu_val\"\n },\n {\n \"Metric\": \"MFMA Util\",\n \"Value\": \"&mfma_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&mfma_val\"\n },\n {\n \"Metric\": \"VALU Active Threads/Wave\",\n \"Value\": \"&unpredthreads_val\",\n \"Unit\": \"Threads\",\n \"peak\": 64,\n \"Percent of Peak - PoP\": { \"$multiply\": [\"&unpredthreads_val\", 1.5625]}\n },\n {\n \"Metric\": \"IPC - Issue\",\n \"Value\": \"&ipcIssue_val\",\n \"Unit\": \"Instr/cycle\",\n \"peak\": 5,\n \"Percent of Peak - PoP\": {\"$divide\": [{ \"$multiply\": [100, \"&ipcIssue_val\"] }, 5] }\n },\n {\n \"Metric\": \"LDS BW\",\n \"Value\": \"&lds_bw\",\n \"Unit\": \"GB/sec\",\n \"peak\": {\"$multiply\": [$sclk2, $numCU2, 0.128]},\n \"Percent of Peak - PoP\": \"&lds_bw_pop\"\n },\n {\n \"Metric\": \"LDS Bank Conflict\",\n \"Value\": \"&lds_bconf\",\n \"Unit\": \"Conflicts/access\",\n \"peak\": \"32\",\n \"Percent of Peak - PoP\": {\"$divide\": [{ \"$multiply\": [100, \"&lds_bconf\"] }, 32] }\n },\n {\n \"Metric\": \"Instr Cache Hit Rate\",\n \"Value\": \"&l1i_hitRate_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l1i_hitRate_val\"\n }, \n {\n \"Metric\": \"Instr Cache BW\",\n \"Value\": \"&l1i_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numSQC2]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&l1i_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numSQC2]}] }\n },\n {\n \"Metric\": \"Scalar L1D Cache Hit Rate\",\n \"Value\": \"&l1k_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l1k_cacheHits_val\"\n },\n {\n \"Metric\": \"Scalar L1D Cache BW\",\n \"Value\": \"&l1k_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numSQC2]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&l1k_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numSQC2]}] }\n },\n\n {\n \"Metric\": \"Vector L1D Cache Hit Rate\",\n \"Value\": \"&vecl1_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&vecl1_cacheHits_val\"\n },\n {\n \"Metric\": \"Vector L1D Cache BW\",\n \"Value\": \"&vecl1_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numCU2]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&vecl1_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numCU2]}] }\n },\n {\n \"Metric\": \"L2 Cache Hit Rate\",\n \"Value\": \"&l2_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l2_cacheHits_val\"\n }, \n {\n \"Metric\": \"L2-Fabric Read BW\",\n \"Value\": \"&eaReadBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": \"$hbmBW2\",\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&eaReadBW_val\"] }, $hbmBW2] }\n },\n {\n \"Metric\": \"L2-Fabric Write BW\",\n \"Value\": \"&eaWriteBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": \"$hbmBW2\",\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&eaWriteBW_val\"] }, $hbmBW2] }\n },\n {\n \"Metric\": \"L2-Fabric Read Latency\",\n \"Value\": \"&eaReadLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n },\n {\n \"Metric\": \"L2-Fabric Write Latency\",\n \"Value\": \"&eaWriteLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n }\n \n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_LEVEL_WAVES\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"System Speed-of-Light\"}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"waveOcc_val\": {\n \"$avg\": { \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\"] }\n },\n \"waveOcc_pop\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\"] },{ \"$multiply\": [$maxWavesPerCU2, $numCU2] }] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave Occupancy\",\n \"Value\": \"&waveOcc_val\",\n \"Unit\": \"Wavefronts\",\n \"peak\": { \"$multiply\": [$maxWavesPerCU2, $numCU2] },\n \"Percent of Peak - PoP\": { \"$multiply\": [100, \"&waveOcc_pop\"] }\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n ]\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_IFETCH_LEVEL\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"System Speed-of-Light\"}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"instrFetchBW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQ_IFETCH\", { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }, 32] }\n },\n \"instrFetchLat_val\": {\n \"$avg\": { \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\"] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Instr Fetch BW\",\n \"Value\": \"&instrFetchBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 32] }, $numSQC2]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&instrFetchBW_val\"]}, { \"$multiply\": [$numSQC2, { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 32] }] }] }\n },\n {\n \"Metric\": \"Instr Fetch Latency\",\n \"Value\": \"&instrFetchLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]\n }}\n\n ]);", - "type": "table" - } - ], - "title": "Speed of Light", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Metric 1": 0, - "Metric 2": 7, - "Percent of Peak - PoP 1": 5, - "Percent of Peak - PoP 2": 6, - "Unit 1": 8, - "Unit 2": 9, - "Value 1": 1, - "Value 2": 2, - "peak 1": 3, - "peak 2": 4 - }, - "renameByName": { - "Percent of Peak - PoP": "Pct-of-Peak", - "Percent of Peak - PoP 1": "Pct-of-Peak (Current)", - "Percent of Peak - PoP 2": "Pct-of-Peak (Baseline)", - "Unit": "", - "Value": "Avg", - "Value 1": "Avg (Current)", - "Value 2": "Avg (Baseline)", - "peak": "Theoretical Max", - "peak 1": "Theoretical Max (Current)", - "peak 2": "Theoretical Max (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Dispatch ID" - }, - "properties": [ - { - "id": "custom.width", - "value": 126 - } - ] - } - ] - }, - "gridPos": { - "h": 29, - "w": 4, - "x": 16, - "y": 2 - }, - "id": 175, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Dispatch ID\": \"&Index\",\n \"Kernel Name\": \"&KernelName\"\n }},\n {\"$sort\": {\n \"Dispatch ID\": 1\n }}\n],\n{ allowDiskUse: true }\n);", - "type": "table" - } - ], - "title": "Dispatch IDs - Current", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": {}, - "renameByName": { - "_id": "Dispatch ID" - } - } - } - ], - "type": "table" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Dispatch ID" - }, - "properties": [ - { - "id": "custom.width", - "value": 127 - } - ] - } - ] - }, - "gridPos": { - "h": 29, - "w": 4, - "x": 20, - "y": 2 - }, - "id": 215, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "tlh8EwUnk" - }, - "rawQuery": true, - "refId": "A", - "target": "$Workload2.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Dispatch ID\": \"&Index\",\n \"Kernel Name\": \"&KernelName\"\n }},\n {\"$sort\": {\n \"Dispatch ID\": 1\n }}\n]);", - "type": "table" - } - ], - "title": "Dispatch IDs - Baseline", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": {}, - "renameByName": { - "_id": "Dispatch ID" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "System Speed-of-Light", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 2 - }, - "id": 36, - "panels": [ - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "fillOpacity": 80, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineWidth": 1 - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - } - ] - }, - "unit": "µs" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 24, - "x": 0, - "y": 3 - }, - "id": 157, - "options": { - "bucketOffset": 0, - "legend": { - "calcs": [], - "displayMode": "hidden", - "placement": "bottom" - } - }, - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "u5Z2zJhnk" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"elapsedTime1\": {\n \"$divide\": [{\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}, 1000]\n }\n }},\n\n {\"$project\": {\n \"_id\": 0,\n \"elapsedTime1\": 1\n }}\n]);", - "type": "table" - } - ], - "title": "Kernel Time Histogram", - "transparent": true, - "type": "histogram" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "transparent" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "TotalDuration" - }, - "properties": [ - { - "id": "unit", - "value": "ns" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg Duration" - }, - "properties": [ - { - "id": "unit", - "value": "ns" - }, - { - "id": "custom.width", - "value": 107 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "LDS" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 110 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L1 Cache" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 95 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2 Cache" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 123 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "HBM BW " - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Calls" - }, - "properties": [ - { - "id": "custom.width", - "value": 69 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Name" - }, - "properties": [ - { - "id": "custom.width", - "value": 165 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Total Duration" - }, - "properties": [ - { - "id": "custom.width", - "value": 126 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F16)" - }, - "properties": [ - { - "id": "custom.width", - "value": 143 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (BF16)" - }, - "properties": [ - { - "id": "custom.width", - "value": 155 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F32)" - }, - "properties": [ - { - "id": "custom.width", - "value": 146 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F64)" - }, - "properties": [ - { - "id": "custom.width", - "value": 146 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Throughput" - }, - "properties": [ - { - "id": "unit", - "value": "gflops" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Total FLOPs" - }, - "properties": [ - { - "id": "decimals", - "value": 0 - }, - { - "id": "custom.width", - "value": 141 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "VALU FLOPs" - }, - "properties": [ - { - "id": "decimals", - "value": 0 - }, - { - "id": "custom.width", - "value": 130 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (HBM)" - }, - "properties": [ - { - "id": "custom.width", - "value": 89 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (L2 Cache)" - }, - "properties": [ - { - "id": "custom.width", - "value": 103 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (L1 Cache)" - }, - "properties": [ - { - "id": "custom.width", - "value": 114 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Performance" - }, - "properties": [ - { - "id": "custom.width", - "value": 144 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Peak FLOPs" - }, - "properties": [ - { - "id": "unit", - "value": "gflops" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "HBM" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - } - ] - } - ] - }, - "gridPos": { - "h": 12, - "w": 24, - "x": 0, - "y": 12 - }, - "id": 213, - "interval": "2h", - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [ - { - "desc": true, - "displayName": "L1 Cache (Bytes)" - } - ] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "HV80ot2nz" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n { \"$group\": { \n \"_id\": \"&KernelName\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n\n \"Throughput\": {\n \"$avg\": { \"$divide\": [\n \n {\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]},\n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]}\n },\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"LDS_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 128 ]} \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n },\n \"hbm_bw\": {\n \"$avg\": {\n \"$divide\": [\n {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n },\n {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}\n ]\n\n }\n }\n\n }},\n \n {\"$sort\": { \"TotalDuration\": -1 }},\n \n { \"$limit\": $TopN },\n\n {\"$addFields\": {\n \"ai_L1\": { \"$cond\": [\n {\"$ne\": [\"&L1cache_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"]},\n \"\"\n ]},\n \"ai_L2\": { \"$cond\": [\n {\"$ne\": [\"&L2cache_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"]},\n \"\"\n ]},\n \"ai_hbm\": { \"$cond\": [\n {\"$ne\": [\"&hbm_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"]},\n \"\"\n ]}\n }}\n]);", - "type": "table" - } - ], - "title": "Top Kernels", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "AvgDuration": 5, - "Calls": 1, - "L1cache_data": 16, - "L2cache_data": 17, - "LDS_data": 15, - "Throughput": 2, - "TotalDuration": 4, - "_id": 0, - "ai_L1": 6, - "ai_L2": 7, - "ai_hbm": 8, - "hbm_bw": 3, - "hbm_data": 18, - "mfma_flops_bf16": 12, - "mfma_flops_f16": 11, - "mfma_flops_f32": 13, - "mfma_flops_f64": 14, - "total_flops": 9, - "valu_flops": 10 - }, - "renameByName": { - "AvgDuration": "Avg Duration", - "Calls": "", - "L1cache_data": "Vector L1D Cache", - "L2cache_data": "L2 Cache", - "LDS_data": "LDS", - "Throughput": "Performance", - "TotalDuration": "Total Duration", - "_id": "Name", - "ai_L1": "AI (Vector L1D Cache)", - "ai_L2": "AI (L2 Cache)", - "ai_hbm": "AI (HBM)", - "hbm_bw": "HBM BW ", - "hbm_data": "HBM", - "mfma_flops_bf16": "MFMA FLOPs (BF16)", - "mfma_flops_f16": "MFMA FLOPs (F16)", - "mfma_flops_f32": "MFMA FLOPs (F32)", - "mfma_flops_f64": "MFMA FLOPs (F64)", - "peak_flops": "Peak FLOPs", - "total_flops": "Total FLOPs", - "valu_flops": "VALU FLOPs" - } - } - } - ], - "type": "table" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "transparent" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "TotalDuration" - }, - "properties": [ - { - "id": "unit", - "value": "ns" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg Duration" - }, - "properties": [ - { - "id": "unit", - "value": "ns" - }, - { - "id": "custom.width", - "value": 138 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "LDS " - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 110 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L1 Cache" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 95 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2 Cache" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 87 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "HBM BW " - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Calls" - }, - "properties": [ - { - "id": "custom.width", - "value": 69 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Name" - }, - "properties": [ - { - "id": "custom.width", - "value": 165 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Total Duration" - }, - "properties": [ - { - "id": "custom.width", - "value": 153 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F16)" - }, - "properties": [ - { - "id": "custom.width", - "value": 143 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (BF16)" - }, - "properties": [ - { - "id": "custom.width", - "value": 155 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F32)" - }, - "properties": [ - { - "id": "custom.width", - "value": 146 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F64)" - }, - "properties": [ - { - "id": "custom.width", - "value": 146 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Throughput" - }, - "properties": [ - { - "id": "unit", - "value": "gflops" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Total FLOPs" - }, - "properties": [ - { - "id": "decimals", - "value": 0 - }, - { - "id": "custom.width", - "value": 141 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "VALU FLOPs" - }, - "properties": [ - { - "id": "decimals", - "value": 0 - }, - { - "id": "custom.width", - "value": 130 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (HBM)" - }, - "properties": [ - { - "id": "custom.width", - "value": 89 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (L2 Cache)" - }, - "properties": [ - { - "id": "custom.width", - "value": 103 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (L1 Cache)" - }, - "properties": [ - { - "id": "custom.width", - "value": 114 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "LDS (Bytes)" - }, - "properties": [ - { - "id": "custom.width", - "value": 98 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "HBM" - }, - "properties": [ - { - "id": "custom.width", - "value": 124 - }, - { - "id": "unit", - "value": "decbytes" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Dispatch" - }, - "properties": [ - { - "id": "custom.width", - "value": 108 - } - ] - } - ] - }, - "gridPos": { - "h": 12, - "w": 24, - "x": 0, - "y": 24 - }, - "id": 251, - "interval": "2h", - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "HV80ot2nz" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n { \"$group\": { \n \"_id\": \"&Index\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n\n \"Throughput\": {\n \"$avg\": { \"$divide\": [\n \n {\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]},\n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]}\n },\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"LDS_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 128]\n } \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n },\n\n \"hbm_bw\": {\n \"$avg\": {\n \"$divide\": [\n {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n },\n {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}\n ]\n\n }\n }\n\n }},\n \n {\"$sort\": { \"TotalDuration\": -1 }},\n { \"$limit\": $TopN },\n\n {\"$addFields\": {\n \"ai_L1\": { \"$cond\": [\n {\"$ne\": [\"&L1cache_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"]},\n \"\"\n ]},\n \"ai_L2\": { \"$cond\": [\n {\"$ne\": [\"&L2cache_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"]},\n \"\"\n ]},\n \"ai_hbm\": { \"$cond\": [\n {\"$ne\": [\"&hbm_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"]},\n \"\"\n ]}\n\n }}\n]);", - "type": "table" - } - ], - "title": "Top Dispatches", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "AvgDuration": 5, - "Calls": 1, - "L1cache_data": 16, - "L2cache_data": 17, - "LDS_data": 15, - "Throughput": 2, - "TotalDuration": 4, - "_id": 0, - "ai_L1": 6, - "ai_L2": 7, - "ai_hbm": 8, - "hbm_bw": 3, - "hbm_data": 18, - "mfma_flops_bf16": 12, - "mfma_flops_f16": 11, - "mfma_flops_f32": 13, - "mfma_flops_f64": 14, - "peak_flops": 19, - "total_flops": 9, - "valu_flops": 10 - }, - "renameByName": { - "AvgDuration": "Avg Duration", - "Calls": "", - "L1cache_data": "Vector L1D Cache", - "L2cache_data": "L2 Cache", - "LDS_data": "LDS ", - "Throughput": "Performance", - "TotalDuration": "Total Duration", - "_id": "Dispatch", - "ai_L1": "AI (Vector L1D Cache)", - "ai_L2": "AI (L2 Cache)", - "ai_hbm": "AI (HBM)", - "hbm_bw": "HBM BW ", - "hbm_data": "HBM", - "mfma_flops_bf16": "MFMA FLOPs (BF16)", - "mfma_flops_f16": "MFMA FLOPs (F16)", - "mfma_flops_f32": "MFMA FLOPs (F32)", - "mfma_flops_f64": "MFMA FLOPs (F64)", - "total_flops": "Total FLOPs", - "valu_flops": "VALU FLOPs" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Kernel Statistics", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 3 - }, - "id": 40, - "panels": [ - { - "description": "All transaction units default to Billion, when per-sec norm is used", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 13, - "w": 24, - "x": 0, - "y": 4 - }, - "id": 285, - "options": { - "addAllIDs": false, - "captureMappings": false, - "eventAutoComplete": true, - "eventSource": "options.animateLogo(svgmap, data);\r\nconsole.log(\"Starting render\");\r\nlet buff = data.series[0].fields[2].values.buffer;\r\nlet valueCount = buff.length;\r\nconsole.log(\"The buff is \", valueCount, \" long\");\r\n\r\nsvgmap.wave_life_.text(buff[0]);\r\nsvgmap.active_cu_.text(buff[1]);\r\nsvgmap.salu_.text(buff[2]);\r\nsvgmap.smem_.text(buff[3]);\r\nsvgmap.valu_.text(buff[4]);\r\nsvgmap.mfma_.text(buff[5]);\r\nsvgmap.vmem_.text(buff[6]);\r\nsvgmap.lds_.text(buff[7]);\r\nsvgmap.gws_.text(buff[8]);\r\nsvgmap.br_.text(buff[9]);\r\nsvgmap.vgpr_.text(buff[10]);\r\nsvgmap.sgpr_.text(buff[11]);\r\nsvgmap.lds_alloc_.text(buff[12]);\r\nsvgmap.scratch_alloc_.text(buff[13]);\r\nsvgmap.wavefronts_.text(buff[14]);\r\nsvgmap.workgroups_.text(buff[15]);\r\nsvgmap.lds_req_.text(buff[16]);\r\nsvgmap.il1_fetch_.text(buff[17]);\r\nsvgmap.il1_hit_.text(buff[18]);\r\nsvgmap.il1_l2_rd_.text(buff[19]);\r\nsvgmap.sl1_rd_.text(buff[20]);\r\nsvgmap.sl1_hit_.text(buff[21]);\r\nsvgmap.sl1_l2_rd_.text(buff[22]);\r\nsvgmap.sl1_l2_wr_.text(buff[23]);\r\nsvgmap.sl1_l2_atom_.text(buff[24]);\r\nsvgmap.vl1_rd_.text(buff[25]);\r\nsvgmap.vl1_wr_.text(buff[26]);\r\nsvgmap.vl1_atom_.text(buff[27]);\r\nsvgmap.vl1_hit_.text(buff[28]);\r\nsvgmap.vl1_lat_.text(buff[29]);\r\nsvgmap.vl1_l2_rd_.text(buff[30]);\r\nsvgmap.vl1_l2_wr_.text(buff[31]);\r\nsvgmap.vl1_l2_atom_.text(buff[32]);\r\nsvgmap.l2_rd_.text(buff[33]);\r\nsvgmap.l2_wr_.text(buff[34])\r\nsvgmap.l2_atom_.text(buff[35]);\r\nsvgmap.l2_hit_.text(buff[36]);\r\nsvgmap.l2_rd_lat_.text(buff[37]);\r\nsvgmap.l2_wr_lat_.text(buff[38]);\r\nsvgmap.fabric_rd_lat_.text(buff[39]);\r\nsvgmap.fabric_wr_lat_.text(buff[40]);\r\nsvgmap.fabric_atom_lat_.text(buff[41]);\r\nsvgmap.l2_fabric_rd_.text(buff[42]);\r\nsvgmap.l2_fabric_wr_.text(buff[43]);\r\nsvgmap.l2_fabric_atom_.text(buff[44]);\r\nsvgmap.hbm_rd_.text(buff[45]);\r\nsvgmap.hbm_wr_.text(buff[46]);\r\nsvgmap.lds_util_.text(buff[47]);\r\nsvgmap.vl1_coales_.text(buff[48]);\r\nsvgmap.vl1_stall_.text(buff[49]);\r\nsvgmap.wave_occ_.text(buff[50]);\r\nsvgmap.lds_lat_.text(buff[51]);\r\nsvgmap.il1_lat_.text(buff[52]);\r\nsvgmap.sl1_lat_.text(buff[53]);\r\nsvgmap.gds_req_.text(buff[54]);", - "initAutoComplete": true, - "initSource": "options.animateLogo = (svgmap, data) => {\r\n \r\n}\r\n ", - "svgMappings": [ - { - "mappedName": "wave_life_", - "svgId": "wave_life" - }, - { - "mappedName": "wave_occ_", - "svgId": "wave_occ" - }, - { - "mappedName": "salu_", - "svgId": "salu" - }, - { - "mappedName": "smem_", - "svgId": "smem" - }, - { - "mappedName": "valu_", - "svgId": "valu" - }, - { - "mappedName": "mfma_", - "svgId": "mfma" - }, - { - "mappedName": "vmem_", - "svgId": "vmem" - }, - { - "mappedName": "lds_", - "svgId": "lds" - }, - { - "mappedName": "gws_", - "svgId": "gws" - }, - { - "mappedName": "br_", - "svgId": "br" - }, - { - "mappedName": "active_cu_", - "svgId": "active_cu" - }, - { - "mappedName": "vgpr_", - "svgId": "vgpr" - }, - { - "mappedName": "sgpr_", - "svgId": "sgpr" - }, - { - "mappedName": "lds_alloc_", - "svgId": "lds_alloc" - }, - { - "mappedName": "scratch_alloc_", - "svgId": "scratch_alloc" - }, - { - "mappedName": "wavefronts_", - "svgId": "wavefronts" - }, - { - "mappedName": "workgroups_", - "svgId": "workgroups" - }, - { - "mappedName": "lds_req_", - "svgId": "lds_req" - }, - { - "mappedName": "vl1_wr_", - "svgId": "vl1_wr" - }, - { - "mappedName": "vl1_atom_", - "svgId": "vl1_atom" - }, - { - "mappedName": "sl1_rd_", - "svgId": "sl1_rd" - }, - { - "mappedName": "il1_fetch_", - "svgId": "il1_fetch" - }, - { - "mappedName": "lds_lat_", - "svgId": "lds_lat" - }, - { - "mappedName": "lds_bw_", - "svgId": "lds_bw" - }, - { - "mappedName": "lds_util_", - "svgId": "lds_util" - }, - { - "mappedName": "vl1_hit_", - "svgId": "vl1_hit" - }, - { - "mappedName": "vl1_lat_", - "svgId": "vl1_lat" - }, - { - "mappedName": "vl1_coales_", - "svgId": "vl1_coales" - }, - { - "mappedName": "vl1_stall_", - "svgId": "vl1_stall" - }, - { - "mappedName": "sl1_hit_", - "svgId": "sl1_hit" - }, - { - "mappedName": "sl1_lat_", - "svgId": "sl1_lat" - }, - { - "mappedName": "il1_hit_", - "svgId": "il1_hit" - }, - { - "mappedName": "il1_lat_", - "svgId": "il1_lat" - }, - { - "mappedName": "sl1_l2_rd_", - "svgId": "sl1_l2_rd" - }, - { - "mappedName": "sl1_l2_wr_", - "svgId": "sl1_l2_wr" - }, - { - "mappedName": "sl1_l2_atom_", - "svgId": "sl1_l2_atom" - }, - { - "mappedName": "il1_l2_rd_", - "svgId": "il1_l2_rd" - }, - { - "mappedName": "sl1_l2_rd_", - "svgId": "sl1_l2_rd" - }, - { - "mappedName": "sl1_l2_wr_", - "svgId": "sl1_l2_wr" - }, - { - "mappedName": "sl1_l2_atom_", - "svgId": "sl1_l2_atom" - }, - { - "mappedName": "l2_rd_", - "svgId": "l2_rd" - }, - { - "mappedName": "l2_wr_", - "svgId": "l2_wr" - }, - { - "mappedName": "l2_atom_", - "svgId": "l2_atom" - }, - { - "mappedName": "l2_hit_", - "svgId": "l2_hit" - }, - { - "mappedName": "l2_rd_lat_", - "svgId": "l2_rd_lat" - }, - { - "mappedName": "l2_wr_lat_", - "svgId": "l2_wr_lat" - }, - { - "mappedName": "l2_fabric_rd_", - "svgId": "l2_fabric_rd" - }, - { - "mappedName": "l2_fabric_wr_", - "svgId": "l2_fabric_wr" - }, - { - "mappedName": "l2_fabric_atom_", - "svgId": "l2_fabric_atom" - }, - { - "mappedName": "fabric_rd_lat_", - "svgId": "fabric_rd_lat" - }, - { - "mappedName": "fabric_wr_lat_", - "svgId": "fabric_wr_lat" - }, - { - "mappedName": "fabric_atom_lat_", - "svgId": "fabric_atom_lat" - }, - { - "mappedName": "fabric_hbm_rd_", - "svgId": "fabric_hbm_rd" - }, - { - "mappedName": "fabric_hbm_wr_", - "svgId": "fabric_hbm_wr" - }, - { - "mappedName": "vl1_rd_", - "svgId": "vl1_rd" - }, - { - "mappedName": "vl1_l2_rd_", - "svgId": "vl1_l2_rd" - }, - { - "mappedName": "vl1_l2_wr_", - "svgId": "vl1_l2_wr" - }, - { - "mappedName": "vl1_l2_atom_", - "svgId": "vl1_l2_atom" - }, - { - "mappedName": "hbm_rd_", - "svgId": "hbm_rd" - }, - { - "mappedName": "hbm_wr_", - "svgId": "hbm_wr" - } - ], - "svgSource": "\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Wave Occupancy\r\n \r\n Wave Life\r\n \r\n \r\n \r\n xGMI /\r\n PCIe\r\n \r\n GMI\r\n \r\n HBM\r\n \r\n Fabric\r\n \r\n \r\n SALU:\r\n 00000\r\n \r\n \r\n SMEM:\r\n 00000\r\n \r\n \r\n VALU:\r\n 00000\r\n \r\n \r\n MFMA:\r\n 00000\r\n \r\n \r\n VMEM:\r\n 00000\r\n \r\n \r\n LDS:\r\n 00000\r\n \r\n \r\n GWS:\r\n 00000\r\n \r\n \r\n Br:\r\n 00000\r\n \r\n \r\n cycles\r\n Rd:\r\n 00000\r\n \r\n \r\n cycles\r\n Wr:\r\n 00000\r\n \r\n \r\n cycles\r\n Atomic:\r\n 00000\r\n \r\n \r\n Rd:\r\n 00000\r\n \r\n \r\n Wr:\r\n \r\n \r\n 00000\r\n \r\n \r\n Atomic:\r\n 00000\r\n \r\n \r\n cycles\r\n Lat:\r\n 00000\r\n \r\n \r\n %\r\n Hit:\r\n 00000\r\n \r\n \r\n cycles\r\n Lat:\r\n 00000\r\n \r\n \r\n %\r\n Hit:\r\n 00000\r\n \r\n \r\n cycles\r\n Lat:\r\n 00000\r\n 00000\r\n Rd:\r\n 00000\r\n Wr:\r\n 00000\r\n Req:\r\n 00000\r\n 00000\r\n 00000\r\n Rd:\r\n Wr:\r\n Atomic:\r\n per-GCD\r\n cycles\r\n \r\n \r\n %\r\n Hit:\r\n 00000\r\n \r\n \r\n cycles\r\n Rd:\r\n 00000\r\n \r\n \r\n cycles\r\n Wr:\r\n 00000\r\n Wave 0 Instr buff\r\n Wave N-1 Instr buff\r\n Active CUs\r\n \r\n \r\n %\r\n Hit:\r\n 00000\r\n \r\n \r\n cycles\r\n Lat:\r\n 00000\r\n \r\n \r\n %\r\n Util:\r\n 00000\r\n \r\n \r\n %\r\n Coales:\r\n 00000\r\n Exec\r\n Instr Buff\r\n Instr Dispatch\r\n LDS\r\n Vector L1 Cache\r\n Scalar L1D Cache\r\n Instr L1 Cache\r\n L2 Cache\r\n 00000\r\n Req:\r\n \r\n \r\n %\r\n Stall:\r\n 00000\r\n 00000\r\n Fetch:\r\n 0000000\r\n 00000\r\n 000/000\r\n \r\n Latency\r\n \r\n LDS Alloc:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 00000\r\n \r\n Scratch Alloc:\r\n \r\n 00000\r\n \r\n Wavefronts:\r\n \r\n 00000\r\n \r\n Workgroups:\r\n \r\n 00000\r\n \r\n VGPRs:\r\n \r\n 00000\r\n \r\n SGPRs:\r\n \r\n 00000\r\n \r\n \r\n 00000\r\n Rd:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 00000\r\n 00000\r\n 00000\r\n Rd:\r\n Wr:\r\n Atomic:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 00000\r\n 00000\r\n 00000\r\n Rd:\r\n Wr:\r\n Atomic:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 00000\r\n 00000\r\n 00000\r\n Rd:\r\n Wr:\r\n Atomic:\r\n \r\n \r\n \r\n Latency\r\n \r\n \r\n \r\n \r\n Text is not SVG - cannot display\r\n \r\n \r\n" - }, - "pluginVersion": "8.4.0", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "rawQuery": true, - "refId": "pmc_perf", - "target": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"wave_life\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [\"&SQ_WAVES\", 0] },\n { \"$multiply\": [4, { \"$divide\": [\"&SQ_WAVE_CYCLES\", \"&SQ_WAVES\"] }] },\n null\n ]\n }\n },\n \"salu\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SALU\", \"&denom\" ] }\n },\n \"smem\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SMEM\", \"&denom\" ] }\n },\n \"valu\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_VALU\", \"&denom\"] }\n },\n \"mfma\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_MFMA\", \"&denom\"] }\n },\n \"vmem\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_VMEM\", \"&denom\"] }\n },\n \"lds_instr\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_LDS\", \"&denom\"] }\n },\n \"gws\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_GDS\", \"&denom\"] }\n },\n \"br\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_BRANCH\", \"&denom\"] }\n },\n \"vgpr\": {\n \"$avg\": \"&arch_vgpr\"\n },\n \"sgpr\": {\n \"$avg\": \"&sgpr\"\n },\n \"lds_alloc\": {\n \"$avg\": \"&lds\"\n },\n \"scratch_alloc\": {\n \"$avg\": \"&scr\"\n },\n \"wavefronts\": {\n \"$avg\": \"&SPI_CSN_WAVE\"\n },\n \"workgroups\": {\n \"$avg\": \"&SPI_CSN_NUM_THREADGROUPS\"\n },\n \"lds_req\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_LDS\", \"&denom\"] }\n }, \n \"lds_util\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [ 100, \"&SQ_LDS_IDX_ACTIVE\" ]}, \n {\"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}\n ]}\n },\n \"vl1_rd\": {\n \"$avg\": { \"$divide\": [\"&TCP_TOTAL_READ_sum\", \"&denom\"] }\n },\n \"vl1_wr\": {\n \"$avg\": { \"$divide\": [\"&TCP_TOTAL_WRITE_sum\", \"&denom\"] }\n },\n \"vl1_atom\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"] }\n },\n \"il1_fetch\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n \"il1_hit\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_REQ\"] }\n },\n \"il1_l2_req\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_INST_REQ\", \"&denom\"] }\n },\n \"sl1_rd\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n \"sl1_hit\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQC_DCACHE_REQ\", 0]},\n { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_REQ\"] },\n \"\"\n ]\n }\n},\n \"sl1_l2_rd\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n \"sl1_l2_wr\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n \"sl1_l2_atom\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n \"vl1_hit\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0] },\n { \"$subtract\": [100, { \"$divide\": [{ \"$multiply\": [100, { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }] }, \"&TCP_TOTAL_CACHE_ACCESSES_sum\"] }] },\n null\n ]\n }\n },\n \"vl1_lat\": {\n \"$avg\": { \n \"$cond\": [\n { \"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0] },\n { \"$divide\": [\"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\"] },\n null\n ]\n }\n },\n \"vl1_coales\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_TOTAL_ACCESSES_sum\", 0] },\n { \"$divide\": [{\"$multiply\": [\"&TA_TOTAL_WAVEFRONTS_sum\", 64, 100]}, {\"$multiply\": [\"&TCP_TOTAL_ACCESSES_sum\", 4]}] },\n 0\n ]\n }\n },\n \"vl1_stall\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n \"\"\n ]\n }},\n \"vl1_l2_rd\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_READ_REQ_sum\", \"&denom\"] }\n },\n \"vl1_l2_wr\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"vl1_l2_atom\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }\n },\n \"l2_rd\": {\n \"$avg\": { \"$divide\": [\"&TCC_READ_sum\", \"&denom\"] }\n },\n \"l2_wr\": {\n \"$avg\": { \"$divide\": [\"&TCC_WRITE_sum\", \"&denom\"] }\n },\n \"l2_atom\": {\n \"$avg\": { \"$divide\": [\"&TCC_ATOMIC_sum\", \"&denom\"] }\n },\n \"l2_hit\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [{ \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }, 0] },\n { \"$divide\": [{ \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }] },\n null\n ]\n }\n },\n \"l2_rd_lat\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [{ \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }, 0] },\n { \"$divide\": [\"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }] },\n null\n ]\n }\n },\n \"l2_wr_lat\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [{ \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 0] },\n { \"$divide\": [\"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }] },\n null\n ]\n }\n },\n \"fabric_rd_lat\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [\"&TCC_EA_RDREQ_sum\", 0] },\n { \"$divide\": [\"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\"] },\n null\n ]\n }\n },\n \"fabric_wr_lat\": { \n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [\"&TCC_EA_WRREQ_sum\", 0] },\n { \"$divide\": [\"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\"] },\n null\n ]\n }\n },\n \"fabric_atom_lat\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0] },\n { \"$divide\": [\"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\"] },\n null\n ]\n }\n },\n \"l2_fabric_rd\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_RDREQ_sum\", \"&denom\"] }\n },\n \"l2_fabric_wr\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_WRREQ_sum\", \"&denom\"] }\n },\n \"l2_fabric_atom\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_ATOMIC_sum\", \"&denom\"] }\n },\n \"hbm_rd\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\"] }\n },\n \"hbm_wr\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\"] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave Life\",\n \"Alias\": \"wave_life_\",\n \"Value\": { \"$round\": [\"&wave_life\", 0] }\n },\n {\n \"Metric\": \"Active CUs\",\n \"Alias\": \"active_cu_\",\n \"Value\": {\"$concat\": [\"$numActiveCUs\", \"/\", \"$numCU\"]}\n },\n {\n \"Metric\": \"SALU\",\n \"Alias\": \"salu_\",\n \"Value\": { \"$round\": [\"&salu\", 0] }\n },\n {\n \"Metric\": \"SMEM\",\n \"Alias\": \"smem_\",\n \"Value\": { \"$round\": [\"&smem\", 0] }\n },\n {\n \"Metric\": \"VALU\",\n \"Alias\": \"valu_\",\n \"Value\": { \"$round\": [\"&valu\", 0] }\n },\n {\n \"Metric\": \"MFMA\",\n \"Alias\": \"mfma_\",\n \"Value\": { \"$round\": [\"&mfma\", 0] }\n },\n {\n \"Metric\": \"VMEM\",\n \"Alias\": \"vmem_\",\n \"Value\": { \"$round\": [\"&vmem\", 0] }\n },\n {\n \"Metric\": \"LDS\",\n \"Alias\": \"lds_\",\n \"Value\": { \"$round\": [\"&lds_instr\", 0] }\n },\n {\n \"Metric\": \"GWS\",\n \"Alias\": \"gws_\",\n \"Value\": { \"$round\": [\"&gws\", 0] }\n },\n {\n \"Metric\": \"BR\",\n \"Alias\": \"br_\",\n \"Value\": { \"$round\": [\"&br\", 0] }\n },\n {\n \"Metric\": \"VGPR\",\n \"Alias\": \"vgpr_\",\n \"Value\": { \"$round\": [\"&vgpr\", 0] }\n },\n {\n \"Metric\": \"SGPR\",\n \"Alias\": \"sgpr_\",\n \"Value\": { \"$round\": [\"&sgpr\", 0] }\n },\n {\n \"Metric\": \"LDS Allocation\",\n \"Alias\": \"lds_alloc_\",\n \"Value\": { \"$round\": [\"&lds_alloc\", 0] }\n },\n {\n \"Metric\": \"Scratch Allocation\",\n \"Alias\": \"scratch_alloc_\",\n \"Value\": { \"$round\": [\"&scratch_alloc\", 0] }\n },\n {\n \"Metric\": \"Wavefronts\",\n \"Alias\": \"wavefronts_\",\n \"Value\": { \"$round\": [\"&wavefronts\", 0] }\n },\n {\n \"Metric\": \"Workgroups\",\n \"Alias\": \"workgroups_\",\n \"Value\": { \"$round\": [\"&workgroups\", 0] }\n },\n {\n \"Metric\": \"LDS Req\",\n \"Alias\": \"lds_req_\",\n \"Value\": { \"$round\": [\"&lds_req\", 0] }\n },\n {\n \"Metric\": \"IL1 Fetch\",\n \"Alias\": \"il1_fetch_\",\n \"Value\": { \"$round\": [\"&il1_fetch\", 0] }\n },\n {\n \"Metric\": \"IL1 Hit\",\n \"Alias\": \"il1_hit_\",\n \"Value\": { \"$round\": [{ \"$multiply\": [\"&il1_hit\", 100] }, 0] }\n },\n {\n \"Metric\": \"IL1_L2 Rd\",\n \"Alias\": \"il1_l2_req_\",\n \"Value\": { \"$round\": [\"&il1_l2_req\", 0] }\n },\n {\n \"Metric\": \"vL1D Rd\",\n \"Alias\": \"sl1_rd_\",\n \"Value\": { \"$round\": [\"&sl1_rd\", 0] }\n },\n {\n \"Metric\": \"vL1D Hit\",\n \"Alias\": \"sl1_hit_\",\n \"Value\": { \"$round\": [{ \"$multiply\": [\"&sl1_hit\", 100] }, 0] }\n },\n {\n \"Metric\": \"vL1D_L2 Rd\",\n \"Alias\": \"sl1_l2_rd_\",\n \"Value\": { \"$round\": [\"&sl1_l2_rd\", 0] }\n },\n {\n \"Metric\": \"vL1D_L2 Wr\",\n \"Alias\": \"sl1_l2_wr_\",\n \"Value\": { \"$round\": [\"&sl1_l2_wr\", 0] }\n },\n {\n \"Metric\": \"vL1D_L2 Atomic\",\n \"Alias\": \"sl1_l2_atom_\",\n \"Value\": { \"$round\": [\"&sl1_l2_atom\", 0] }\n },\n {\n \"Metric\": \"VL1 Rd\",\n \"Alias\": \"vl1_rd_\",\n \"Value\": { \"$round\": [\"&vl1_rd\", 0] }\n },\n {\n \"Metric\": \"VL1 Wr\",\n \"Alias\": \"vl1_wr_\",\n \"Value\": { \"$round\": [\"&vl1_wr\", 0] }\n },\n {\n \"Metric\": \"VL1 Atomic\",\n \"Alias\": \"vl1_atom_\",\n \"Value\": { \"$round\": [\"&vl1_atom\", 0] }\n },\n {\n \"Metric\": \"VL1 Hit\",\n \"Alias\": \"vl1_hit_\",\n \"Value\": { \"$round\": [\"&vl1_hit\", 0] }\n },\n {\n \"Metric\": \"VL1 Lat\",\n \"Alias\": \"vl1_lat_\",\n \"Value\": { \"$round\": [\"&vl1_lat\", 0] }\n },\n {\n \"Metric\": \"VL1_L2 Rd\",\n \"Alias\": \"vl1_l2_rd_\",\n \"Value\": { \"$round\": [\"&vl1_l2_rd\", 0] }\n },\n {\n \"Metric\": \"VL1_L2 Wr\",\n \"Alias\": \"vl1_l2_wr_\",\n \"Value\": { \"$round\": [\"&vl1_l2_wr\", 0] }\n },\n {\n \"Metric\": \"vL1_L2 Atomic\",\n \"Alias\": \"vl1_l2_atom_\",\n \"Value\": { \"$round\": [\"&vl1_l2_atom\", 0] }\n },\n {\n \"Metric\": \"L2 Rd\",\n \"Alias\": \"l2_rd_\",\n \"Value\": { \"$round\": [\"&l2_rd\", 0] }\n },\n {\n \"Metric\": \"L2 Wr\",\n \"Alias\": \"l2_wr_\",\n \"Value\": { \"$round\": [\"&l2_wr\", 0] }\n },\n {\n \"Metric\": \"L2 Atomic\",\n \"Alias\": \"l2_atom_\",\n \"Value\": { \"$round\": [\"&l2_atom\", 0] }\n },\n {\n \"Metric\": \"L2 Hit\",\n \"Alias\": \"l2_hit_\",\n \"Value\": { \"$round\": [\"&l2_hit\", 0] }\n },\n {\n \"Metric\": \"L2 Rd Lat\",\n \"Alias\": \"l2_rd_lat_\",\n \"Value\": { \"$round\": [\"&l2_rd_lat\", 0] }\n },\n {\n \"Metric\": \"L2 Wr Lat\",\n \"Alias\": \"l2_wr_lat_\",\n \"Value\": { \"$round\": [\"&l2_wr_lat\", 0] }\n },\n {\n \"Metric\": \"Fabric Rd Lat\",\n \"Alias\": \"fabric_rd_lat_\",\n \"Value\": { \"$round\": [\"&fabric_rd_lat\", 0] }\n },\n {\n \"Metric\": \"Fabric Wr Lat\",\n \"Alias\": \"fabric_wr_lat_\",\n \"Value\": { \"$round\": [\"&fabric_wr_lat\", 0] }\n },\n {\n \"Metric\": \"Fabric Atomic Lat\",\n \"Alias\": \"fabric_atom_lat_\",\n \"Value\": { \"$round\": [\"&fabric_atom_lat\", 0] }\n },\n {\n \"Metric\": \"Fabric_L2 Rd\",\n \"Alias\": \"l2_fabric_rd_\",\n \"Value\": { \"$round\": [\"&l2_fabric_rd\", 0] }\n },\n {\n \"Metric\": \"Fabric_L2 Wr\",\n \"Alias\": \"l2_fabric_wr_\",\n \"Value\": { \"$round\": [\"&l2_fabric_wr\", 0] }\n },\n {\n \"Metric\": \"Fabric_l2 Atomic\",\n \"Alias\": \"l2_fabric_atom_\",\n \"Value\": { \"$round\": [\"&l2_fabric_atom\", 0] }\n },\n {\n \"Metric\": \"HBM Rd\",\n \"Alias\": \"hbm_rd_\",\n \"Value\": { \"$round\": [\"&hbm_rd\", 0] }\n },\n {\n \"Metric\": \"HBM Wr\",\n \"Alias\": \"hbm_wr_\",\n \"Value\": { \"$round\": [\"&hbm_wr\", 0] }\n },\n {\n \"Metric\": \"LDS Util\",\n \"Alias\": \"lds_util_\",\n \"Value\": { \"$round\": [\"&lds_util\", 0] }\n },\n {\n \"Metric\": \"VL1 Coalesce\",\n \"Alias\": \"vl1_coales_\",\n \"Value\": { \"$round\": [\"&vl1_coales\", 0]}\n },\n {\n \"Metric\": \"VL1 Stall\",\n \"Alias\": \"vl1_stall_\",\n \"Value\": { \"$round\": [\"&vl1_stall\", 0]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"$array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"$array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_LEVEL_WAVES", - "target": "$Workload1.SQ_LEVEL_WAVES.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"wave_occ\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\",\"&GRBM_GUI_ACTIVE\"] }, $numActiveCUs]}\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave Occupancy\",\n \"Alias\": \"wave_occ_\",\n \"Value\":{ \"$round\": [\"&wave_occ\", 0] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_LDS", - "target": "$Workload1.SQ_INST_LEVEL_LDS.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"lds_lat\": {\n \"$avg\": { \n \"$cond\": [\n { \"$ne\": [\"&SQ_INSTS_LDS\", 0] },\n { \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\"] },\n null\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"LDS Lat\",\n \"Alias\": \"lds_lat_\",\n \"Value\":{ \"$round\": [\"&lds_lat\", 0] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQC_ICACHE_INFLIGHT", - "target": "$Workload1.pmc_perf.aggregate([\n\t{\"$match\": {\n\t\t\"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \t\t\"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \t\t\"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n \t}},\n\t{\"$lookup\": {\n\t\t\"from\": \"SQ_IFETCH_LEVEL\",\n\t\t\"localField\": \"Index\",\n\t\t\"foreignField\": \"Index\",\n\t\t\"as\": \"SQ_IFETCH_LEVEL\",\n\t\t\"pipeline\": [\n\t\t\t{\"$match\": {\n\t\t\t\t\"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \t\t\t\t\"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \t\t\t\t\"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n \t\t\t}},\n\t\t\t{\"$project\":{\n\t\t\t\t\"_id\": 0,\n\t\t\t\t\"SQ_ACCUM_PREV_HIRES\": 1\n\t\t\t}}\n\t\t]\n\t}},\n\t{\"$unwind\":{\n\t\t\"path\": \"&SQ_IFETCH_LEVEL\"\n\t}},\n\t{\"$group\":{\n\t\t\"_id\": null,\n\t\t\"il1_lat\": {\n\t\t\t\"$avg\":{\n\t\t\t\t\"$cond\":[\n\t\t\t\t\t\t{\"$ne\":[\"&SQC_ICACHE_REQ\",0]},\n\t\t\t\t\t\t{\"$divide\":[\"&SQ_IFETCH_LEVEL.SQ_ACCUM_PREV_HIRES\",\"&SQC_ICACHE_REQ\"]},\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t}\n\t\t} \n\t}},\n\t{\"$set\": {\n \t\t\"array\": [\n \t\t{\n \t\t\t\"Metric\": \"IL1 Lat\",\n \t\t\t\"Alias\": \"il1_lat_\",\n \t\t\t\"Value\": { \"$round\": [\"&il1_lat\", 0] }\n \t\t}\n \t\t]\n\t}},\n \t{\"$unwind\": {\n \t\t\"path\": \"&array\"\n \t}},\n \t{\"$replaceRoot\": {\n \t\t\"newRoot\": \"&array\"\n \t}}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQC_DCACHE_INFLIGHT_LEVEL", - "target": "$Workload1.pmc_perf.aggregate([\n\t{\"$match\": {\n\t\t\"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \t\t\"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \t\t\"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n \t}},\n\t{\"$lookup\": {\n\t\t\"from\": \"SQ_IFETCH_LEVEL\",\n\t\t\"localField\": \"Index\",\n\t\t\"foreignField\": \"Index\",\n\t\t\"as\": \"SQ_IFETCH_LEVEL\",\n\t\t\"pipeline\": [\n\t\t\t{\"$match\": {\n\t\t\t\t\"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \t\t\t\t\"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \t\t\t\t\"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n \t\t\t}},\n\t\t\t{\"$project\":{\n\t\t\t\t\"_id\": 0,\n\t\t\t\t\"SQ_ACCUM_PREV_HIRES\": 1\n\t\t\t}}\n\t\t]\n\t}},\n\t{\"$unwind\":{\n\t\t\"path\": \"&SQ_IFETCH_LEVEL\"\n\t}},\n\t{\"$group\":{\n\t\t\"_id\": null,\n\t\t\"sl1_lat\": {\n\t\t\t\"$avg\":{\n\t\t\t\t\"$cond\":[\n\t\t\t\t\t\t{\"$ne\":[\"&SQC_DCACHE_REQ\",0]},\n\t\t\t\t\t\t{\"$divide\":[\"&SQ_IFETCH_LEVEL.SQ_ACCUM_PREV_HIRES\",\"&SQC_DCACHE_REQ\"]},\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t}\n\t\t} \n\t}},\n\t{\"$set\": {\n \t\t\"array\": [\n \t\t{\n \t\t\t\"Metric\": \"vL1D Lat\",\n \t\t\t\"Alias\": \"sl1_lat_\",\n \t\t\t\"Value\": { \"$round\": [\"&sl1_lat\", 0] }\n \t\t}\n \t\t]\n\t}},\n \t{\"$unwind\": {\n \t\t\"path\": \"&array\"\n \t}},\n \t{\"$replaceRoot\": {\n \t\t\"newRoot\": \"&array\"\n \t}}\n]);", - "type": "table" - } - ], - "title": "Memory Chart (Normalization: $normUnit\")", - "transformations": [ - { - "id": "convertFieldType", - "options": { - "conversions": [ - { - "destinationType": "string", - "targetField": "Value" - } - ], - "fields": {} - } - }, - { - "id": "merge", - "options": {} - } - ], - "type": "amd-custom-svg" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Memory Chart Analysis", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 4 - }, - "id": 241, - "panels": [ - { - "gridPos": { - "h": 28, - "w": 24, - "x": 0, - "y": 5 - }, - "id": 253, - "pconfig": { - "fixScale": "", - "layout": { - "dragmode": "zoom", - "font": { - "family": "\"Open Sans\", Helvetica, Arial, sans-serif" - }, - "hovermode": "closest", - "legend": { - "orientation": "v" - }, - "showlegend": true, - "xaxis": { - "range": [ - -2, - 3.8 - ], - "rangemode": "between", - "showgrid": true, - "title": "Arithmetic Intensity (FLOP/Byte)", - "type": "log", - "zeroline": false - }, - "yaxis": { - "rangemode": "normal", - "showgrid": true, - "title": "Performance (GFLOP/sec)", - "type": "log", - "zeroline": false - }, - "zaxis": { - "rangemode": "normal", - "showgrid": true, - "type": "linear", - "zeroline": false - } - }, - "loadFromCDN": false, - "settings": { - "displayModeBar": false, - "type": "scatter" - }, - "showAnnotations": true, - "traces": [ - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "xrange", - "y": "roofline_hbm" - }, - "name": "HBM-VLAU", - "settings": { - "color_option": "ramp", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#33B5E5", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 15, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "circle" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "xrange", - "y": "roofline_L2" - }, - "name": "L2-VALU", - "settings": { - "color_option": "ramp", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#33B5E5", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 15, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "circle" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "xrange", - "y": "roofline_L1" - }, - "name": "vL1D-VALU", - "settings": { - "color_option": "ramp", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#33B5E5", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 15, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "circle" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "LDSBw_peak", - "x": "xrange", - "y": "roofline_LDS" - }, - "name": "LDS-VALU", - "settings": { - "color_option": "ramp", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#33B5E5", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 15, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "circle" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "cur_ai_hbm", - "y": "cur_perf" - }, - "name": "Cur - HBM", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#F2495C", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "square" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "cur_ai_L2", - "y": "cur_perf" - }, - "name": "Cur - L2", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#5794F2", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "diamond" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "cur_ai_L1", - "y": "cur_perf" - }, - "name": "Cur - vL1D", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "base_ai_hbm", - "y": "base_perf" - }, - "name": "Baseline - HBM", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#F2495C", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "square-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "base_ai_L2", - "y": "base_perf" - }, - "name": "Baseline - L2", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#5794F2", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "diamond-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "base_ai_L1", - "y": "base_perf" - }, - "name": "Baseline - vL1D", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "xrange", - "y": "roofline_hbm_MFMA" - }, - "name": "HBM-MFMA", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "xrange", - "y": "roofline_L2_MFMA" - }, - "name": "L2-MFMA", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "xrange", - "y": "roofline_L1_MFMA" - }, - "name": "vL1D-MFMA", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "LDSBw_peak", - "x": "xrange", - "y": "roofline_LDS_MFMA" - }, - "name": "LDS-MFMA", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - } - ] - }, - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "rawQuery": true, - "refId": "HBM-VALU", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&FP32Flops\", \"&FP64Flops\"]\n },\n \"then\": \"&FP64Flops\",\n \"else\": \"&FP32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_hbm\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&HBMBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&HBMBw\"] },\n \"else\": \"$high_flop\"\n }\n },\n \"hbmBw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&HBMBw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "HBM-MFMA", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&MFMAF32Flops\", \"&MFMAF64Flops\"]\n },\n \"then\": \"&MFMAF64Flops\",\n \"else\": \"&MFMAF32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_hbm_MFMA\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&HBMBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&HBMBw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L2-VALU", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&FP32Flops\", \"&FP64Flops\"]\n },\n \"then\": \"&FP64Flops\",\n \"else\": \"&FP32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L2\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L2Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L2Bw\"] },\n \"else\": \"$high_flop\"\n }\n },\n\n \"L2Bw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&L2Bw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L1-VALU", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&FP32Flops\", \"&FP64Flops\"]\n },\n \"then\": \"&FP64Flops\",\n \"else\": \"&FP32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L1\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L1Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L1Bw\"] },\n \"else\": \"&high_flop\"\n }\n },\n\n \"L1Bw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&L1Bw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "LDS", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&FP32Flops\", \"&FP64Flops\"]\n },\n \"then\": \"&FP64Flops\",\n \"else\": \"&FP32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_LDS\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&LDSBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&LDSBw\"] },\n \"else\": \"$high_flop\"\n }\n },\n\n \"LDSBw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&LDSBw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "Cur Workload", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n { \"$group\": { \n \"_id\": \"&KernelName\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"lds_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]\n } \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n }\n\n\n }},\n {\"$sort\": { \"TotalDuration\": -1 }},\n { \"$limit\": 10 },\n {\"$project\": {\n \"_id\": 0,\n \"Kernel\": \"&KernelName\",\n \"cur_ai_L1\": {\n \"$cond\": [\n { \"$ne\": [\"&L1cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"] },\n 0\n ]\n },\n \"cur_ai_L2\": {\n \"$cond\": [\n { \"$ne\": [\"&L2cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"] },\n 0\n ]\n },\n \"cur_ai_hbm\": {\n \"$cond\": [\n { \"$ne\": [\"&hbm_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"] },\n 0\n ]\n },\n \"cur_perf\": { \n \"$cond\": [\n { \"$ne\": [\"&AvgDuration\", 0] },\n { \"$divide\": [\"&total_flops\", \"&AvgDuration\"] },\n 0\n ]\n }\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "Baseline Workload", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Roofline)\"}}\n }},\n { \"$group\": { \n \"_id\": \"&KernelName\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"lds_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]\n } \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n }\n\n\n }},\n {\"$sort\": { \"TotalDuration\": -1 }},\n { \"$limit\": 10 },\n {\"$project\": {\n \"_id\": 0,\n \"Kernel\": \"&KernelName\",\n \"base_ai_L1\": {\n \"$cond\": [\n { \"$ne\": [\"&L1cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"] },\n 0\n ]\n },\n \"base_ai_L2\": {\n \"$cond\": [\n { \"$ne\": [\"&L2cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"] },\n 0\n ]\n },\n \"base_ai_hbm\": {\n \"$cond\": [\n { \"$ne\": [\"&hbm_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"] },\n 0\n ]\n },\n \"base_perf\": { \n \"$cond\": [\n { \"$ne\": [\"&AvgDuration\", 0] },\n { \"$divide\": [\"&total_flops\", \"&AvgDuration\"] },\n 0\n ]\n }\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L2-MFMA", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&MFMAF32Flops\", \"&MFMAF64Flops\"]\n },\n \"then\": \"&MFMAF64Flops\",\n \"else\": \"&MFMAF32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L2_MFMA\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L2Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L2Bw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L1-MFMA", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&MFMAF32Flops\", \"&MFMAF64Flops\"]\n },\n \"then\": \"&MFMAF64Flops\",\n \"else\": \"&MFMAF32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L1_MFMA\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L1Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L1Bw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "jYrBWHfnz" - }, - "hide": false, - "rawQuery": true, - "refId": "LDS-MFMA", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&MFMAF32Flops\", \"&MFMAF64Flops\"]\n },\n \"then\": \"&MFMAF64Flops\",\n \"else\": \"&MFMAF32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_LDS_MFMA\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&LDSBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&LDSBw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - } - ], - "title": "Empirical Roofline FP32/FP64 (MI200)", - "type": "natel-plotly-panel", - "version": 1 - }, - { - "gridPos": { - "h": 28, - "w": 24, - "x": 0, - "y": 33 - }, - "id": 312, - "pconfig": { - "fixScale": "", - "layout": { - "dragmode": "zoom", - "font": { - "family": "\"Open Sans\", Helvetica, Arial, sans-serif" - }, - "hovermode": "closest", - "legend": { - "orientation": "v" - }, - "showlegend": true, - "xaxis": { - "range": [ - -2, - 3.8 - ], - "rangemode": "between", - "showgrid": true, - "title": "Arithmetic Intensity (FLOP/Byte)", - "type": "log", - "zeroline": false - }, - "yaxis": { - "rangemode": "normal", - "showgrid": true, - "title": "Performance (GFLOP/sec)", - "type": "log", - "zeroline": false - }, - "zaxis": { - "rangemode": "normal", - "showgrid": true, - "type": "linear", - "zeroline": false - } - }, - "loadFromCDN": false, - "settings": { - "displayModeBar": false, - "type": "scatter" - }, - "showAnnotations": true, - "traces": [ - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "cur_ai_hbm", - "y": "cur_perf" - }, - "name": "Cur - HBM", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#F2495C", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "square" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "cur_ai_L2", - "y": "cur_perf" - }, - "name": "Cur - L2", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#5794F2", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "diamond" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "cur_ai_L1", - "y": "cur_perf" - }, - "name": "Cur - vL1D", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "base_ai_hbm", - "y": "base_perf" - }, - "name": "Baseline - HBM", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#F2495C", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "square-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "base_ai_L2", - "y": "base_perf" - }, - "name": "Baseline - L2", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#5794F2", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "diamond-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "base_ai_L1", - "y": "base_perf" - }, - "name": "Baseline - vL1D", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "xrange", - "y": "roofline_hbm_MFMA_fp16" - }, - "name": "HBM-MFMA-FP16", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "xrange", - "y": "roofline_L2_MFMA_fp16" - }, - "name": "L2-MFMA-FP16", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "xrange", - "y": "roofline_L1_MFMA_fp16" - }, - "name": "vL1D-MFMA-FP16", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "LDSBw_peak", - "x": "xrange", - "y": "roofline_LDS_MFMA_fp16" - }, - "name": "LDS-MFMA-FP16", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "xrange", - "y": "roofline_hbm_MFMA_i8" - }, - "name": "HBM-MFMA-I8", - "settings": { - "color_option": "solid", - "line": { - "color": "#FA6400", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "xrange", - "y": "roofline_L2_MFMA_i8" - }, - "name": "L2-MFMA-I8", - "settings": { - "color_option": "solid", - "line": { - "color": "#FA6400", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "xrange", - "y": "roofline_L1_MFMA_i8" - }, - "name": "vL1D-MFMA-I8", - "settings": { - "color_option": "solid", - "line": { - "color": "#FA6400", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "LDSBw_peak", - "x": "xrange", - "y": "roofline_LDS_MFMA_i8" - }, - "name": "LDS-MFMA-I8", - "settings": { - "color_option": "solid", - "line": { - "color": "#FA6400", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - } - ] - }, - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "HBM-MFMA-FP16", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAF16Flops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_hbm_MFMA_fp16\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&HBMBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&HBMBw\"] },\n \"else\": \"$high_flop\"\n }\n },\n \"hbmBw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&HBMBw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "HBM-MFMA-I8", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAI8Ops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_hbm_MFMA_i8\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&HBMBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&HBMBw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "Cur Workload", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n { \"$group\": { \n \"_id\": \"&KernelName\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"lds_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]\n } \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n }\n\n\n }},\n {\"$sort\": { \"TotalDuration\": -1 }},\n { \"$limit\": 10 },\n {\"$project\": {\n \"_id\": 0,\n \"Kernel\": \"&KernelName\",\n \"cur_ai_L1\": {\n \"$cond\": [\n { \"$ne\": [\"&L1cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"] },\n 0\n ]\n },\n \"cur_ai_L2\": {\n \"$cond\": [\n { \"$ne\": [\"&L2cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"] },\n 0\n ]\n },\n \"cur_ai_hbm\": {\n \"$cond\": [\n { \"$ne\": [\"&hbm_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"] },\n 0\n ]\n },\n \"cur_perf\": { \n \"$cond\": [\n { \"$ne\": [\"&AvgDuration\", 0] },\n { \"$divide\": [\"&total_flops\", \"&AvgDuration\"] },\n 0\n ]\n }\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "Baseline Workload", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Roofline)\"}}\n }},\n { \"$group\": { \n \"_id\": \"&KernelName\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]}},\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"lds_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]\n } \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n }\n\n\n }},\n {\"$sort\": { \"TotalDuration\": -1 }},\n { \"$limit\": 10 },\n {\"$project\": {\n \"_id\": 0,\n \"Kernel\": \"&KernelName\",\n \"base_ai_L1\": {\n \"$cond\": [\n { \"$ne\": [\"&L1cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"] },\n 0\n ]\n },\n \"base_ai_L2\": {\n \"$cond\": [\n { \"$ne\": [\"&L2cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"] },\n 0\n ]\n },\n \"base_ai_hbm\": {\n \"$cond\": [\n { \"$ne\": [\"&hbm_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"] },\n 0\n ]\n },\n \"base_perf\": { \n \"$cond\": [\n { \"$ne\": [\"&AvgDuration\", 0] },\n { \"$divide\": [\"&total_flops\", \"&AvgDuration\"] },\n 0\n ]\n }\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L2-MFMA-FP16", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAF16Flops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L2_MFMA_fp16\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L2Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L2Bw\"] },\n \"else\": \"$high_flop\"\n }\n },\n \"L2Bw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&L2Bw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L2-MFMA-I8", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAI8Ops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L2_MFMA_i8\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L2Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L2Bw\"] },\n \"else\": \"$high_flop\"\n }\n }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L1-MFMA-FP16", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAF16Flops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L1_MFMA_fp16\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L1Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L1Bw\"] },\n \"else\": \"$high_flop\"\n }\n },\n \"L1Bw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&L1Bw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L1-MFMA-I8", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAI8Ops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L1_MFMA_i8\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L1Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L1Bw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "jYrBWHfnz" - }, - "hide": false, - "rawQuery": true, - "refId": "LDS-MFMA-FP16", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAF16Flops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_LDS_MFMA_fp16\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&LDSBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&LDSBw\"] },\n \"else\": \"$high_flop\"\n }\n },\n \"LDSBw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&LDSBw\", 1] },0, 32]}, \" GB/s\"] }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "jYrBWHfnz" - }, - "hide": false, - "rawQuery": true, - "refId": "LDS-MFMA-I8", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAI8Ops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_LDS_MFMA_i8\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&LDSBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&LDSBw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - } - ], - "title": "Empirical Roofline FP16/INT8 (MI200)", - "type": "natel-plotly-panel", - "version": 1 - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Roofline Analysis", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 5 - }, - "id": 2, - "panels": [ - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 115 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 118 - } - ] - } - ] - }, - "gridPos": { - "h": 13, - "w": 13, - "x": 0, - "y": 6 - }, - "id": 6, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1 \n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"gpuBusy_avg\": {\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\": {\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\": {\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n\n \"cpfBusy_avg\": {\"$avg\": \"&CPF_CPF_STAT_BUSY\"},\n \"cpfBusy_min\": {\"$min\": \"&CPF_CPF_STAT_BUSY\"},\n \"cpfBusy_max\": {\"$max\": \"&CPF_CPF_STAT_BUSY\"},\n\n \"cpfUtil_avg\": {\"$avg\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n \"cpfUtil_min\": {\"$min\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n \"cpfUtil_max\": {\"$max\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n\n \"cpfStall_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n \"cpfStall_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n \"cpfStall_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n\n \"l2CacheBusy_avg\": {\"$avg\": \"&CPF_CPF_TCIU_BUSY\"},\n \"l2CacheBusy_min\": {\"$min\": \"&CPF_CPF_TCIU_BUSY\"},\n \"l2CacheBusy_max\": {\"$max\": \"&CPF_CPF_TCIU_BUSY\"},\n\n \"l2CacheUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheStall_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n \"l2CacheStall_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n \"l2CacheStall_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n\n \"utcL1Stall_avg\": {\"$avg\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_min\": {\"$min\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_max\": {\"$max\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"}\n\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy Cycles\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"CPF Busy\",\n \"Avg\": \"&cpfBusy_avg\",\n \"Min\": \"&cpfBusy_min\",\n \"Max\": \"&cpfBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"CPF Util\",\n \"Avg\": \"&cpfUtil_avg\",\n \"Min\": \"&cpfUtil_min\",\n \"Max\": \"&cpfUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPF Stall\",\n \"Avg\": \"&cpfStall_avg\",\n \"Min\": \"&cpfStall_min\",\n \"Max\": \"&cpfStall_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"L2Cache Intf Busy\",\n \"Avg\": \"&l2CacheBusy_avg\",\n \"Min\": \"&l2CacheBusy_min\",\n \"Max\": \"&l2CacheBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"L2Cache Intf Util\",\n \"Avg\": \"&l2CacheUtil_avg\",\n \"Min\": \"&l2CacheUtil_min\",\n \"Max\": \"&l2CacheUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"L2Cache Intf Stall\",\n \"Avg\": \"&l2CacheStall_avg\",\n \"Min\": \"&l2CacheStall_min\",\n \"Max\": \"&l2CacheStall_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"UTCL1 Stall\",\n \"Avg\": \"&utcL1Stall_avg\",\n \"Min\": \"&utcL1Stall_min\",\n \"Max\": \"&utcL1Stall_max\", \n \"Unit\": \"Cycles/Kernel\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Command Processor)\"}}\n }},\n\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1 \n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"gpuBusy_avg\": {\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\": {\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\": {\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n \"cpfBusy_avg\": {\"$avg\": \"&CPF_CPF_STAT_BUSY\"},\n \"cpfBusy_min\": {\"$min\": \"&CPF_CPF_STAT_BUSY\"},\n \"cpfBusy_max\": {\"$max\": \"&CPF_CPF_STAT_BUSY\"},\n\n \"cpfUtil_avg\": {\"$avg\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n \"cpfUtil_min\": {\"$min\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n \"cpfUtil_max\": {\"$max\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n\n \"cpfStall_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n \"cpfStall_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n \"cpfStall_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n\n \"l2CacheBusy_avg\": {\"$avg\": \"&CPF_CPF_TCIU_BUSY\"},\n \"l2CacheBusy_min\": {\"$min\": \"&CPF_CPF_TCIU_BUSY\"},\n \"l2CacheBusy_max\": {\"$max\": \"&CPF_CPF_TCIU_BUSY\"},\n\n \"l2CacheUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheStall_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n \"l2CacheStall_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n \"l2CacheStall_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n\n \"utcL1Stall_avg\": {\"$avg\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_min\": {\"$min\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_max\": {\"$max\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"}\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy Cycles\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"CPF Busy\",\n \"Avg\": \"&cpfBusy_avg\",\n \"Min\": \"&cpfBusy_min\",\n \"Max\": \"&cpfBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"CPF Util\",\n \"Avg\": \"&cpfUtil_avg\",\n \"Min\": \"&cpfUtil_min\",\n \"Max\": \"&cpfUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPF Stall\",\n \"Avg\": \"&cpfStall_avg\",\n \"Min\": \"&cpfStall_min\",\n \"Max\": \"&cpfStall_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"L2Cache Intf Busy\",\n \"Avg\": \"&l2CacheBusy_avg\",\n \"Min\": \"&l2CacheBusy_min\",\n \"Max\": \"&l2CacheBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"L2Cache Intf Util\",\n \"Avg\": \"&l2CacheUtil_avg\",\n \"Min\": \"&l2CacheUtil_min\",\n \"Max\": \"&l2CacheUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"L2Cache Intf Stall\",\n \"Avg\": \"&l2CacheStall_avg\",\n \"Min\": \"&l2CacheStall_min\",\n \"Max\": \"&l2CacheStall_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"UTCL1 Stall\",\n \"Avg\": \"&utcL1Stall_avg\",\n \"Min\": \"&utcL1Stall_min\",\n \"Max\": \"&utcL1Stall_max\", \n \"Unit\": \"Cycles/Kernel\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Command Processor Fetcher", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 83 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 171 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 148 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 180 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 118 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baselin)" - }, - "properties": [ - { - "id": "custom.width", - "value": 139 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 138 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 147 - } - ] - } - ] - }, - "gridPos": { - "h": 13, - "w": 11, - "x": 13, - "y": 6 - }, - "id": 4, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \n \"gpuBusy_avg\": {\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\": {\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\": {\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n\n \"cpcBusy_avg\": {\"$avg\": \"&CPC_CPC_STAT_BUSY\"},\n \"cpcBusy_min\": {\"$min\": \"&CPC_CPC_STAT_BUSY\"},\n \"cpcBusy_max\": {\"$max\": \"&CPC_CPC_STAT_BUSY\"},\n\n \"cpcUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n \"cpcUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n \"cpcUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n\n \"cpcStall_avg\": {\"$avg\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStall_min\": {\"$min\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStall_max\": {\"$max\": \"&CPC_CPC_STAT_STALL\"},\n\n \"cpcStallCycles_avg\": {\"$avg\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStallCycles_min\": {\"$min\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStallCycles_max\": {\"$max\": \"&CPC_CPC_STAT_STALL\"},\n\n \"cpcStallRate_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"cpcStallRate_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"cpcStallRate_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n\n \"cpcPacketDecoding_avg\":{\"$avg\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n \"cpcPacketDecoding_min\":{\"$min\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n \"cpcPacketDecoding_max\":{\"$max\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n\n \"spiBusy_avg\":{\"$avg\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n \"spiBusy_min\":{\"$min\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n \"spiBusy_max\":{\"$max\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n\n \"spiUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"spiUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"spiUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n\n \"l2CacheBusy_avg\":{\"$avg\": \"&CPC_CPC_TCIU_BUSY\"},\n \"l2CacheBusy_min\":{\"$min\": \"&CPC_CPC_TCIU_BUSY\"},\n \"l2CacheBusy_max\":{\"$max\": \"&CPC_CPC_TCIU_BUSY\"},\n\n \"l2CacheUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n \"l2CacheUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n \"l2CacheUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n\n \"utcL1Stall_avg\":{\"$avg\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_min\":{\"$min\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_max\":{\"$max\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n\n \"utcL2Busy_avg\":{\"$avg\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n \"utcL2Busy_min\":{\"$min\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n \"utcL2Busy_max\":{\"$max\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n\n \"utcL2Util_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }},\n \"utcL2Util_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }},\n \"utcL2Util_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }}\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy Cycles\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Busy Cycles\",\n \"Avg\": \"&cpcBusy_avg\",\n \"Min\": \"&cpcBusy_min\",\n \"Max\": \"&cpcBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Util\",\n \"Avg\": \"&cpcUtil_avg\",\n \"Min\": \"&cpcUtil_min\",\n \"Max\": \"&cpcUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPC Stall Cycles\",\n \"Avg\": \"&cpcStallCycles_avg\",\n \"Min\": \"&cpcStallCycles_min\",\n \"Max\": \"&cpcStallCycles_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Stall Rate\",\n \"Avg\": \"&cpcStallRate_avg\",\n \"Min\": \"&cpcStallRate_min\",\n \"Max\": \"&cpcStallRate_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPC Packet Decoding\",\n \"Avg\": \"&cpcPacketDecoding_avg\",\n \"Min\": \"&cpcPacketDecoding_min\",\n \"Max\": \"&cpcPacketDecoding_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Intf Busy Cycles\",\n \"Avg\": \"&spiBusy_avg\",\n \"Min\": \"&spiBusy_min\",\n \"Max\": \"&spiBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Intf Util\",\n \"Avg\": \"&spiUtil_avg\",\n \"Min\": \"&spiUtil_min\",\n \"Max\": \"&spiUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"L2Cache Intf Util\",\n \"Avg\": \"&l2CacheUtil_avg\",\n \"Min\": \"&l2CacheUtil_min\",\n \"Max\": \"&l2CacheUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"UTCL1 Stall Cycles\",\n \"Avg\": \"&utcL1Stall_avg\",\n \"Min\": \"&utcL1Stall_min\",\n \"Max\": \"&utcL1Stall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"UTCL2 Intf Busy Cycles\",\n \"Avg\": \"&utcL2Busy_avg\",\n \"Min\": \"&utcL2Busy_min\",\n \"Max\": \"&utcL2Busy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"UTCL2 Intf Util\",\n \"Avg\": \"&utcL2Util_avg\",\n \"Min\": \"&utcL2Util_min\",\n \"Max\": \"&utcL2Util_max\", \n \"Unit\": \"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Command Processor)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \n \"gpuBusy_avg\": {\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\": {\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\": {\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n \"cpcBusy_avg\": {\"$avg\": \"&CPC_CPC_STAT_BUSY\"},\n \"cpcBusy_min\": {\"$min\": \"&CPC_CPC_STAT_BUSY\"},\n \"cpcBusy_max\": {\"$max\": \"&CPC_CPC_STAT_BUSY\"},\n\n \"cpcUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n \"cpcUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n \"cpcUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n\n \"cpcStall_avg\": {\"$avg\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStall_min\": {\"$min\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStall_max\": {\"$max\": \"&CPC_CPC_STAT_STALL\"},\n\n \"cpcStallCycles_avg\": {\"$avg\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStallCycles_min\": {\"$min\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStallCycles_max\": {\"$max\": \"&CPC_CPC_STAT_STALL\"},\n\n \"cpcStallRate_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"cpcStallRate_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"cpcStallRate_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n\n \"cpcPacketDecoding_avg\":{\"$avg\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n \"cpcPacketDecoding_min\":{\"$min\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n \"cpcPacketDecoding_max\":{\"$max\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n\n \"spiBusy_avg\":{\"$avg\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n \"spiBusy_min\":{\"$min\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n \"spiBusy_max\":{\"$max\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n\n \"spiUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"spiUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"spiUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n\n \"l2CacheBusy_avg\":{\"$avg\": \"&CPC_CPC_TCIU_BUSY\"},\n \"l2CacheBusy_min\":{\"$min\": \"&CPC_CPC_TCIU_BUSY\"},\n \"l2CacheBusy_max\":{\"$max\": \"&CPC_CPC_TCIU_BUSY\"},\n\n \"l2CacheUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n \"l2CacheUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n \"l2CacheUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n\n \"utcL1Stall_avg\":{\"$avg\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_min\":{\"$min\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_max\":{\"$max\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n\n \"utcL2Busy_avg\":{\"$avg\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n \"utcL2Busy_min\":{\"$min\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n \"utcL2Busy_max\":{\"$max\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n\n \"utcL2Util_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }},\n \"utcL2Util_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }},\n \"utcL2Util_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }}\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy Cycles\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Busy Cycles\",\n \"Avg\": \"&cpcBusy_avg\",\n \"Min\": \"&cpcBusy_min\",\n \"Max\": \"&cpcBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Util\",\n \"Avg\": \"&cpcUtil_avg\",\n \"Min\": \"&cpcUtil_min\",\n \"Max\": \"&cpcUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPC Stall Cycles\",\n \"Avg\": \"&cpcStallCycles_avg\",\n \"Min\": \"&cpcStallCycles_min\",\n \"Max\": \"&cpcStallCycles_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Stall Rate\",\n \"Avg\": \"&cpcStallRate_avg\",\n \"Min\": \"&cpcStallRate_min\",\n \"Max\": \"&cpcStallRate_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPC Packet Decoding\",\n \"Avg\": \"&cpcPacketDecoding_avg\",\n \"Min\": \"&cpcPacketDecoding_min\",\n \"Max\": \"&cpcPacketDecoding_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Intf Busy Cycles\",\n \"Avg\": \"&spiBusy_avg\",\n \"Min\": \"&spiBusy_min\",\n \"Max\": \"&spiBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Intf Util\",\n \"Avg\": \"&spiUtil_avg\",\n \"Min\": \"&spiUtil_min\",\n \"Max\": \"&spiUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"L2Cache Intf Util\",\n \"Avg\": \"&l2CacheUtil_avg\",\n \"Min\": \"&l2CacheUtil_min\",\n \"Max\": \"&l2CacheUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"UTCL1 Stall Cycles\",\n \"Avg\": \"&utcL1Stall_avg\",\n \"Min\": \"&utcL1Stall_min\",\n \"Max\": \"&utcL1Stall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"UTCL2 Intf Busy Cycles\",\n \"Avg\": \"&utcL2Busy_avg\",\n \"Min\": \"&utcL2Busy_min\",\n \"Max\": \"&utcL2Busy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"UTCL2 Intf Util\",\n \"Avg\": \"&utcL2Util_avg\",\n \"Min\": \"&utcL2Util_min\",\n \"Max\": \"&utcL2Util_max\", \n \"Unit\": \"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Command Processor Compute", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Metric 1": "", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Command Processor (CPC/CPF)", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 6 - }, - "id": 102, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 101 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg 1" - }, - "properties": [ - { - "id": "custom.width", - "value": 121 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min 1" - }, - "properties": [ - { - "id": "custom.width", - "value": 96 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max 1" - }, - "properties": [ - { - "id": "custom.width", - "value": 145 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg 2" - }, - "properties": [ - { - "id": "custom.width", - "value": 97 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min 2" - }, - "properties": [ - { - "id": "custom.width", - "value": 128 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 130 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 123 - } - ] - } - ] - }, - "gridPos": { - "h": 15, - "w": 12, - "x": 0, - "y": 7 - }, - "id": 106, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"csBusy_avg\":{\"$avg\": \"&SPI_CSN_BUSY\"},\n \"csBusy_min\":{\"$min\": \"&SPI_CSN_BUSY\"},\n \"csBusy_max\":{\"$max\": \"&SPI_CSN_BUSY\"},\n\n \"gpuBusy_avg\":{\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\":{\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\":{\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n \"spiBusy_avg\":{\"$avg\": \"&GRBM_SPI_BUSY\"},\n \"spiBusy_min\":{\"$min\": \"&GRBM_SPI_BUSY\"},\n \"spiBusy_max\":{\"$max\": \"&GRBM_SPI_BUSY\"},\n\n \"sqBusy_avg\":{\"$avg\": \"&SQ_BUSY_CYCLES\"},\n \"sqBusy_min\":{\"$min\": \"&SQ_BUSY_CYCLES\"},\n \"sqBusy_max\":{\"$max\": \"&SQ_BUSY_CYCLES\"},\n\n \"dispatchedWorkgroups_avg\":{\"$avg\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n \"dispatchedWorkgroups_min\":{\"$min\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n \"dispatchedWorkgroups_max\":{\"$max\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n\n \"dispatchedWavefronts_avg\":{\"$avg\": \"&SPI_CSN_WAVE\"},\n \"dispatchedWavefronts_min\":{\"$min\": \"&SPI_CSN_WAVE\"},\n \"dispatchedWavefronts_max\":{\"$max\": \"&SPI_CSN_WAVE\"},\n\n\n \"waveAllocFail_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC\"},\n \"waveAllocFail_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC\"},\n \"waveAllocFail_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC\"},\n\n \"waveAllocFailCS_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveAllocFailCS_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveAllocFailCS_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"}\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Busy\",\n \"Avg\": \"&csBusy_avg\",\n \"Min\": \"&csBusy_min\",\n \"Max\": \"&csBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Busy\",\n \"Avg\": \"&spiBusy_avg\",\n \"Min\": \"&spiBusy_min\",\n \"Max\": \"&spiBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SQ Busy\",\n \"Avg\": \"&sqBusy_avg\",\n \"Min\": \"&sqBusy_min\",\n \"Max\": \"&sqBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Dispatched Workgroups\",\n \"Avg\": \"&dispatchedWorkgroups_avg\",\n \"Min\": \"&dispatchedWorkgroups_min\",\n \"Max\": \"&dispatchedWorkgroups_max\", \n \"Unit\": \"Workgroups\"\n },\n {\n \"Metric\": \"Dispatched Wavefronts\",\n \"Avg\": \"&dispatchedWavefronts_avg\",\n \"Min\": \"&dispatchedWavefronts_min\",\n \"Max\": \"&dispatchedWavefronts_max\", \n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Wave Alloc Failed\",\n \"Avg\": \"&waveAllocFail_avg\",\n \"Min\": \"&waveAllocFail_min\",\n \"Max\": \"&waveAllocFail_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Wave Alloc Failed - CS\",\n \"Avg\": \"&waveAllocFailCS_avg\",\n \"Min\": \"&waveAllocFailCS_min\",\n \"Max\": \"&waveAllocFailCS_max\", \n \"Unit\": \"Cycles\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Shader Processor Input)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"csBusy_avg\":{\"$avg\": \"&SPI_CSN_BUSY\"},\n \"csBusy_min\":{\"$min\": \"&SPI_CSN_BUSY\"},\n \"csBusy_max\":{\"$max\": \"&SPI_CSN_BUSY\"},\n\n \"gpuBusy_avg\":{\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\":{\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\":{\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n \"spiBusy_avg\":{\"$avg\": \"&GRBM_SPI_BUSY\"},\n \"spiBusy_min\":{\"$min\": \"&GRBM_SPI_BUSY\"},\n \"spiBusy_max\":{\"$max\": \"&GRBM_SPI_BUSY\"},\n\n \"sqBusy_avg\":{\"$avg\": \"&SQ_BUSY_CYCLES\"},\n \"sqBusy_min\":{\"$min\": \"&SQ_BUSY_CYCLES\"},\n \"sqBusy_max\":{\"$max\": \"&SQ_BUSY_CYCLES\"},\n\n \"dispatchedWorkgroups_avg\":{\"$avg\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n \"dispatchedWorkgroups_min\":{\"$min\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n \"dispatchedWorkgroups_max\":{\"$max\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n\n \"dispatchedWavefronts_avg\":{\"$avg\": \"&SPI_CSN_WAVE\"},\n \"dispatchedWavefronts_min\":{\"$min\": \"&SPI_CSN_WAVE\"},\n \"dispatchedWavefronts_max\":{\"$max\": \"&SPI_CSN_WAVE\"},\n\n \"waveAllocFail_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC\"},\n \"waveAllocFail_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC\"},\n \"waveAllocFail_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC\"},\n\n \"waveAllocFailCS_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveAllocFailCS_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveAllocFailCS_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"}\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Busy\",\n \"Avg\": \"&csBusy_avg\",\n \"Min\": \"&csBusy_min\",\n \"Max\": \"&csBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Busy\",\n \"Avg\": \"&spiBusy_avg\",\n \"Min\": \"&spiBusy_min\",\n \"Max\": \"&spiBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SQ Busy\",\n \"Avg\": \"&sqBusy_avg\",\n \"Min\": \"&sqBusy_min\",\n \"Max\": \"&sqBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Dispatched Workgroups\",\n \"Avg\": \"&dispatchedWorkgroups_avg\",\n \"Min\": \"&dispatchedWorkgroups_min\",\n \"Max\": \"&dispatchedWorkgroups_max\", \n \"Unit\": \"Workgroups\"\n },\n {\n \"Metric\": \"Dispatched Wavefronts\",\n \"Avg\": \"&dispatchedWavefronts_avg\",\n \"Min\": \"&dispatchedWavefronts_min\",\n \"Max\": \"&dispatchedWavefronts_max\", \n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Wave Alloc Failed\",\n \"Avg\": \"&waveAllocFail_avg\",\n \"Min\": \"&waveAllocFail_min\",\n \"Max\": \"&waveAllocFail_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Wave Alloc Failed - CS\",\n \"Avg\": \"&waveAllocFailCS_avg\",\n \"Min\": \"&waveAllocFailCS_min\",\n \"Max\": \"&waveAllocFailCS_max\", \n \"Unit\": \"Cycles\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "SPI Stats", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)", - "Unit 1": "" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 117 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 110 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 121 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 285 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 102 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 122 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 242 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 121 - } - ] - } - ] - }, - "gridPos": { - "h": 15, - "w": 12, - "x": 12, - "y": 7 - }, - "id": 104, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"waveReqFailCS_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveReqFailCS_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveReqFailCS_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n\n \"csStall_avg\":{\"$avg\": \"&SPI_RA_RES_STALL_CSN\"},\n \"csStall_min\":{\"$min\": \"&SPI_RA_RES_STALL_CSN\"},\n \"csStall_max\":{\"$max\": \"&SPI_RA_RES_STALL_CSN\"},\n\n \"csStallRate_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n \"csStallRate_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n \"csStallRate_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n\n \"scratchStall_avg\":{\"$avg\": \"&SPI_RA_TMP_STALL_CSN\"},\n \"scratchStall_min\":{\"$min\": \"&SPI_RA_TMP_STALL_CSN\"},\n \"scratchStall_max\":{\"$max\": \"&SPI_RA_TMP_STALL_CSN\"},\n\n \"simdWaveslots_avg\":{\"$avg\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n \"simdWaveslots_min\":{\"$min\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n \"simdWaveslots_max\":{\"$max\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n\n \"simdVGPRs_avg\":{\"$avg\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n \"simdVGPRs_min\":{\"$min\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n \"simdVGPRs_max\":{\"$max\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n\n \"simdSGPRs_avg\":{\"$avg\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n \"simdSGPRs_min\":{\"$min\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n \"simdSGPRs_max\":{\"$max\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n\n \"cuLDS_avg\":{\"$avg\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n \"cuLDS_min\":{\"$min\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n \"cuLDS_max\":{\"$max\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n\n \"cuBarries_avg\":{\"$avg\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n \"cuBarries_min\":{\"$min\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n \"cuBarries_max\":{\"$max\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n\n \"bulkyResource_avg\":{\"$avg\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n \"bulkyResource_min\":{\"$min\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n \"bulkyResource_max\":{\"$max\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n\n \"threadgroupLimit_avg\":{\"$avg\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n \"threadgroupLimit_min\":{\"$min\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n \"threadgroupLimit_max\":{\"$max\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n\n \"waveLimit_avg\":{\"$avg\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n \"waveLimit_min\":{\"$min\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n \"waveLimit_max\":{\"$max\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n\n \"vgprsWrites_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n \"vgprsWrites_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n \"vgprsWrites_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n\n \"sgprsWrites_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \"sgprsWrites_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \"sgprsWrites_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \n \n \"sgprsWritesUti_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }},\n \"sgprsWritesUti_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }},\n \"sgprsWritesUti_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }}\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave request Failed (CS)\",\n \"Avg\": \"&waveReqFailCS_avg\",\n \"Min\": \"&waveReqFailCS_min\",\n \"Max\": \"&waveReqFailCS_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Stall\",\n \"Avg\": \"&csStall_avg\",\n \"Min\": \"&csStall_min\",\n \"Max\": \"&csStall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Stall Rate\",\n \"Avg\": \"&csStallRate_avg\",\n \"Min\": \"&csStallRate_min\",\n \"Max\": \"&csStallRate_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"Scratch Stall\",\n \"Avg\": \"&scratchStall_avg\",\n \"Min\": \"&scratchStall_min\",\n \"Max\": \"&scratchStall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Insufficient SIMD Waveslots\",\n \"Avg\": \"&simdWaveslots_avg\",\n \"Min\": \"&simdWaveslots_min\",\n \"Max\": \"&simdWaveslots_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient SIMD VGPRs\",\n \"Avg\": \"&simdVGPRs_avg\",\n \"Min\": \"&simdVGPRs_min\",\n \"Max\": \"&simdVGPRs_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient SIMD SGPRs\",\n \"Avg\": \"&simdSGPRs_avg\",\n \"Min\": \"&simdSGPRs_min\",\n \"Max\": \"&simdSGPRs_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient CU LDS\",\n \"Avg\": \"&cuLDS_avg\",\n \"Min\": \"&cuLDS_min\",\n \"Max\": \"&cuLDS_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Insufficient CU Barries\",\n \"Avg\": \"&cuBarries_avg\",\n \"Min\": \"&cuBarries_min\",\n \"Max\": \"&cuBarries_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Insufficient Bulky Resource\",\n \"Avg\": \"&bulkyResource_avg\",\n \"Min\": \"&bulkyResource_min\",\n \"Max\": \"&bulkyResource_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Reach CU Threadgroups Limit\",\n \"Avg\": \"&threadgroupLimit_avg\",\n \"Min\": \"&threadgroupLimit_min\",\n \"Max\": \"&threadgroupLimit_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Reach CU Wave Limit\",\n \"Avg\": \"&waveLimit_avg\",\n \"Min\": \"&waveLimit_min\",\n \"Max\": \"&waveLimit_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"VGPR Writes\",\n \"Avg\": \"&vgprsWrites_avg\",\n \"Min\": \"&vgprsWrites_min\",\n \"Max\": \"&vgprsWrites_max\", \n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"SGPR Writes\",\n \"Avg\": \"&sgprsWrites_avg\",\n \"Min\": \"&sgprsWrites_min\",\n \"Max\": \"&sgprsWrites_max\", \n \"Unit\": \"Cycles/wave\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Shader Processor Input)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"waveReqFailCS_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveReqFailCS_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveReqFailCS_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n\n \"csStall_avg\":{\"$avg\": \"&SPI_RA_RES_STALL_CSN\"},\n \"csStall_min\":{\"$min\": \"&SPI_RA_RES_STALL_CSN\"},\n \"csStall_max\":{\"$max\": \"&SPI_RA_RES_STALL_CSN\"},\n\n \"csStallRate_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n \"csStallRate_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n \"csStallRate_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n\n \"scratchStall_avg\":{\"$avg\": \"&SPI_RA_TMP_STALL_CSN\"},\n \"scratchStall_min\":{\"$min\": \"&SPI_RA_TMP_STALL_CSN\"},\n \"scratchStall_max\":{\"$max\": \"&SPI_RA_TMP_STALL_CSN\"},\n\n \"simdWaveslots_avg\":{\"$avg\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n \"simdWaveslots_min\":{\"$min\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n \"simdWaveslots_max\":{\"$max\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n\n \"simdVGPRs_avg\":{\"$avg\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n \"simdVGPRs_min\":{\"$min\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n \"simdVGPRs_max\":{\"$max\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n\n \"simdSGPRs_avg\":{\"$avg\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n \"simdSGPRs_min\":{\"$min\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n \"simdSGPRs_max\":{\"$max\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n\n \"cuLDS_avg\":{\"$avg\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n \"cuLDS_min\":{\"$min\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n \"cuLDS_max\":{\"$max\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n\n \"cuBarries_avg\":{\"$avg\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n \"cuBarries_min\":{\"$min\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n \"cuBarries_max\":{\"$max\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n\n \"bulkyResource_avg\":{\"$avg\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n \"bulkyResource_min\":{\"$min\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n \"bulkyResource_max\":{\"$max\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n\n \"threadgroupLimit_avg\":{\"$avg\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n \"threadgroupLimit_min\":{\"$min\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n \"threadgroupLimit_max\":{\"$max\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n\n \"waveLimit_avg\":{\"$avg\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n \"waveLimit_min\":{\"$min\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n \"waveLimit_max\":{\"$max\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n\n \"vgprsWrites_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n \"vgprsWrites_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n \"vgprsWrites_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n\n \"sgprsWrites_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \"sgprsWrites_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \"sgprsWrites_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \n \n \"sgprsWritesUti_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }},\n \"sgprsWritesUti_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }},\n \"sgprsWritesUti_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }}\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave request Failed (CS)\",\n \"Avg\": \"&waveReqFailCS_avg\",\n \"Min\": \"&waveReqFailCS_min\",\n \"Max\": \"&waveReqFailCS_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Stall\",\n \"Avg\": \"&csStall_avg\",\n \"Min\": \"&csStall_min\",\n \"Max\": \"&csStall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Stall Rate\",\n \"Avg\": \"&csStallRate_avg\",\n \"Min\": \"&csStallRate_min\",\n \"Max\": \"&csStallRate_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"Scratch Stall\",\n \"Avg\": \"&scratchStall_avg\",\n \"Min\": \"&scratchStall_min\",\n \"Max\": \"&scratchStall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Insufficient SIMD Waveslots\",\n \"Avg\": \"&simdWaveslots_avg\",\n \"Min\": \"&simdWaveslots_min\",\n \"Max\": \"&simdWaveslots_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient SIMD VGPRs\",\n \"Avg\": \"&simdVGPRs_avg\",\n \"Min\": \"&simdVGPRs_min\",\n \"Max\": \"&simdVGPRs_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient SIMD SGPRs\",\n \"Avg\": \"&simdSGPRs_avg\",\n \"Min\": \"&simdSGPRs_min\",\n \"Max\": \"&simdSGPRs_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient CU LDS\",\n \"Avg\": \"&cuLDS_avg\",\n \"Min\": \"&cuLDS_min\",\n \"Max\": \"&cuLDS_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Insufficient CU Barries\",\n \"Avg\": \"&cuBarries_avg\",\n \"Min\": \"&cuBarries_min\",\n \"Max\": \"&cuBarries_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Insufficient Bulky Resource\",\n \"Avg\": \"&bulkyResource_avg\",\n \"Min\": \"&bulkyResource_min\",\n \"Max\": \"&bulkyResource_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Reach CU Threadgroups Limit\",\n \"Avg\": \"&threadgroupLimit_avg\",\n \"Min\": \"&threadgroupLimit_min\",\n \"Max\": \"&threadgroupLimit_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Reach CU Wave Limit\",\n \"Avg\": \"&waveLimit_avg\",\n \"Min\": \"&waveLimit_min\",\n \"Max\": \"&waveLimit_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"VGPR Writes\",\n \"Avg\": \"&vgprsWrites_avg\",\n \"Min\": \"&vgprsWrites_min\",\n \"Max\": \"&vgprsWrites_max\", \n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"SGPR Writes\",\n \"Avg\": \"&sgprsWrites_avg\",\n \"Min\": \"&sgprsWrites_min\",\n \"Max\": \"&sgprsWrites_max\", \n \"Unit\": \"Cycles/wave\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "SPI Resource Allocation", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Shader Processor Input (SPI)", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 7 - }, - "id": 185, - "panels": [ - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 169 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 142 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 196 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 174 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max" - }, - "properties": [ - { - "id": "custom.width", - "value": 168 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min" - }, - "properties": [ - { - "id": "custom.width", - "value": 272 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg" - }, - "properties": [ - { - "id": "custom.width", - "value": 225 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 100 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 103 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 115 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 117 - } - ] - } - ] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 0, - "y": 8 - }, - "id": 10, - "interval": "12h", - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"gridSize_avg\":{\"$avg\": \"&grd\"},\n \"gridSize_min\":{\"$min\": \"&grd\"},\n \"gridSize_max\":{\"$max\": \"&grd\"},\n\n \"workSize_avg\":{\"$avg\": \"&wgr\"},\n \"workSize_min\":{\"$min\": \"&wgr\"},\n \"workSize_max\":{\"$max\": \"&wgr\"},\n\n \"totWavefront_avg\":{\"$avg\": \"&SPI_CSN_WAVE\"},\n \"totWavefront_min\":{\"$min\": \"&SPI_CSN_WAVE\"},\n \"totWavefront_max\":{\"$max\": \"&SPI_CSN_WAVE\"},\n\n \"savedWavefront_avg\":{\"$avg\": \"&SQ_WAVES_SAVED\"},\n \"savedWavefront_min\":{\"$min\": \"&SQ_WAVES_SAVED\"},\n \"savedWavefront_max\":{\"$max\": \"&SQ_WAVES_SAVED\"},\n\n \"restoredWavefront_avg\":{\"$avg\": \"&SQ_WAVES_RESTORED\"},\n \"restoredWavefront_min\":{\"$min\": \"&SQ_WAVES_RESTORED\"},\n \"restoredWavefront_max\":{\"$max\": \"&SQ_WAVES_RESTORED\"},\n\n \"vgprs_avg\":{\"$avg\": \"&vgpr\"},\n \"vgprs_min\":{\"$min\": \"&vgpr\"},\n \"vgprs_max\":{\"$max\": \"&vgpr\"},\n\n \"sgprs_avg\":{\"$avg\": \"&sgpr\"},\n \"sgprs_min\":{\"$min\": \"&sgpr\"},\n \"sgprs_max\":{\"$max\": \"&sgpr\"},\n\n \"ldsAlloc_avg\":{\"$avg\": \"&lds\"},\n \"ldsAlloc_min\":{\"$min\": \"&lds\"},\n \"ldsAlloc_max\":{\"$max\": \"&lds\"},\n\n \"scratchAlloc_avg\":{\"$avg\": \"&scr\"},\n \"scratchAlloc_min\":{\"$min\": \"&scr\"},\n \"scratchAlloc_max\":{\"$max\": \"&scr\"}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Grid Size\",\n \"Avg\": \"&gridSize_avg\",\n \"Min\": \"&gridSize_min\",\n \"Max\": \"&gridSize_max\",\n \"Unit\": \"Work Items\"\n },\n {\n \"Metric\": \"Workgroup Size\",\n \"Avg\": \"&workSize_avg\",\n \"Min\": \"&workSize_min\",\n \"Max\": \"&workSize_max\",\n \"Unit\": \"Work Items\"\n },\n {\n \"Metric\": \"Total Wavefronts\",\n \"Avg\": \"&totWavefront_avg\",\n \"Min\": \"&totWavefront_min\",\n \"Max\": \"&totWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Saved Wavefronts\",\n \"Avg\": \"&savedWavefront_avg\",\n \"Min\": \"&savedWavefront_min\",\n \"Max\": \"&savedWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Restored Wavefronts\",\n \"Avg\": \"&restoredWavefront_avg\",\n \"Min\": \"&restoredWavefront_min\",\n \"Max\": \"&restoredWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"VGPRs\",\n \"Avg\": \"&vgprs_avg\",\n \"Min\": \"&vgprs_min\",\n \"Max\": \"&vgprs_max\",\n \"Unit\": \"Registers\"\n },\n {\n \"Metric\": \"SGPRs\",\n \"Avg\": \"&sgprs_avg\",\n \"Min\": \"&sgprs_min\",\n \"Max\": \"&sgprs_max\",\n \"Unit\":\"Registers\"\n },\n {\n \"Metric\": \"LDS Allocation\",\n \"Avg\": \"&ldsAlloc_avg\",\n \"Min\": \"&ldsAlloc_min\",\n \"Max\": \"&ldsAlloc_max\",\n \"Unit\": \"Bytes\"\n },\n {\n \"Metric\": \"Scratch Allocation\",\n \"Avg\": \"&scratchAlloc_avg\",\n \"Min\": \"&scratchAlloc_min\",\n \"Max\": \"&scratchAlloc_max\",\n \"Unit\": \"Bytes\"\n }\n \n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Wavefront)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"gridSize_avg\":{\"$avg\": \"&grd\"},\n \"gridSize_min\":{\"$min\": \"&grd\"},\n \"gridSize_max\":{\"$max\": \"&grd\"},\n\n \"workSize_avg\":{\"$avg\": \"&wgr\"},\n \"workSize_min\":{\"$min\": \"&wgr\"},\n \"workSize_max\":{\"$max\": \"&wgr\"},\n\n \"totWavefront_avg\":{\"$avg\": \"&SPI_CSN_WAVE\"},\n \"totWavefront_min\":{\"$min\": \"&SPI_CSN_WAVE\"},\n \"totWavefront_max\":{\"$max\": \"&SPI_CSN_WAVE\"},\n\n \"savedWavefront_avg\":{\"$avg\": \"&SQ_WAVES_SAVED\"},\n \"savedWavefront_min\":{\"$min\": \"&SQ_WAVES_SAVED\"},\n \"savedWavefront_max\":{\"$max\": \"&SQ_WAVES_SAVED\"},\n\n \"restoredWavefront_avg\":{\"$avg\": \"&SQ_WAVES_RESTORED\"},\n \"restoredWavefront_min\":{\"$min\": \"&SQ_WAVES_RESTORED\"},\n \"restoredWavefront_max\":{\"$max\": \"&SQ_WAVES_RESTORED\"},\n\n \"vgprs_avg\":{\n \"$avg\": {\"$cond\": [\n {\"$ne\": [{\"$type\": \"&vgpr\"}, \"missing\"]},\n \"&vgpr\",\n \"&arch_vgpr\"\n ] \n }\n },\n \"vgprs_min\":{\n \"$min\": {\"$cond\": [\n {\"$ne\": [{\"$type\": \"&vgpr\"}, \"missing\"]},\n \"&vgpr\",\n \"&arch_vgpr\"\n ] \n }\n },\n \"vgprs_max\":{\n \"$max\": {\"$cond\": [\n {\"$ne\": [{\"$type\": \"&vgpr\"}, \"missing\"]},\n \"&vgpr\",\n \"&arch_vgpr\"\n ] \n }\n },\n\n \"agprs_avg\":{\n \"$avg\": \"&accum_vgpr\"\n },\n \"agprs_min\":{\n \"$min\": \"&accum_vgpr\"\n },\n \"agprs_max\":{\n \"$max\": \"&accum_vgpr\"\n },\n\n \"sgprs_avg\":{\"$avg\": \"&sgpr\"},\n \"sgprs_min\":{\"$min\": \"&sgpr\"},\n \"sgprs_max\":{\"$max\": \"&sgpr\"},\n\n \"ldsAlloc_avg\":{\"$avg\": \"&lds\"},\n \"ldsAlloc_min\":{\"$min\": \"&lds\"},\n \"ldsAlloc_max\":{\"$max\": \"&lds\"},\n\n \"scratchAlloc_avg\":{\"$avg\": \"&scr\"},\n \"scratchAlloc_min\":{\"$min\": \"&scr\"},\n \"scratchAlloc_max\":{\"$max\": \"&scr\"}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Grid Size\",\n \"Avg\": \"&gridSize_avg\",\n \"Min\": \"&gridSize_min\",\n \"Max\": \"&gridSize_max\",\n \"Unit\": \"Work Items\"\n },\n {\n \"Metric\": \"Workgroup Size\",\n \"Avg\": \"&workSize_avg\",\n \"Min\": \"&workSize_min\",\n \"Max\": \"&workSize_max\",\n \"Unit\": \"Work Items\"\n },\n {\n \"Metric\": \"Total Wavefronts\",\n \"Avg\": \"&totWavefront_avg\",\n \"Min\": \"&totWavefront_min\",\n \"Max\": \"&totWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Saved Wavefronts\",\n \"Avg\": \"&savedWavefront_avg\",\n \"Min\": \"&savedWavefront_min\",\n \"Max\": \"&savedWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Restored Wavefronts\",\n \"Avg\": \"&restoredWavefront_avg\",\n \"Min\": \"&restoredWavefront_min\",\n \"Max\": \"&restoredWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"VGPRs\",\n \"Avg\": \"&vgprs_avg\",\n \"Min\": \"&vgprs_min\",\n \"Max\": \"&vgprs_max\",\n \"Unit\": \"Registers\"\n },\n {\n \"Metric\": \"AGPRs\",\n \"Avg\": \"&agprs_avg\",\n \"Min\": \"&agprs_min\",\n \"Max\": \"&agprs_max\",\n \"Unit\": \"Registers\"\n },\n {\n \"Metric\": \"SGPRs\",\n \"Avg\": \"&sgprs_avg\",\n \"Min\": \"&sgprs_min\",\n \"Max\": \"&sgprs_max\",\n \"Unit\":\"Registers\"\n },\n {\n \"Metric\": \"LDS Allocation\",\n \"Avg\": \"&ldsAlloc_avg\",\n \"Min\": \"&ldsAlloc_min\",\n \"Max\": \"&ldsAlloc_max\",\n \"Unit\": \"Bytes\"\n },\n {\n \"Metric\": \"Scratch Allocation\",\n \"Avg\": \"&scratchAlloc_avg\",\n \"Min\": \"&scratchAlloc_min\",\n \"Max\": \"&scratchAlloc_max\",\n \"Unit\": \"Bytes\"\n }\n \n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Wavefront Launch Stats", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true, - "Units 2": true, - "metric 2": true - }, - "indexByName": { - "Avg 1": 1, - "Avg 2": 2, - "Max 1": 5, - "Max 2": 6, - "Metric 1": 0, - "Metric 2": 7, - "Min 1": 3, - "Min 2": 4, - "Unit 1": 9, - "Unit 2": 8 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 148 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 122 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 106 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg" - }, - "properties": [ - { - "id": "custom.width", - "value": 223 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 169 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 165 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 133 - } - ] - } - ] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 12, - "y": 8 - }, - "id": 34, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"instrWavefront_avg\":{\"$avg\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n \"instrWavefront_min\":{\"$min\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n \"instrWavefront_max\":{\"$max\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n\n \"waveCycles_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n \"waveCycles_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n \"waveCycles_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n\n \"depWaitingCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"depWaitingCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"depWaitingCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"issueWaitCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"issueWaitCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"issueWaitCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"activeCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"activeCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"activeCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"kernelTime_avg\":{\"$avg\": {\"$subtract\": [ \"&EndNs\", \"&BeginNs\" ]}},\n \"kernelTime_min\":{\"$min\": {\"$subtract\": [ \"&EndNs\", \"&BeginNs\" ]}},\n \"kernelTime_max\":{\"$max\": {\"$subtract\": [ \"&EndNs\", \"&BeginNs\" ]}},\n\n \"kernelCycle_avg\":{\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"kernelCycle_min\":{\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"kernelCycle_max\":{\"$max\": \"&GRBM_GUI_ACTIVE\"}\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Kernel Time (Nanosec)\",\n \"Avg\": \"&kernelTime_avg\",\n \"Min\": \"&kernelTime_min\",\n \"Max\": \"&kernelTime_max\",\n \"Unit\":\"ns\"\n },\n {\n \"Metric\": \"Kernel Time (Cycles)\",\n \"Avg\": \"&kernelCycle_avg\",\n \"Min\": \"&kernelCycle_min\",\n \"Max\": \"&kernelCycle_max\",\n \"Unit\":\"Cycle\"\n },\n\n {\n \"Metric\": \"Instr/wavefront\",\n \"Avg\": \"&instrWavefront_avg\",\n \"Min\": \"&instrWavefront_min\",\n \"Max\": \"&instrWavefront_max\",\n \"Unit\": \"Instr/wavefront\"\n },\n {\n \"Metric\": \"Wave Cycles\",\n \"Avg\": \"&waveCycles_avg\",\n \"Min\": \"&waveCycles_min\",\n \"Max\": \"&waveCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Dependency Wait Cycles\",\n \"Avg\": \"&depWaitingCycles_avg\",\n \"Min\": \"&depWaitingCycles_min\",\n \"Max\": \"&depWaitingCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Issue Wait Cycles\",\n \"Avg\": \"&issueWaitCycles_avg\",\n \"Min\": \"&issueWaitCycles_min\",\n \"Max\": \"&issueWaitCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Active Cycles\",\n \"Avg\": \"&activeCycles_avg\",\n \"Min\": \"&activeCycles_min\",\n \"Max\": \"&activeCycles_max\",\n \"Unit\": \"Cycles/wave\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_LEVEL_WAVES\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"occAvg\": {\"$avg\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } },\n \"occMin\": {\"$min\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } },\n \"occMax\": {\"$max\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } }\n }},\n {\"$project\": {\n \"_id\":0,\n \"Metric\": \"Wavefront Occupancy\",\n \"Avg\": \"&occAvg\",\n \"Min\":\"&occMin\",\n \"Max\":\"&occMax\",\n \"Unit\":\"Wavefronts\"\n }}\n ]\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Wavefront)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"instrWavefront_avg\":{\"$avg\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n \"instrWavefront_min\":{\"$min\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n \"instrWavefront_max\":{\"$max\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n\n \"waveCycles_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n \"waveCycles_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n \"waveCycles_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n\n \"depWaitingCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"depWaitingCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"depWaitingCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"issueWaitCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"issueWaitCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"issueWaitCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"activeCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"activeCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"activeCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"kernelTime_avg\":{\"$avg\": {\"$subtract\": [ \"&EndNs\", \"&BeginNs\" ]}},\n \"kernelTime_min\":{\"$min\": {\"$subtract\": [ \"&EndNs\", \"&BeginNs\" ]}},\n \"kernelTime_max\":{\"$max\": {\"$subtract\": [ \"&EndNs\", \"&BeginNs\" ]}},\n\n \"kernelCycle_avg\":{\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"kernelCycle_min\":{\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"kernelCycle_max\":{\"$max\": \"&GRBM_GUI_ACTIVE\"}\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Kernel Time (Nanosec)\",\n \"Avg\": \"&kernelTime_avg\",\n \"Min\": \"&kernelTime_min\",\n \"Max\": \"&kernelTime_max\",\n \"Unit\":\"ns\"\n },\n {\n \"Metric\": \"Kernel Time (Cycles)\",\n \"Avg\": \"&kernelCycle_avg\",\n \"Min\": \"&kernelCycle_min\",\n \"Max\": \"&kernelCycle_max\",\n \"Unit\":\"Cycle\"\n },\n\n {\n \"Metric\": \"Instr/wavefront\",\n \"Avg\": \"&instrWavefront_avg\",\n \"Min\": \"&instrWavefront_min\",\n \"Max\": \"&instrWavefront_max\",\n \"Unit\": \"Instr/wavefront\"\n },\n {\n \"Metric\": \"Wave Cycles\",\n \"Avg\": \"&waveCycles_avg\",\n \"Min\": \"&waveCycles_min\",\n \"Max\": \"&waveCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Dependency Wait Cycles\",\n \"Avg\": \"&depWaitingCycles_avg\",\n \"Min\": \"&depWaitingCycles_min\",\n \"Max\": \"&depWaitingCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Issue Wait Cycles\",\n \"Avg\": \"&issueWaitCycles_avg\",\n \"Min\": \"&issueWaitCycles_min\",\n \"Max\": \"&issueWaitCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Active Cycles\",\n \"Avg\": \"&activeCycles_avg\",\n \"Min\": \"&activeCycles_min\",\n \"Max\": \"&activeCycles_max\",\n \"Unit\": \"Cycles/wave\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_LEVEL_WAVES\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Wavefront)\"}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"occAvg\": {\"$avg\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } },\n \"occMin\": {\"$min\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } },\n \"occMax\": {\"$max\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } }\n }},\n {\"$project\": {\n \"_id\":0,\n \"Metric\": \"Wavefront Occupancy\",\n \"Avg\": \"&occAvg\",\n \"Min\":\"&occMin\",\n \"Max\":\"&occMax\",\n \"Unit\":\"Wavefronts\"\n }}\n ]\n }}\n ]);", - "type": "table" - } - ], - "title": "Wavefront Runtime Stats", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg": "", - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)", - "Unit 1": "", - "Unit 2": "" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Wavefront", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 8 - }, - "id": 209, - "panels": [ - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [] - }, - "gridPos": { - "h": 17, - "w": 12, - "x": 0, - "y": 9 - }, - "id": 12, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "text": { - "valueSize": 16 - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"valu_avg\": {\n \"$avg\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_MFMA\"]}, \"&denom\" ] }\n },\n \"mfma_avg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_MFMA\", \"&denom\" ] }\n },\n \"vmem_avg\": {\n \"$avg\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VMEM\", \"&SQ_INSTS_FLAT_LDS_ONLY\"]}, \"&denom\" ] }\n },\n \"lds_avg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_LDS\", \"&denom\" ] }\n },\n \"salu_avg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SALU\", \"&denom\" ] }\n },\n \"smem_avg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SMEM\", \"&denom\" ] }\n },\n \"branch_avg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_BRANCH\", \"&denom\" ] }\n },\n \"gds_avg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_GDS\", \"&denom\" ] }\n },\n \"valu_min\": {\n \"$min\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_MFMA\"]}, \"&denom\" ] }\n },\n \"mfma_min\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS_MFMA\", \"&denom\" ] }\n },\n \"vmem_min\": {\n \"$min\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VMEM\", \"&SQ_INSTS_FLAT_LDS_ONLY\"]}, \"&denom\" ] }\n },\n \"lds_min\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS_LDS\", \"&denom\" ] }\n },\n \"salu_min\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS_SALU\", \"&denom\" ] }\n },\n \"smem_min\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS_SMEM\", \"&denom\" ] }\n },\n \"branch_min\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS_BRANCH\", \"&denom\" ] }\n },\n \"gds_min\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS_GDS\", \"&denom\" ] }\n },\n \"valu_max\": {\n \"$max\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_MFMA\"]}, \"&denom\" ] }\n },\n \"mfma_max\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS_MFMA\", \"&denom\" ] }\n },\n \"vmem_max\": {\n \"$max\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VMEM\", \"&SQ_INSTS_FLAT_LDS_ONLY\"]}, \"&denom\" ] }\n },\n \"lds_max\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS_LDS\", \"&denom\" ] }\n },\n \"salu_max\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS_SALU\", \"&denom\" ] }\n },\n \"smem_max\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS_SMEM\", \"&denom\" ] }\n },\n \"branch_max\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS_BRANCH\", \"&denom\" ] }\n },\n \"gds_max\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS_GDS\", \"&denom\" ] }\n }\n\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"VALU - Vector\",\n \"avg\": \"&valu_avg\",\n \"min\": \"&valu_min\",\n \"max\": \"&valu_max\"\n },\n {\n \"metric\": \"VMEM\",\n \"avg\": \"&vmem_avg\",\n \"min\": \"&vmem_min\",\n \"max\": \"&vmem_max\"\n },\n {\n \"metric\": \"LDS\",\n \"avg\": \"&lds_avg\",\n \"min\": \"&lds_min\",\n \"max\": \"&lds_max\"\n },\n {\n \"metric\": \"VALU - MFMA\",\n \"avg\": \"&mfma_avg\",\n \"min\": \"&mfma_min\",\n \"max\": \"&mfma_max\"\n },\n {\n \"metric\": \"SALU\",\n \"avg\": \"&salu_avg\",\n \"min\": \"&salu_min\",\n \"max\": \"&salu_max\"\n },\n {\n \"metric\": \"SMEM\",\n \"avg\": \"&smem_avg\",\n \"min\": \"&smem_min\",\n \"max\": \"&smem_max\"\n },\n {\n \"metric\": \"Branch\",\n \"avg\": \"&branch_avg\",\n \"min\": \"&branch_min\",\n \"max\": \"&branch_max\"\n },\n {\n \"metric\": \"GDS\",\n \"avg\": \"&gds_avg\",\n \"min\": \"&gds_min\",\n \"max\": \"&gds_max\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "$Workload2.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Mix)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"valu_avg\": {\n \"$avg\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_MFMA\"]}, \"&denom\" ] }\n },\n \"mfma_avg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_MFMA\", \"&denom\" ] }\n },\n \"vmem_avg\": {\n \"$avg\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VMEM\", \"&SQ_INSTS_FLAT_LDS_ONLY\"]}, \"&denom\" ] }\n },\n \"lds_avg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_LDS\", \"&denom\" ] }\n },\n \"salu_avg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SALU\", \"&denom\" ] }\n },\n \"smem_avg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SMEM\", \"&denom\" ] }\n },\n \"branch_avg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_BRANCH\", \"&denom\" ] }\n },\n \"gds_avg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_GDS\", \"&denom\" ] }\n },\n \"valu_min\": {\n \"$min\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_MFMA\"]}, \"&denom\" ] }\n },\n \"mfma_min\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS_MFMA\", \"&denom\" ] }\n },\n \"vmem_min\": {\n \"$min\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VMEM\", \"&SQ_INSTS_FLAT_LDS_ONLY\"]}, \"&denom\" ] }\n },\n \"lds_min\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS_LDS\", \"&denom\" ] }\n },\n \"salu_min\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS_SALU\", \"&denom\" ] }\n },\n \"smem_min\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS_SMEM\", \"&denom\" ] }\n },\n \"branch_min\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS_BRANCH\", \"&denom\" ] }\n },\n \"gds_min\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS_GDS\", \"&denom\" ] }\n },\n \"valu_max\": {\n \"$max\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_MFMA\"]}, \"&denom\" ] }\n },\n \"mfma_max\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS_MFMA\", \"&denom\" ] }\n },\n \"vmem_max\": {\n \"$max\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VMEM\", \"&SQ_INSTS_FLAT_LDS_ONLY\"]}, \"&denom\" ] }\n },\n \"lds_max\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS_LDS\", \"&denom\" ] }\n },\n \"salu_max\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS_SALU\", \"&denom\" ] }\n },\n \"smem_max\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS_SMEM\", \"&denom\" ] }\n },\n \"branch_max\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS_BRANCH\", \"&denom\" ] }\n },\n \"gds_max\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS_GDS\", \"&denom\" ] }\n }\n\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"VALU - Vector (Baseline)\",\n \"avg\": \"&valu_avg\",\n \"min\": \"&valu_min\",\n \"max\": \"&valu_max\"\n },\n {\n \"metric\": \"VMEM (Baseline)\",\n \"avg\": \"&vmem_avg\",\n \"min\": \"&vmem_min\",\n \"max\": \"&vmem_max\"\n },\n {\n \"metric\": \"LDS (Baseline)\",\n \"avg\": \"&lds_avg\",\n \"min\": \"&lds_min\",\n \"max\": \"&lds_max\"\n },\n {\n \"metric\": \"VALU - MFMA (Baseline)\",\n \"avg\": \"&mfma_avg\",\n \"min\": \"&mfma_min\",\n \"max\": \"&mfma_max\"\n },\n {\n \"metric\": \"SALU (Baseline)\",\n \"avg\": \"&salu_avg\",\n \"min\": \"&salu_min\",\n \"max\": \"&salu_max\"\n },\n {\n \"metric\": \"SMEM (Baseline)\",\n \"avg\": \"&smem_avg\",\n \"min\": \"&smem_min\",\n \"max\": \"&smem_max\"\n },\n {\n \"metric\": \"Branch (Baseline)\",\n \"avg\": \"&branch_avg\",\n \"min\": \"&branch_min\",\n \"max\": \"&branch_max\"\n },\n {\n \"metric\": \"GDS (Baseline)\",\n \"avg\": \"&gds_avg\",\n \"min\": \"&gds_min\",\n \"max\": \"&gds_max\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "Instruction Mix", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "field": "metric" - } - ] - } - }, - { - "id": "organize", - "options": { - "excludeByName": { - "max": true, - "min": true - }, - "indexByName": {}, - "renameByName": { - "avg": "" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 24, - "w": 12, - "x": 12, - "y": 9 - }, - "id": 24, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "/^count$/", - "limit": 100, - "values": true - }, - "showUnfilled": true, - "text": {} - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"count_int_i32\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_INT32\", \"&denom\" ] }\n },\n \"count_int_i64\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_INT64\", \"&denom\" ] }\n },\n \"count_f16_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F16\", \"&denom\" ] }\n },\n \"count_f16_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F16\", \"&denom\" ] }\n },\n \"count_f16_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F16\", \"&denom\" ] }\n },\n \"count_f16_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F16\", \"&denom\" ] }\n },\n \"count_f32_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F32\", \"&denom\" ] }\n },\n \"count_f32_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F32\", \"&denom\" ] }\n },\n \"count_f32_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F32\", \"&denom\" ] }\n },\n \"count_f32_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F32\", \"&denom\" ] }\n },\n \"count_f64_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F64\", \"&denom\" ] }\n },\n \"count_f64_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F64\", \"&denom\" ] }\n },\n \"count_f64_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F64\", \"&denom\" ] }\n },\n \"count_f64_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F64\", \"&denom\" ] }\n },\n \"conversion\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_CVT\", \"&denom\" ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"INT32\",\n \"count\": \"&count_int_i32\"\n },\n {\n \"metric\": \"INT64\",\n \"count\": \"&count_int_i64\"\n },\n {\n \"metric\": \"F16-ADD\",\n \"count\": \"&count_f16_add\"\n },\n {\n \"metric\": \"F16-MUL\",\n \"count\": \"&count_f16_MUL\"\n },\n {\n \"metric\": \"F16-FMA\",\n \"count\": \"&count_f16_fma\"\n },\n {\n \"metric\": \"F16-Trans\",\n \"count\": \"&count_f16_trans\"\n },\n {\n \"metric\": \"F32-ADD\",\n \"count\": \"&count_f32_add\"\n },\n {\n \"metric\": \"F32-MUL\",\n \"count\": \"&count_f32_MUL\"\n },\n {\n \"metric\": \"F32-FMA\",\n \"count\": \"&count_f32_fma\"\n },\n {\n \"metric\": \"F32-Trans\",\n \"count\": \"&count_f32_trans\"\n },\n {\n \"metric\": \"F64-ADD\",\n \"count\": \"&count_f64_add\"\n },\n {\n \"metric\": \"F64-MUL\",\n \"count\": \"&count_f64_MUL\"\n },\n {\n \"metric\": \"F64-FMA\",\n \"count\": \"&count_f64_fma\"\n },\n {\n \"metric\": \"F64-Trans\",\n \"count\": \"&count_f64_trans\"\n },\n {\n \"metric\": \"Conversion\",\n \"count\": \"&conversion\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Mix)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"count_int_i32\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_INT32\", \"&denom\" ] }\n },\n \"count_int_i64\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_INT64\", \"&denom\" ] }\n },\n \"count_f16_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F16\", \"&denom\" ] }\n },\n \"count_f16_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F16\", \"&denom\" ] }\n },\n \"count_f16_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F16\", \"&denom\" ] }\n },\n \"count_f16_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F16\", \"&denom\" ] }\n },\n \"count_f32_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F32\", \"&denom\" ] }\n },\n \"count_f32_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F32\", \"&denom\" ] }\n },\n \"count_f32_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F32\", \"&denom\" ] }\n },\n \"count_f32_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F32\", \"&denom\" ] }\n },\n \"count_f64_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F64\", \"&denom\" ] }\n },\n \"count_f64_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F64\", \"&denom\" ] }\n },\n \"count_f64_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F64\", \"&denom\" ] }\n },\n \"count_f64_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F64\", \"&denom\" ] }\n },\n \"conversion\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_CVT\", \"&denom\" ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"INT32 (Baseline)\",\n \"count\": \"&count_int_i32\"\n },\n {\n \"metric\": \"INT64 (Baseline)\",\n \"count\": \"&count_int_i64\"\n },\n {\n \"metric\": \"F16-ADD (Baseline)\",\n \"count\": \"&count_f16_add\"\n },\n {\n \"metric\": \"F16-MUL (Baseline)\",\n \"count\": \"&count_f16_MUL\"\n },\n {\n \"metric\": \"F16-FMA (Baseline)\",\n \"count\": \"&count_f16_fma\"\n },\n {\n \"metric\": \"F16-Trans (Baseline)\",\n \"count\": \"&count_f16_trans\"\n },\n {\n \"metric\": \"F32-ADD (Baseline)\",\n \"count\": \"&count_f32_add\"\n },\n {\n \"metric\": \"F32-MUL (Baseline)\",\n \"count\": \"&count_f32_MUL\"\n },\n {\n \"metric\": \"F32-FMA (Baseline)\",\n \"count\": \"&count_f32_fma\"\n },\n {\n \"metric\": \"F32-Trans (Baseline)\",\n \"count\": \"&count_f32_trans\"\n },\n {\n \"metric\": \"F64-ADD (Baseline)\",\n \"count\": \"&count_f64_add\"\n },\n {\n \"metric\": \"F64-MUL (Baseline)\",\n \"count\": \"&count_f64_MUL\"\n },\n {\n \"metric\": \"F64-FMA (Baseline)\",\n \"count\": \"&count_f64_fma\"\n },\n {\n \"metric\": \"F64-Trans (Baseline)\",\n \"count\": \"&count_f64_trans\"\n },\n {\n \"metric\": \"Conversion (Baseline)\",\n \"count\": \"&conversion\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "VALU Arithmetic Instr Mix", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "field": "metric" - } - ] - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 0, - "y": 26 - }, - "id": 275, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"buffer_instr\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_read\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_write\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_atomic\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \n \"flat_instr\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_read\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_write\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_atomic\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\" ] }\n }\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"type\": \"Buffer Instr\",\n \"count\": \"&buffer_instr\"\n },\n {\n \"type\": \"Buffer Read\",\n \"count\": \"&buffer_read\"\n },\n {\n \"type\": \"Buffer Write\",\n \"count\": \"&buffer_write\"\n },\n {\n \"type\": \"Buffer Atomic\",\n \"count\": \"&buffer_atomic\"\n },\n {\n \"type\": \"Flat Instr\",\n \"count\": \"&flat_instr\"\n },\n {\n \"type\": \"Flat Read\",\n \"count\": \"&flat_read\"\n },\n {\n \"type\": \"Flat Write\",\n \"count\": \"&flat_write\"\n },\n {\n \"type\": \"Flat Atomic\",\n \"count\": \"&flat_atomic\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Mix)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"buffer_instr\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_read\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_write\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_atomic\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n\n \"flat_instr\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_read\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_write\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_atomic\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\" ] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"type\": \"Buffer Instr (Baseline)\",\n \"count\": \"&buffer_instr\"\n },\n {\n \"type\": \"Buffer Read (Baseline)\",\n \"count\": \"&buffer_read\"\n },\n {\n \"type\": \"Buffer Write (Baseline)\",\n \"count\": \"&buffer_write\"\n },\n {\n \"type\": \"Buffer Atomic (Baseline)\",\n \"count\": \"&buffer_atomic\"\n },\n {\n \"type\": \"Flat Instr (Baseline)\",\n \"count\": \"&flat_instr\"\n },\n {\n \"type\": \"Flat Read (Baseline)\",\n \"count\": \"&flat_read\"\n },\n {\n \"type\": \"Flat Write (Baseline)\",\n \"count\": \"&flat_write\"\n },\n {\n \"type\": \"Flat Atomic (Baseline)\",\n \"count\": \"&flat_atomic\"\n }\n\n ]\n }},\n\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "VMEM Instr Mix", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "type 2": true - }, - "indexByName": {}, - "renameByName": { - "count": "Count", - "count 1": "Avg (Current)", - "count 2": "Avg (Baseline)", - "type": "VMEM Instr", - "type 1": "VMEM Instr" - } - } - } - ], - "transparent": true, - "type": "table" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 12, - "x": 12, - "y": 33 - }, - "id": 16, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"mfma_i8\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_I8\", \"&denom\" ] }\n },\n \"mfma_f16\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F16\", \"&denom\" ] }\n },\n \"mfma_bf16\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_BF16\", \"&denom\" ] }\n },\n \"mfma_f32\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F32\", \"&denom\" ] }\n },\n \"mfma_f64\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F64\", \"&denom\" ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"type\": \"MFMA-I8\",\n \"count\": \"&mfma_i8\"\n },\n {\n \"type\": \"MFMA-F16\",\n \"count\": \"&mfma_f16\"\n },\n {\n \"type\": \"MFMA-BF16\",\n \"count\": \"&mfma_bf16\"\n },\n {\n \"type\": \"MFMA-F32\",\n \"count\": \"&mfma_f32\"\n },\n {\n \"type\": \"MFMA-F64\",\n \"count\": \"&mfma_f64\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Mix)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"mfma_i8\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_I8\", \"&denom\" ] }\n },\n \"mfma_f16\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F16\", \"&denom\" ] }\n },\n \"mfma_bf16\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_BF16\", \"&denom\" ] }\n },\n \"mfma_f32\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F32\", \"&denom\" ] }\n },\n \"mfma_f64\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F64\", \"&denom\" ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"type\": \"MFMA-I8 (Baseline)\",\n \"count\": \"&mfma_i8\"\n },\n {\n \"type\": \"MFMA-F16 (Baseline)\",\n \"count\": \"&mfma_f16\"\n },\n {\n \"type\": \"MFMA-BF16 (Baseline)\",\n \"count\": \"&mfma_bf16\"\n },\n {\n \"type\": \"MFMA-F32 (Baseline)\",\n \"count\": \"&mfma_f32\"\n },\n {\n \"type\": \"MFMA-F64 (Baseline)\",\n \"count\": \"&mfma_f64\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "MFMA Arithmetic Instr Mix", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "type 2": true - }, - "indexByName": {}, - "renameByName": { - "count": "Count", - "count 1": "Avg (Current)", - "count 2": "Avg (Baseline)", - "type": "MFMA Instr", - "type 1": "MFMA Instr" - } - } - } - ], - "transparent": true, - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Compute Unit - Instruction Mix", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 9 - }, - "id": 8, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 0, - "y": 10 - }, - "id": 211, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "/.*/", - "values": true - }, - "showUnfilled": true, - "text": { - "titleSize": 14, - "valueSize": 14 - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"valu_flops_val\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }] }] }\n ]}\n ,{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }]\n }},\n\n \"mfma_flops_f16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_bf16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f32_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f64_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_i8_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } }\n\n }}, \n {\"$set\": {\n \"array\": [\n {\n \"valu_flops_pop\": {\"$divide\": [{ \"$multiply\": [100, \"&valu_flops_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 64, 2 ]}, 1000] }] },\n \"mfma_flops_bf16_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_bf16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 512 ]}, 1000] }]},\n \"mfma_flops_f16_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 1024 ]}, 1000] }]},\n \"mfma_flops_f32_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f32_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 256 ]}, 1000] }]},\n \"mfma_flops_f64_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f64_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 256 ]}, 1000] }]},\n \"mfma_flops_i8_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_i8_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $numCU, 1024 ]}, 1000] }]}\n }\n ]\n }},\n\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n \n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"valu_flops_val\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }] }] }\n ]}\n ,{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }]\n }},\n\n \"mfma_flops_f16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_bf16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f32_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_f64_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n \"mfma_flops_i8_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] } },\n\n \"instr_val\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS\", { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }] }\n }\n\n }}, \n {\"$set\": {\n \"array\": [\n {\n \"valu_flops_pop\": {\"$divide\": [{ \"$multiply\": [100, \"&valu_flops_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 64, 2 ]}, 1000] }] },\n \"mfma_flops_bf16_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_bf16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 512 ]}, 1000] }]},\n \"mfma_flops_f16_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 1024 ]}, 1000] }]},\n \"mfma_flops_f32_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f32_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 256 ]}, 1000] }]},\n \"mfma_flops_f64_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f64_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 256 ]}, 1000] }]},\n \"mfma_flops_i8_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_i8_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $numCU2, 1024 ]}, 1000] }]}\n }\n ]\n }},\n\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n \n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - } - ], - "title": "Speed-of-Light: Compute Pipeline", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "mfma_flops_bf16_pop 1": 4, - "mfma_flops_bf16_pop 2": 5, - "mfma_flops_f16_pop 1": 6, - "mfma_flops_f16_pop 2": 7, - "mfma_flops_f32_pop 1": 8, - "mfma_flops_f32_pop 2": 9, - "mfma_flops_f64_pop 1": 10, - "mfma_flops_f64_pop 2": 11, - "mfma_flops_i8_pop 1": 12, - "mfma_flops_i8_pop 2": 13, - "valu_flops_pop 1": 0, - "valu_flops_pop 2": 1, - "valu_iops_pop 1": 2, - "valu_iops_pop 2": 3 - }, - "renameByName": { - "BW (Pct-of-Peak) 1": "BW Pct-of-Peak (Current)", - "BW (Pct-of-Peak) 2": "BW Pct-of-Peak (Baseline)", - "Bandwith (Pct-of-Peak)": "", - "Bandwith (Pct-of-Peak) 1": "BW Pct-of-Peak (Current)", - "Bandwith (Pct-of-Peak) 2": "BW Pct-of-Peak (Baseline) ", - "Bank Conflict Rate 1": "Bank Conflict Rate (Current)", - "Bank Conflict Rate 2": "Bank Conflict Rate (Baseline)", - "Cache Hit 1": "Cache Hit (Current)", - "Cache Hit 2": "Cache Hit (Baseline)", - "Latency (Cycles) 1": "Latency (Current) [Cycles]", - "Latency (Cycles) 2": "Latency (Baseline) [Cycles]", - "Stall 1": "Stall (Current)", - "Stall 2": "Stall (Baseline)", - "Util 1": "Util (Current)", - "Util 2": "Util (Baseline)", - "flops_pop": "FLOPs", - "flops_pop 1": "FLOPs (Current)", - "flops_pop 2": "FLOPs (Baseline)", - "iops_pop": "IOPs", - "iops_pop 1": "IOPs (Current)", - "iops_pop 2": "IOPs (Baseline)", - "mfma_flops_bf16_pop": "MFMA- BF16 (FLOPs)", - "mfma_flops_bf16_pop 1": "MFMA-BF16 (Cur)", - "mfma_flops_bf16_pop 2": "MFMA-BF16 (Baseline)", - "mfma_flops_f16_pop": "MFMA-F16 (FLOPs)", - "mfma_flops_f16_pop 1": "MFMA-F16 (Cur)", - "mfma_flops_f16_pop 2": "MFMA-F16 (Baseline)", - "mfma_flops_f32_pop": "MFMA-F32 (FLOPs)", - "mfma_flops_f32_pop 1": "MFMA-F32 (Cur)", - "mfma_flops_f32_pop 2": "MFMA-F32 (Baseline)", - "mfma_flops_f64_pop": "MFMA-F64 (FLOPs)", - "mfma_flops_f64_pop 1": "MFMA-F64 (Cur)", - "mfma_flops_f64_pop 2": "MFMA-F64 (Baseline)", - "mfma_flops_i8_pop": "MFMA-i8 (IOPs)", - "mfma_flops_i8_pop 1": "MFMA-I8 (Cur)", - "mfma_flops_i8_pop 2": "MFMA-I8 (Baseline)", - "valu_flops_pop": "VALU (FLOPs)", - "valu_flops_pop 1": "VALU FLOPs (Cur)", - "valu_flops_pop 2": "VALU FLOPs (Baseline)", - "valu_iops_pop": "VALU (IOPs)", - "valu_iops_pop 1": "VALU IOPs (Cur)", - "valu_iops_pop 2": "VALU IOPs (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 12, - "y": 10 - }, - "id": 257, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "rawQuery": true, - "refId": "pmc_perf", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_ipcAvg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] }\n },\n \"min_ipcAvg\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] } \n },\n \"max_ipcAvg\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] }\n },\n \n \"avg_ipcIssue\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"min_ipcIssue\": {\n \"$min\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"max_ipcIssue\": {\n \"$max\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n\n \"avg_saluUtil\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU ] }\n },\n \"min_saluUtil\": {\n \"$min\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU ] }\n },\n \"max_saluUtil\": {\n \"$max\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU ] }\n },\n\n \"avg_valuUtil\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU ] }\n },\n \"min_valuUtil\": {\n \"$min\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU ] }\n },\n \"max_valuUtil\": {\n \"$max\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU ] }\n },\n\n \"avg_mfmaUtil\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $numCU, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n \"min_mfmaUtil\": {\n \"$min\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $numCU, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n \"max_mfmaUtil\": {\n \"$max\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $numCU, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n\n \"avg_mfmaInstrCycles\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n \"min_mfmaInstrCycles\": {\n \"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n \"max_mfmaInstrCycles\": {\n \"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n\n\n \"avg_unpredthreads_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \"min_unpredthreads_val\": {\n \"$min\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \"max_unpredthreads_val\": {\n \"$max\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n\n \"avg_instrFetchBand\": {\n \"$avg\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \"min_instrFetchBand\": {\n \"$min\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \"max_instrFetchBand\": {\n \"$max\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n }\n\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"IPC (Avg)\",\n \"Avg\": \"&avg_ipcAvg\",\n \"Min\": \"&min_ipcAvg\",\n \"Max\": \"&max_ipcAvg\",\n \"Unit\": \"Instr/cycle\"\n },\n {\n \"Metric\": \"IPC (Issue)\",\n \"Avg\": \"&avg_ipcIssue\",\n \"Min\": \"&min_ipcIssue\",\n \"Max\": \"&max_ipcIssue\",\n \"Unit\": \"Instr/cycle\"\n },\n {\n \"Metric\": \"SALU Util\",\n \"Avg\": \"&avg_saluUtil\",\n \"Min\": \"&min_saluUtil\",\n \"Max\": \"&max_saluUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"VALU Util\",\n \"Avg\": \"&avg_valuUtil\",\n \"Min\": \"&min_valuUtil\",\n \"Max\": \"&max_valuUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"VALU Active Threads\",\n \"Avg\": \"&avg_unpredthreads_val\",\n \"Min\": \"&min_unpredthreads_val\",\n \"Max\": \"&max_unpredthreads_val\",\n \"Unit\": \"Threads\"\n },\n {\n \"Metric\": \"MFMA Util\",\n \"Avg\": \"&avg_mfmaUtil\",\n \"Min\": \"&min_mfmaUtil\",\n \"Max\": \"&max_mfmaUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"MFMA Instr Cycles\",\n \"Avg\": \"&avg_mfmaInstrCycles\",\n \"Min\": \"&min_mfmaInstrCycles\",\n \"Max\": \"&max_mfmaInstrCycles\",\n \"Unit\": \"cycles/instr\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "pmc_perf2", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_ipcAvg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] }\n },\n \"min_ipcAvg\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] } \n },\n \"max_ipcAvg\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] }\n },\n \n \"avg_ipcIssue\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"min_ipcIssue\": {\n \"$min\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"max_ipcIssue\": {\n \"$max\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n\n \"avg_saluUtil\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU2 ] }\n },\n \"min_saluUtil\": {\n \"$min\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU2 ] }\n },\n \"max_saluUtil\": {\n \"$max\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU2 ] }\n },\n\n \"avg_valuUtil\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU2 ] }\n },\n \"min_valuUtil\": {\n \"$min\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU2 ] }\n },\n \"max_valuUtil\": {\n \"$max\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$numCU2 ] }\n },\n\n\n \"avg_mfmaUtil\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $numCU2, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n \"min_mfmaUtil\": {\n \"$min\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $numCU2, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n \"max_mfmaUtil\": {\n \"$max\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $numCU2, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n\n \"avg_mfmaInstrCycles\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n \"min_mfmaInstrCycles\": {\n \"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n \"max_mfmaInstrCycles\": {\n \"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n\n \"avg_unpredthreads_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \"min_unpredthreads_val\": {\n \"$min\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \"max_unpredthreads_val\": {\n \"$max\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n\n \"avg_instrFetchBand\": {\n \"$avg\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \"min_instrFetchBand\": {\n \"$min\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \"max_instrFetchBand\": {\n \"$max\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"IPC (Avg)\",\n \"Avg 2\": \"&avg_ipcAvg\",\n \"Min 2\": \"&min_ipcAvg\",\n \"Max 2\": \"&max_ipcAvg\",\n \"Unit\": \"Instr/cycle\"\n },\n {\n \"Metric\": \"IPC (Issue)\",\n \"Avg 2\": \"&avg_ipcIssue\",\n \"Min 2\": \"&min_ipcIssue\",\n \"Max 2\": \"&max_ipcIssue\",\n \"Unit\": \"Instr/cycle\"\n },\n {\n \"Metric\": \"SALU Util\",\n \"Avg 2\": \"&avg_saluUtil\",\n \"Min 2\": \"&min_saluUtil\",\n \"Max 2\": \"&max_saluUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"VALU Util\",\n \"Avg 2\": \"&avg_valuUtil\",\n \"Min 2\": \"&min_valuUtil\",\n \"Max 2\": \"&max_valuUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"VALU Active Threads\",\n \"Avg 2\": \"&avg_unpredthreads_val\",\n \"Min 2\": \"&min_unpredthreads_val\",\n \"Max 2\": \"&max_unpredthreads_val\",\n \"Unit\": \"Threads\"\n },\n {\n \"Metric\": \"MFMA Util\",\n \"Avg 2\": \"&avg_mfmaUtil\",\n \"Min 2\": \"&min_mfmaUtil\",\n \"Max 2\": \"&max_mfmaUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"MFMA Instr Cycles\",\n \"Avg 2\": \"&avg_mfmaInstrCycles\",\n \"Min 2\": \"&min_mfmaInstrCycles\",\n \"Max 2\": \"&max_mfmaInstrCycles\",\n \"Unit\": \"cycles/instr\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Pipeline Stats", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Avg": 1, - "Avg 2": 2, - "Max": 5, - "Max 2": 6, - "Metric": 0, - "Min": 3, - "Min 2": 4, - "Unit": 7 - }, - "renameByName": { - "Avg 2": "Avg (Baseline)", - "Max 2": "Max (Baseline)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 111 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 117 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 135 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 112 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 83 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 118 - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 21 - }, - "id": 96, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_intOps\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n \"min_intOps\":{\"$min\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n \"max_intOps\":{\"$max\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n\n\n \"avg_flops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"min_flops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n\n \"max_flops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n\n\n \"avg_int8Ops\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n \"min_int8Ops\":{\"$min\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n \"max_int8Ops\":{\"$max\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n\n \"avg_int32Ops\":{\"$avg\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n \"min_int32Ops\":{\"$min\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n \"max_int32Ops\":{\"$max\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n\n \"avg_int64Ops\":{\"$avg\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n \"min_int64Ops\":{\"$min\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n \"max_int64Ops\":{\"$max\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n\n \"avg_f16Ops\":{\"$avg\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n \"min_f16Ops\":{\"$min\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n \"max_f16Ops\":{\"$max\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n\n\n\n \"avg_bf16Ops\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n \"min_bf16Ops\":{\"$min\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n \"max_bf16Ops\":{\"$max\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n\n \"avg_f32Ops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n \"min_f32Ops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n \"max_f32Ops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n\n \"avg_f64Ops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"min_f64Ops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"max_f64Ops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"FLOPs (Total)\",\n \"Avg\": \"&avg_flops\",\n \"Min\": \"&min_flops\",\n \"Max\": \"&max_flops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"INT8 OPs\",\n \"Avg\": \"&avg_int8Ops\",\n \"Min\": \"&min_int8Ops\",\n \"Max\": \"&max_int8Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"F16 OPs\",\n \"Avg\": \"&avg_f16Ops\",\n \"Min\": \"&min_f16Ops\",\n \"Max\": \"&max_f16Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"BF16 OPs\",\n \"Avg\": \"&avg_bf16Ops\",\n \"Min\": \"&min_bf16Ops\",\n \"Max\": \"&max_bf16Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n\n {\n \"Metric\": \"F32 OPs\",\n \"Avg\": \"&avg_f32Ops\",\n \"Min\": \"&min_f32Ops\",\n \"Max\": \"&max_f32Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"F64 OPs\",\n \"Avg\": \"&avg_f64Ops\",\n \"Min\": \"&min_f64Ops\",\n \"Max\": \"&max_f64Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_intOps\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n \"min_intOps\":{\"$min\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n \"max_intOps\":{\"$max\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n\n\n \"avg_flops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"min_flops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n\n \"max_flops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n\n\n \"avg_int8Ops\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n \"min_int8Ops\":{\"$min\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n \"max_int8Ops\":{\"$max\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n\n \"avg_int32Ops\":{\"$avg\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n \"min_int32Ops\":{\"$min\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n \"max_int32Ops\":{\"$max\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n\n \"avg_int64Ops\":{\"$avg\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n \"min_int64Ops\":{\"$min\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n \"max_int64Ops\":{\"$max\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n\n \"avg_f16Ops\":{\"$avg\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n \"min_f16Ops\":{\"$min\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n \"max_f16Ops\":{\"$max\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n\n\n\n \"avg_bf16Ops\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n \"min_bf16Ops\":{\"$min\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n \"max_bf16Ops\":{\"$max\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n\n \"avg_f32Ops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n \"min_f32Ops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n \"max_f32Ops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n\n \"avg_f64Ops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"min_f64Ops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"max_f64Ops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"FLOPs (Total)\",\n \"Avg\": \"&avg_flops\",\n \"Min\": \"&min_flops\",\n \"Max\": \"&max_flops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"INT8 OPs\",\n \"Avg\": \"&avg_int8Ops\",\n \"Min\": \"&min_int8Ops\",\n \"Max\": \"&max_int8Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"F16 OPs\",\n \"Avg\": \"&avg_f16Ops\",\n \"Min\": \"&min_f16Ops\",\n \"Max\": \"&max_f16Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"BF16 OPs\",\n \"Avg\": \"&avg_bf16Ops\",\n \"Min\": \"&min_bf16Ops\",\n \"Max\": \"&max_bf16Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n\n {\n \"Metric\": \"F32 OPs\",\n \"Avg\": \"&avg_f32Ops\",\n \"Min\": \"&min_f32Ops\",\n \"Max\": \"&max_f32Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"F64 OPs\",\n \"Avg\": \"&avg_f64Ops\",\n \"Min\": \"&min_f64Ops\",\n \"Max\": \"&max_f64Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Arithmetic Operations", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 1, - "Avg 2": 2, - "Max 1": 5, - "Max 2": 6, - "Metric 1": 0, - "Metric 2": 7, - "Min 1": 3, - "Min 2": 4, - "Unit 1": 9, - "Unit 2": 8 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 21 - }, - "id": 255, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_VMEM", - "target": "${Workload1}.SQ_INST_LEVEL_VMEM.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_vmemLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n },\n \"min_vmemLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n },\n \"max_vmemLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"VMEM Latency\",\n \"Avg\": \"&avg_vmemLat\",\n \"Min\": \"&min_vmemLat\",\n \"Max\": \"&max_vmemLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_SMEM", - "target": "${Workload1}.SQ_INST_LEVEL_SMEM.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_smemLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n },\n \"min_smemLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n },\n \"max_smemLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"SMEM Latency\",\n \"Avg\":\"&avg_smemLat\",\n \"Min\":\"&min_smemLat\",\n \"Max\":\"&max_smemLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_IFETCH_LEVEL", - "target": "${Workload1}.SQ_IFETCH_LEVEL.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_instrFetchLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n },\n \"min_instrFetchLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n },\n \"max_instrFetchLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"Instr Fetch Latency\",\n \"Avg\":\"&avg_instrFetchLat\",\n \"Min\":\"&min_instrFetchLat\",\n \"Max\":\"&max_instrFetchLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_LDS", - "target": "${Workload1}.SQ_INST_LEVEL_LDS.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_ldsLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"min_ldsLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"max_ldsLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"LDS Latency\",\n \"Avg\":\"&avg_ldsLat\",\n \"Min\":\"&min_ldsLat\",\n \"Max\":\"&max_ldsLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_VMEM2", - "target": "${Workload2}.SQ_INST_LEVEL_VMEM.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_vmemLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n },\n \"min_vmemLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n },\n \"max_vmemLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"VMEM Latency\",\n \"Avg 2\": \"&avg_vmemLat\",\n \"Min 2\": \"&min_vmemLat\",\n \"Max 2\": \"&max_vmemLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_SMEM2", - "target": "${Workload2}.SQ_INST_LEVEL_SMEM.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_smemLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n },\n \"min_smemLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n },\n \"max_smemLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"SMEM Latency\",\n \"Avg 2\":\"&avg_smemLat\",\n \"Min 2\":\"&min_smemLat\",\n \"Max 2\":\"&max_smemLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_IFETCH_LEVEL2", - "target": "${Workload2}.SQ_IFETCH_LEVEL.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_instrFetchLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n },\n \"min_instrFetchLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n },\n \"max_instrFetchLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"Instr Fetch Latency\",\n \"Avg 2\":\"&avg_instrFetchLat\",\n \"Min 2\":\"&min_instrFetchLat\",\n \"Max 2\":\"&max_instrFetchLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_LDS2", - "target": "${Workload2}.SQ_INST_LEVEL_LDS.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_ldsLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"min_ldsLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"max_ldsLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"LDS Latency\",\n \"Avg 2\":\"&avg_ldsLat\",\n \"Min 2\":\"&min_ldsLat\",\n \"Max 2\":\"&max_ldsLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - } - ], - "title": "Memory Latencies", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Avg": 1, - "Avg 2": 2, - "Max": 5, - "Max 2": 6, - "Metric": 0, - "Min": 3, - "Min 2": 4, - "Unit": 7 - }, - "renameByName": { - "Avg": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Compute Unit - Compute Pipeline", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 10 - }, - "id": 98, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 45 - }, - "id": 205, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "/.*/", - "values": true - }, - "showUnfilled": true, - "text": { - "titleSize": 14, - "valueSize": 16 - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \n \"bconf_rate\": {\n \"$avg\": {\"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n {\"$multiply\": [\"&SQ_LDS_BANK_CONFLICT\", 3.125]},\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n } \n },\n \n \"bw_pop\": {\n \"$avg\": {\"$divide\": [\n {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks\"}\n ]}, \n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]},\n \n {\"$multiply\": [$sclk, $numCU, 0.00128]}\n ]}\n },\n\n \"lds_util\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [ 100, \"&SQ_LDS_IDX_ACTIVE\" ]}, \n {\"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}\n ]}\n },\n\n \"lds_access_rate\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [200, \"&SQ_ACTIVE_INST_LDS\" ]}, \n {\"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}\n ]}\n }\n \n }},\n \n {\"$set\": {\n \"array\": [\n {\n \"Utilization\": \"&lds_util\",\n \"Access Rate\": \"&lds_access_rate\",\n \"Bandwith (Pct-of-Peak)\": \"&bw_pop\",\n \"Bank Conflict Rate\": \"&bconf_rate\"\n }\n \n ]\n }},\n \n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n \n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n \n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Local Data Share)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"bconf_rate\": {\n \"$avg\": {\"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n {\"$multiply\": [\"&SQ_LDS_BANK_CONFLICT\", 3.125]},\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n } \n },\n\n \"bw_pop\": {\n \"$avg\": {\"$divide\": [\n {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$L2Banks2\"}\n ]}, \n {\"$subtract\": [\"&EndNs\", \"&BeginNs\"]}\n ]},\n \n {\"$multiply\": [$sclk2, $numCU2, 0.00128]}\n ]}\n },\n \"lds_util\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [ 100, \"&SQ_LDS_IDX_ACTIVE\" ]}, \n {\"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}\n ]}\n },\n\n \"lds_access_rate\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [200, \"&SQ_ACTIVE_INST_LDS\" ]}, \n {\"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}\n ]}\n }\n\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Utilization\": \"&lds_util\",\n \"Access Rate\": \"&lds_access_rate\",\n \"Bandwith (Pct-of-Peak)\": \"&bw_pop\",\n \"Bank Conflict Rate\": \"&bconf_rate\"\n }\n\n ]\n }},\n\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n \n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - } - ], - "title": "Speed-of-Light: LDS", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Access Rate 1": 6, - "Access Rate 2": 7, - "Bandwith (Pct-of-Peak) 1": 0, - "Bandwith (Pct-of-Peak) 2": 1, - "Bank Conflict Rate 1": 2, - "Bank Conflict Rate 2": 3, - "Utilization 1": 4, - "Utilization 2": 5 - }, - "renameByName": { - "Access Rate 1": "Access Rate (Current)", - "Access Rate 2": "Access Rate (Baseline)", - "BW (Pct-of-Peak) 1": "BW Pct-of-Peak (Current)", - "BW (Pct-of-Peak) 2": "BW Pct-of-Peak (Baseline)", - "Bandwith (Pct-of-Peak)": "", - "Bandwith (Pct-of-Peak) 1": "BW Pct-of-Peak (Current)", - "Bandwith (Pct-of-Peak) 2": "BW Pct-of-Peak (Baseline) ", - "Bank Conflict Rate 1": "Bank Conflict Rate (Current)", - "Bank Conflict Rate 2": "Bank Conflict Rate (Baseline)", - "Cache Hit 1": "Cache Hit (Current)", - "Cache Hit 2": "Cache Hit (Baseline)", - "Latency (Cycles) 1": "Latency (Current) [Cycles]", - "Latency (Cycles) 2": "Latency (Baseline) [Cycles]", - "Stall 1": "Stall (Current)", - "Stall 2": "Stall (Baseline)", - "Util 1": "Util (Current)", - "Util 2": "Util (Baseline)", - "Utilization 1": "Util (Current)", - "Utilization 2": "Util (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "min": -100000000000000000000, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 114 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 107 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 128 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 115 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 138 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 141 - } - ] - } - ] - }, - "gridPos": { - "h": 12, - "w": 12, - "x": 12, - "y": 45 - }, - "id": 100, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_ldsInstrs\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \"min_ldsInstrs\": {\n \"$min\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \"max_ldsInstrs\": {\n \"$max\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \n \"avg_indexAccesses\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \"min_indexAccesses\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \"max_indexAccesses\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \n \"avg_atomicCycles\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \"min_atomicCycles\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \"max_atomicCycles\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \n \"avg_bankConflicts\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \"min_bankConflicts\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \"max_bankConflicts\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \n \"avg_addrConflicts\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \"min_addrConflicts\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \"max_addrConflicts\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \n \n \"avg_unalignedStall\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \"min_unalignedStall\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \"max_unalignedStall\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \n \"avg_memViolations\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \"min_memViolations\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \"max_memViolations\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \n \"avg_bconf_per_op\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \"min_bconf_per_op\": {\n \"$min\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \"max_bconf_per_op\": {\n \"$max\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \n \"avg_bw\": {\n \"$avg\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$L2Banks\"}]}, \n \"&denom\"\n ]\n }\n },\n \"min_bw\": {\n \"$min\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$L2Banks\"}]}, \n \"&denom\"\n ]\n }\n },\n \"max_bw\": {\n \"$max\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$L2Banks\"}]}, \n \"&denom\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"LDS Instrs\",\n \"avg\": \"&avg_ldsInstrs\",\n \"min\": \"&min_ldsInstrs\",\n \"max\": \"&max_ldsInstrs\",\n \"Unit\":{\"$concat\": [\"Instr \", $normUnit]} \n },\n {\n \"metric\": \"Bandwidth\",\n \"avg\": \"&avg_bw\",\n \"min\": \"&min_bw\",\n \"max\": \"&max_bw\",\n \"Unit\": {\"$concat\": [\"Bytes \", $normUnit]}\n },\n {\n \"metric\": \"Bank Conficts/Access\",\n \"avg\": \"&avg_bconf_per_op\",\n \"min\": \"&min_bconf_per_op\",\n \"max\": \"&max_bconf_per_op\",\n \"Unit\": \"Conflicts/Access\"\n },\n {\n \"metric\": \"Index Accesses\",\n \"avg\": \"&avg_indexAccesses\",\n \"min\": \"&min_indexAccesses\",\n \"max\": \"&max_indexAccesses\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Cycles\",\n \"avg\": \"&avg_atomicCycles\",\n \"min\": \"&min_atomicCycles\",\n \"max\": \"&max_atomicCycles\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Bank Conflict\",\n \"avg\": \"&avg_bankConflicts\",\n \"min\": \"&min_bankConflicts\",\n \"max\": \"&max_bankConflicts\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Addr Conflict\",\n \"avg\": \"&avg_addrConflicts\",\n \"min\": \"&min_addrConflicts\",\n \"max\": \"&max_addrConflicts\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Unaligned Stall\",\n \"avg\": \"&avg_unalignedStall\",\n \"min\": \"&min_unalignedStall\",\n \"max\": \"&max_unalignedStall\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Mem Violations\",\n \"avg\": \"&avg_memViolations\",\n \"min\": \"&min_memViolations\",\n \"max\": \"&max_memViolations\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_INST_LEVEL_LDS\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"avg_ldsLatency\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"min_ldsLatency\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"max_ldsLatency\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"metric\": \"LDS Latency\",\n \"avg\": \"&avg_ldsLatency\",\n \"min\": \"&min_ldsLatency\",\n \"max\": \"&max_ldsLatency\",\n \"Unit\": \"Cycles\"\n }}\n ]\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}}, \n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Local Data Share)\"}}\n \n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_ldsInstrs\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \"min_ldsInstrs\": {\n \"$min\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \"max_ldsInstrs\": {\n \"$max\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \n \"avg_indexAccesses\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \"min_indexAccesses\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \"max_indexAccesses\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \n \"avg_atomicCycles\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \"min_atomicCycles\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \"max_atomicCycles\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \n \"avg_bankConflicts\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \"min_bankConflicts\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \"max_bankConflicts\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \n \"avg_addrConflicts\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \"min_addrConflicts\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \"max_addrConflicts\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \"avg_unalignedStall\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \"min_unalignedStall\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \"max_unalignedStall\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \n \"avg_memViolations\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \"min_memViolations\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \"max_memViolations\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \n \n \"avg_bconf_per_op\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \"min_bconf_per_op\": {\n \"$min\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \"max_bconf_per_op\": {\n \"$max\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \n \"avg_bw\": {\n \"$avg\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$L2Banks\"}]}, \n \"&denom\"\n ]\n }\n },\n \"min_bw\": {\n \"$min\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$L2Banks\"}]}, \n \"&denom\"\n ]\n }\n },\n \"max_bw\": {\n \"$max\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$L2Banks\"}]}, \n \"&denom\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"LDS Instrs\",\n \"avg\": \"&avg_ldsInstrs\",\n \"min\": \"&min_ldsInstrs\",\n \"max\": \"&max_ldsInstrs\",\n \"Unit\":{\"$concat\": [\"Instr \", $normUnit]} \n },\n {\n \"metric\": \"Bandwidth\",\n \"avg\": \"&avg_bw\",\n \"min\": \"&min_bw\",\n \"max\": \"&max_bw\",\n \"Unit\": {\"$concat\": [\"Bytes \", $normUnit]}\n },\n {\n \"metric\": \"Bank Conficts/Access\",\n \"avg\": \"&avg_bconf_per_op\",\n \"min\": \"&min_bconf_per_op\",\n \"max\": \"&max_bconf_per_op\",\n \"Unit\": \"Conflicts/Access\"\n },\n {\n \"metric\": \"Index Accesses\",\n \"avg\": \"&avg_indexAccesses\",\n \"min\": \"&min_indexAccesses\",\n \"max\": \"&max_indexAccesses\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Cycles\",\n \"avg\": \"&avg_atomicCycles\",\n \"min\": \"&min_atomicCycles\",\n \"max\": \"&max_atomicCycles\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Bank Conflict\",\n \"avg\": \"&avg_bankConflicts\",\n \"min\": \"&min_bankConflicts\",\n \"max\": \"&max_bankConflicts\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Addr Conflict\",\n \"avg\": \"&avg_addrConflicts\",\n \"min\": \"&min_addrConflicts\",\n \"max\": \"&max_addrConflicts\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Unaligned Stall\",\n \"avg\": \"&avg_unalignedStall\",\n \"min\": \"&min_unalignedStall\",\n \"max\": \"&max_unalignedStall\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Mem Violations\",\n \"avg\": \"&avg_memViolations\",\n \"min\": \"&min_memViolations\",\n \"max\": \"&max_memViolations\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_INST_LEVEL_LDS\",\n \"pipeline\": [\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Local Data Share)\"}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"avg_ldsLatency\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"min_ldsLatency\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"max_ldsLatency\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"metric\": \"LDS Latency\",\n \"avg\": \"&avg_ldsLatency\",\n \"min\": \"&min_ldsLatency\",\n \"max\": \"&max_ldsLatency\",\n \"Unit\": \"Cycles\"\n }}\n ]\n }}\n ]);", - "type": "table" - } - ], - "title": "LDS Stats", - "transformations": [ - { - "id": "concatenate", - "options": { - "frameNameLabel": "frame", - "frameNameMode": "field" - } - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Unit 2": true, - "metric 2": true - }, - "indexByName": { - "Unit 1": 9, - "Unit 2": 8, - "avg 1": 1, - "avg 2": 2, - "max 1": 5, - "max 2": 6, - "metric 1": 0, - "metric 2": 7, - "min 1": 3, - "min 2": 4 - }, - "renameByName": { - "avg 1": "Avg (Current)", - "avg 2": "Avg (Baseline)", - "max 1": "Max (Current)", - "max 2": "Max (Baseline)", - "min 1": "Min (Current)", - "min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Local Data Share (LDS)", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 11 - }, - "id": 44, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 12 - }, - "id": 48, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "/.*/", - "values": true - }, - "showUnfilled": true, - "text": {} - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"reqBW_pop\": {\n \"$avg\": {\n \"$divide\": [\n {\"$multiply\": [\"&SQC_ICACHE_REQ\", 100000]}, \n {\"$multiply\": [ {\"$multiply\": [$sclk, $numSQC]}, {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]} ]}\n ]\n }\n },\n\n \"cacheHit\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQC_ICACHE_HITS\", 100] }, { \"$add\": [ \"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\" ] } ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"Bandwidth\": \"&reqBW_pop\",\n \"Cache Hit\": \"&cacheHit\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Cache)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"reqBW_pop\": {\n \"$avg\": {\n \"$divide\": [\n {\"$multiply\": [\"&SQC_ICACHE_REQ\", 100000]}, \n {\"$multiply\": [ {\"$multiply\": [$sclk2, $numSQC2]}, {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]} ]}\n ]\n }\n },\n\n \"cacheHit\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQC_ICACHE_HITS\", 100] }, { \"$add\": [ \"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] } ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"Bandwidth\": \"&reqBW_pop\",\n \"Cache Hit\": \"&cacheHit\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "Speed-of-Light: Instruction Cache ", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "BW (Pct-of-Peak) 1": 4, - "BW (Pct-of-Peak) 2": 5, - "Cache Hit 1": 6, - "Cache Hit 2": 7, - "Stall 1": 2, - "Stall 2": 3, - "Util 1": 0, - "Util 2": 1 - }, - "renameByName": { - "BW (Pct-of-Peak) 1": "BW Pct-of-Peak (Current)", - "BW (Pct-of-Peak) 2": "BW Pct-of-Peak (Baseline)", - "BW Pct-of-Peak 1": "BW Pct-of-Peak (Current)", - "BW Pct-of-Peak 2": "BW Pct-of-Peak (Baseline)", - "Bandwidth 1": "Bandwidth (Current)", - "Bandwidth 2": "Bandwidth (Baseline)", - "Cache Hit 1": "Cache Hit (Current)", - "Cache Hit 2": "Cache Hit (Baseline)", - "Stall 1": "Stall (Current)", - "Stall 2": "Stall (Baseline)", - "Util 1": "Util (Current)", - "Util 2": "Util (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 12 - }, - "id": 259, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "rawQuery": true, - "refId": "pmc_perf", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_req\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n \"min_req\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n \"max_req\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n\n \"avg_hits\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n \"min_hits\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n \"max_hits\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n\n \"avg_misses\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n \"min_misses\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n \"max_misses\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n\n \"avg_misses_dup\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"min_misses_dup\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"max_misses_dup\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n\n\n \"avg_cacheHit\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n },\n \"min_cacheHit\": {\n \"$min\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n },\n \"max_cacheHit\": {\n \"$max\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean\": \"&avg_req\",\n \"Min\": \"&min_req\",\n \"Max\": \"&max_req\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Hits\",\n \"Mean\": \"&avg_hits\",\n \"Min\": \"&min_hits\",\n \"Max\": \"&max_hits\",\n \"Unit\": {\"$concat\": [\"Hits \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Non Duplicated\",\n \"Mean\": \"&avg_misses\",\n \"Min\": \"&min_misses\",\n \"Max\": \"&max_misses\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Duplicated\",\n \"Mean\": \"&avg_misses_dup\",\n \"Min\": \"&min_misses_dup\",\n \"Max\": \"&max_misses_dup\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n \n {\n \"Metric\": \"Cache Hit\",\n \"Mean\": \"&avg_cacheHit\",\n \"Min\": \"&min_cacheHit\",\n \"Max\": \"&max_cacheHit\",\n \"Unit\": \"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "pmc_perf2", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Cache)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_req\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n \"min_req\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n \"max_req\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n\n \"avg_hits\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n \"min_hits\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n \"max_hits\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n\n \"avg_misses\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n \"min_misses\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n \"max_misses\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n\n \"avg_misses_dup\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"min_misses_dup\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"max_misses_dup\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n\n\n \"avg_cacheHit\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n },\n \"min_cacheHit\": {\n \"$min\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n },\n \"max_cacheHit\": {\n \"$max\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean 2\": \"&avg_req\",\n \"Min 2\": \"&min_req\",\n \"Max 2\": \"&max_req\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Hits\",\n \"Mean 2\": \"&avg_hits\",\n \"Min 2\": \"&min_hits\",\n \"Max 2\": \"&max_hits\",\n \"Unit\": {\"$concat\": [\"Hits \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Non Duplicated\",\n \"Mean 2\": \"&avg_misses\",\n \"Min 2\" : \"&min_misses\",\n \"Max 2\": \"&max_misses\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Duplicated\",\n \"Mean 2\": \"&avg_misses_dup\",\n \"Min 2\": \"&min_misses_dup\",\n \"Max 2\": \"&max_misses_dup\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n {\n \"Metric\": \"Cache Hit\",\n \"Mean 2\": \"&avg_cacheHit\",\n \"Min 2\": \"&min_cacheHit\",\n \"Max 2\": \"&max_cacheHit\",\n \"Unit\": \"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Instruction Cache Accesses", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Max": 5, - "Max 2": 6, - "Mean": 1, - "Mean 2": 2, - "Metric": 0, - "Min": 3, - "Min 2": 4, - "Unit": 7 - }, - "renameByName": { - "L1I Metric": "", - "Max": "Max (Current)", - "Max 2": "Max (Baseline)", - "Mean": "Avg (Current)", - "Mean 2": "Avg (Baseline)", - "Min": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Instruction Cache", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 12 - }, - "id": 203, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "L1K-TC BW - GB/s" - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 13 - }, - "id": 54, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showUnfilled": true, - "text": { - "titleSize": 14, - "valueSize": 16 - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"reqBW_pop\": {\n \"$avg\": {\n \"$divide\": [\n {\"$multiply\": [\"&SQC_DCACHE_REQ\", 100000]}, \n {\"$multiply\": [ {\"$multiply\": [$sclk, $numSQC]}, {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]} ]}\n ]\n }\n },\n \"cacheHit\": {\n \"$avg\": { \n \"$cond\":[\n {\"$ne\": [{ \"$add\": [ \"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0 ]},\n {\"$divide\": [{ \"$multiply\": [\"&SQC_DCACHE_HITS\", 100] }, { \"$add\": [ \"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } ]},\n null\n ]\n }\n }\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Bandwidth\": \"&reqBW_pop\",\n \"Cache Hit\": \"&cacheHit\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "sY628IJnz" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Scalar L1D Cache)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"reqBW_pop\": {\n \"$avg\": {\n \"$divide\": [\n {\"$multiply\": [\"&SQC_DCACHE_REQ\", 100000]}, \n {\"$multiply\": [ {\"$multiply\": [$sclk2, $numSQC2]}, {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]} ]}\n ]\n }\n },\n \"cacheHit\": {\n \"$avg\": { \n \"$cond\":[\n {\"$ne\": [{ \"$add\": [ \"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0 ]},\n {\"$divide\": [{ \"$multiply\": [\"&SQC_DCACHE_HITS\", 100] }, { \"$add\": [ \"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } ]},\n null\n ]\n }\n }\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Bandwidth\": \"&reqBW_pop\",\n \"Cache Hit\": \"&cacheHit\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "Speed-of-Light: Scalar L1D Cache", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "BW Pct-of-Peak 1": 0, - "BW Pct-of-Peak 2": 1, - "Cache Hit 1": 2, - "Cache Hit 2": 3, - "Stall 1": 6, - "Stall 2": 7, - "Util 1": 4, - "Util 2": 5 - }, - "renameByName": { - "BW Pct-of-Peak 1": "BW Pct-of-Peak (Current)", - "BW Pct-of-Peak 2": "BW Pct-of-Peak (Baseline)", - "Bandwidth 1": "Bandwidth (Current)", - "Bandwidth 2": "Bandwidth (Baseline)", - "Cache Hit 1": "Cache Hit (Current)", - "Cache Hit 2": "Cache Hit (Baseline)", - "Stall 1": "Stall (Current)", - "Stall 2": "Stall (Baseline)", - "Util 1": "Util (Current)", - "Util 2": "Util (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [] - }, - "gridPos": { - "h": 14, - "w": 12, - "x": 12, - "y": 13 - }, - "id": 261, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "pmc_perf", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n \"req_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n \"req_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n\n \"hits_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n \"hits_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n \"hits_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n\n \"misses_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_MISSES\", \"&denom\"] }\n },\n \"misses_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_MISSES\", \"&denom\"] }\n },\n \"misses_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_MISSES\", \"&denom\"] }\n },\n\n \"dup_misses_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"dup_misses_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"dup_misses_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n\n\n \"cacheHit_avg\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n \"cacheHit_min\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n \"cacheHit_max\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n\n \"readReq_avg\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n \"readReq_min\": {\n \"$min\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n \"readReq_max\": {\n \"$max\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n\n\n \"atomicReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n \"atomicReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n \"atomicReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n\n \"read1d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n \"read1d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n \"read1d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n\n \"read2d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n \"read2d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n \"read2d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n\n \"read4d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n \"read4d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n \"read4d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n\n \"read8d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n \"read8d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n \"read8d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n\n \"read16d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n },\n \"read16d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n },\n \"read16d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean\": \"&req_avg\",\n \"Min\": \"&req_min\",\n \"Max\": \"&req_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Hits\",\n \"Mean\": \"&hits_avg\",\n \"Min\": \"&hits_min\",\n \"Max\": \"&hits_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Non Duplicated\",\n \"Mean\": \"&misses_avg\",\n \"Min\": \"&misses_min\",\n \"Max\": \"&misses_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Misses- Duplicated\",\n \"Mean\": \"&dup_misses_avg\",\n \"Min\": \"&dup_misses_min\",\n \"Max\": \"&dup_misses_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Cache Hit\",\n \"Mean\": \"&cacheHit_avg\",\n \"Min\": \"&cacheHit_min\",\n \"Max\": \"&cacheHit_max\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"Read Req (Total)\",\n \"Mean\": \"&readReq_avg\",\n \"Min\": \"&readReq_min\",\n \"Max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Atomic Req\",\n \"Mean\": \"&atomicReq_avg\",\n \"Min\": \"&atomicReq_min\",\n \"Max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (1 DWord)\",\n \"Mean\": \"&read1d_avg\",\n \"Min\": \"&read1d_min\",\n \"Max\": \"&read1d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (2 DWord)\",\n \"Mean\": \"&read2d_avg\",\n \"Min\": \"&read2d_min\",\n \"Max\": \"&read2d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (4 DWord)\",\n \"Mean\": \"&read4d_avg\",\n \"Min\": \"&read4d_min\",\n \"Max\": \"&read4d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (8 DWord)\",\n \"Mean\": \"&read8d_avg\",\n \"Min\": \"&read8d_min\",\n \"Max\": \"&read8d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (16 DWord)\",\n \"Mean\": \"&read16d_avg\",\n \"Min\": \"&read16d_min\",\n \"Max\": \"&read16d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "pmc_perf2", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Scalar L1D Cache)\"}}\n }}, \n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n \"req_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n \"req_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n\n \"hits_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n \"hits_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n \"hits_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n\n \"dup_misses_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"dup_misses_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"dup_misses_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n\n\n \"cacheHit_avg\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n \"cacheHit_min\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n \"cacheHit_max\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n\n \"readReq_avg\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n \"readReq_min\": {\n \"$min\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n \"readReq_max\": {\n \"$max\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n\n \"atomicReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n \"atomicReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n \"atomicReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n\n\n \"read1d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n \"read1d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n \"read1d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n\n \"read2d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n \"read2d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n \"read2d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n\n \"read4d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n \"read4d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n \"read4d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n\n \"read8d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n \"read8d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n \"read8d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n\n \"read16d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n },\n \"read16d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n },\n \"read16d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean 2\": \"&req_avg\",\n \"Min 2\": \"&req_min\",\n \"Max 2\": \"&req_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Hits\",\n \"Mean 2\": \"&hits_avg\",\n \"Min 2\": \"&hits_min\",\n \"Max 2\": \"&hits_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Non Duplicated\",\n \"Mean 2\": \"&misses_avg\",\n \"Min 2\": \"&misses_min\",\n \"Max 2\": \"&misses_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Misses- Duplicated\",\n \"Mean 2\": \"&dup_misses_avg\",\n \"Min 2\": \"&dup_misses_min\",\n \"Max 2\": \"&dup_misses_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Cache Hit\",\n \"Mean 2\": \"&cacheHit_avg\",\n \"Min 2\": \"&cacheHit_min\",\n \"Max 2\": \"&cacheHit_max\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"Read Req (Total)\",\n \"Mean 2\": \"&readReq_avg\",\n \"Min 2\": \"&readReq_min\",\n \"Max 2\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Write Req (Total)\",\n \"Mean 2\": \"&writeReq_avg\",\n \"Min 2\": \"&writeReq_min\",\n \"Max 2\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Atomic Req\",\n \"Mean 2\": \"&atomicReq_avg\",\n \"Min 2\": \"&atomicReq_min\",\n \"Max 2\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (1 DWord)\",\n \"Mean 2\": \"&read1d_avg\",\n \"Min 2\": \"&read1d_min\",\n \"Max 2\": \"&read1d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (2 DWord)\",\n \"Mean 2\": \"&read2d_avg\",\n \"Min 2\": \"&read2d_min\",\n \"Max 2\": \"&read2d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (4 DWord)\",\n \"Mean 2\": \"&read4d_avg\",\n \"Min 2\": \"&read4d_min\",\n \"Max 2\": \"&read4d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (8 DWord)\",\n \"Mean 2\": \"&read8d_avg\",\n \"Min 2\": \"&read8d_min\",\n \"Max 2\": \"&read8d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (16 DWord)\",\n \"Mean 2\": \"&read16d_avg\",\n \"Min 2\": \"&read16d_min\",\n \"Max 2\": \"&read16d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Scalar L1D Cache Accesses", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Max": 5, - "Max 2": 6, - "Mean": 1, - "Mean 2": 2, - "Metric": 0, - "Min": 3, - "Min 2": 4, - "Unit": 7 - }, - "renameByName": { - "Max": "Max (Current)", - "Max 2": "Max (Baseline)", - "Mean": "Avg (Current)", - "Mean 2": "Avg (Baseline)", - "Min": "Min (Current)", - "Min 2": "Min (Baseline)", - "Unit": "" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 135 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 105 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 112 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 134 - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 20 - }, - "id": 52, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"readReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n \"readReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n \"readReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n\n \"writeReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n \"writeReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n \"writeReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n\n \"atomicReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n \"atomicReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n \"atomicReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n\n \"tc2l1k_stall_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n },\n \"tc2l1k_stall_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n },\n \"tc2l1k_stall_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Read Req\",\n \"Mean\": \"&readReq_avg\",\n \"Min\": \"&readReq_min\",\n \"Max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Write Req\",\n \"Mean\": \"&writeReq_avg\",\n \"Min\": \"&writeReq_min\",\n \"Max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Atomic Req\",\n \"Mean\": \"&atomicReq_avg\",\n \"Min\": \"&atomicReq_min\",\n \"Max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Stall\",\n \"Mean\": \"&tc2l1k_stall_avg\",\n \"Min\": \"&tc2l1k_stall_min\",\n \"Max\": \"&tc2l1k_stall_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}}, \n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Scalar L1D Cache)\"}}\n }},\n {\"$addFields\": {\n \n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"readReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n \"readReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n \"readReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n\n \"writeReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n \"writeReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n \"writeReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n\n \"atomicReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n \"atomicReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n \"atomicReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n\n \"tc2l1k_stall_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n },\n \"tc2l1k_stall_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n },\n \"tc2l1k_stall_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Read Req\",\n \"Mean\": \"&readReq_avg\",\n \"Min\": \"&readReq_min\",\n \"Max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Write Req\",\n \"Mean\": \"&writeReq_avg\",\n \"Min\": \"&writeReq_min\",\n \"Max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Atomic Req\",\n \"Mean\": \"&atomicReq_avg\",\n \"Min\": \"&atomicReq_min\",\n \"Max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Stall\",\n \"Mean\": \"&tc2l1k_stall_avg\",\n \"Min\": \"&tc2l1k_stall_min\",\n \"Max\": \"&tc2l1k_stall_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - } - ], - "title": "Scalar L1D Cache - L2 Interface", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Max 1": 7, - "Max 2": 8, - "Mean 1": 3, - "Mean 2": 4, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Mean 1": "Avg (Current)", - "Mean 2": "Avg (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Scalar L1 Data Cache", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 13 - }, - "id": 130, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 133 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 112 - } - ] - } - ] - }, - "gridPos": { - "h": 17, - "w": 12, - "x": 0, - "y": 14 - }, - "id": 132, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"taBusy_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}] }},\n \"taBusy_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}] }},\n \"taBusy_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}] }},\n\n \"tc2ta_addrStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"tc2ta_addrStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"tc2ta_addrStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n\n \"tc2ta_dataStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"tc2ta_dataStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"tc2ta_dataStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n\n \"td2ta_addrStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"td2ta_addrStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"td2ta_addrStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n\n \"totalInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n \"totalInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n \"totalInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n\n \"flatInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n \"flatInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n \"flatInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n\n \"flatReadInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatReadInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatReadInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"flatWriteInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatWriteInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatWriteInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"flatAtomicInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatAtomicInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatAtomicInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferReadInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferReadInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferReadInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferWriteInstr_avg\":{\"$avg\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferWriteInstr_min\":{\"$min\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferWriteInstr_max\":{\"$max\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferAtomicInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferAtomicInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferAtomicInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"buffTotal_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n \"buffTotal_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n \"buffTotal_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n\n \"buffCoscaleRead_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleRead_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleRead_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n\n \"buffCoscaleWrite_avg\":{\"$avg\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleWrite_min\":{\"$min\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleWrite_max\":{\"$max\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"TA Busy\",\n \"avg\": \"&taBusy_avg\",\n \"min\": \"&taBusy_min\",\n \"max\": \"&taBusy_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TA Addr Stall\",\n \"avg\": \"&tc2ta_addrStall_avg\",\n \"min\": \"&tc2ta_addrStall_min\",\n \"max\": \"&tc2ta_addrStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TA Data Stall\",\n \"avg\": \"&tc2ta_dataStall_avg\",\n \"min\": \"&tc2ta_dataStall_min\",\n \"max\": \"&tc2ta_dataStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TD2TA Addr Stall\",\n \"avg\": \"&td2ta_addrStall_avg\",\n \"min\": \"&td2ta_addrStall_min\",\n \"max\": \"&td2ta_addrStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Total Instructions\",\n \"avg\": \"&totalInstr_avg\",\n \"min\": \"&totalInstr_min\",\n \"max\": \"&totalInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Instr\",\n \"avg\": \"&flatInstr_avg\",\n \"min\": \"&flatInstr_min\",\n \"max\": \"&flatInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Read Instr\",\n \"avg\": \"&flatReadInstr_avg\",\n \"min\": \"&flatReadInstr_min\",\n \"max\": \"&flatReadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Write Instr\",\n \"avg\": \"&flatWriteInstr_avg\",\n \"min\": \"&flatWriteInstr_min\",\n \"max\": \"&flatWriteInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Atomic Instr\",\n \"avg\": \"&flatAtomicInstr_avg\",\n \"min\": \"&flatAtomicInstr_min\",\n \"max\": \"&flatAtomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Instr\",\n \"avg\": \"&bufferInstr_avg\",\n \"min\": \"&bufferInstr_min\",\n \"max\": \"&bufferInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Read Instr\",\n \"avg\": \"&bufferReadInstr_avg\",\n \"min\": \"&bufferReadInstr_min\",\n \"max\": \"&bufferReadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Write Instr\",\n \"avg\": \"&bufferWriteInstr_avg\",\n \"min\": \"&bufferWriteInstr_min\",\n \"max\": \"&bufferWriteInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Atomic Instr\",\n \"avg\": \"&bufferAtomicInstr_avg\",\n \"min\": \"&bufferAtomicInstr_min\",\n \"max\": \"&bufferAtomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Total Cylces\",\n \"avg\": \"&buffTotal_avg\",\n \"min\": \"&buffTotal_min\",\n \"max\": \"&buffTotal_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Coalesced Read\",\n \"avg\": \"&buffCoscaleRead_avg\",\n \"min\": \"&buffCoscaleRead_min\",\n \"max\": \"&buffCoscaleRead_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Coalesced Write\",\n \"avg\": \"&buffCoscaleWrite_avg\",\n \"min\": \"&buffCoscaleWrite_min\",\n \"max\": \"&buffCoscaleWrite_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Texture Addr and Data)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"taBusy_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}] }},\n \"taBusy_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}] }},\n \"taBusy_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}] }},\n\n \"tc2ta_addrStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"tc2ta_addrStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"tc2ta_addrStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n\n \"tc2ta_dataStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"tc2ta_dataStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"tc2ta_dataStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n\n \"td2ta_addrStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"td2ta_addrStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"td2ta_addrStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n\n \"totalInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n \"totalInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n \"totalInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n\n \"flatInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n \"flatInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n \"flatInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n\n \"flatReadInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatReadInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatReadInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"flatWriteInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatWriteInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatWriteInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"flatAtomicInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatAtomicInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatAtomicInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferReadInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferReadInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferReadInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferWriteInstr_avg\":{\"$avg\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferWriteInstr_min\":{\"$min\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferWriteInstr_max\":{\"$max\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferAtomicInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferAtomicInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferAtomicInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"buffTotal_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n \"buffTotal_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n \"buffTotal_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n\n \"buffCoscaleRead_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleRead_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleRead_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n\n \"buffCoscaleWrite_avg\":{\"$avg\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleWrite_min\":{\"$min\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleWrite_max\":{\"$max\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"TA Busy\",\n \"avg\": \"&taBusy_avg\",\n \"min\": \"&taBusy_min\",\n \"max\": \"&taBusy_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TA Addr Stall\",\n \"avg\": \"&tc2ta_addrStall_avg\",\n \"min\": \"&tc2ta_addrStall_min\",\n \"max\": \"&tc2ta_addrStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TA Data Stall\",\n \"avg\": \"&tc2ta_dataStall_avg\",\n \"min\": \"&tc2ta_dataStall_min\",\n \"max\": \"&tc2ta_dataStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TD2TA Addr Stall\",\n \"avg\": \"&td2ta_addrStall_avg\",\n \"min\": \"&td2ta_addrStall_min\",\n \"max\": \"&td2ta_addrStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Total Instructions\",\n \"avg\": \"&totalInstr_avg\",\n \"min\": \"&totalInstr_min\",\n \"max\": \"&totalInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Instr\",\n \"avg\": \"&flatInstr_avg\",\n \"min\": \"&flatInstr_min\",\n \"max\": \"&flatInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Read Instr\",\n \"avg\": \"&flatReadInstr_avg\",\n \"min\": \"&flatReadInstr_min\",\n \"max\": \"&flatReadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Write Instr\",\n \"avg\": \"&flatWriteInstr_avg\",\n \"min\": \"&flatWriteInstr_min\",\n \"max\": \"&flatWriteInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Atomic Instr\",\n \"avg\": \"&flatAtomicInstr_avg\",\n \"min\": \"&flatAtomicInstr_min\",\n \"max\": \"&flatAtomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Instr\",\n \"avg\": \"&bufferInstr_avg\",\n \"min\": \"&bufferInstr_min\",\n \"max\": \"&bufferInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Read Instr\",\n \"avg\": \"&bufferReadInstr_avg\",\n \"min\": \"&bufferReadInstr_min\",\n \"max\": \"&bufferReadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Write Instr\",\n \"avg\": \"&bufferWriteInstr_avg\",\n \"min\": \"&bufferWriteInstr_min\",\n \"max\": \"&bufferWriteInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Atomic Instr\",\n \"avg\": \"&bufferAtomicInstr_avg\",\n \"min\": \"&bufferAtomicInstr_min\",\n \"max\": \"&bufferAtomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Total Cylces\",\n \"avg\": \"&buffTotal_avg\",\n \"min\": \"&buffTotal_min\",\n \"max\": \"&buffTotal_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Coalesced Read\",\n \"avg\": \"&buffCoscaleRead_avg\",\n \"min\": \"&buffCoscaleRead_min\",\n \"max\": \"&buffCoscaleRead_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Coalesced Write\",\n \"avg\": \"&buffCoscaleWrite_avg\",\n \"min\": \"&buffCoscaleWrite_min\",\n \"max\": \"&buffCoscaleWrite_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "TA", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Unit 2": true, - "metric 2": true - }, - "indexByName": { - "Unit 1": 9, - "Unit 2": 2, - "avg 1": 3, - "avg 2": 4, - "max 1": 7, - "max 2": 8, - "metric 1": 0, - "metric 2": 1, - "min 1": 5, - "min 2": 6 - }, - "renameByName": { - "avg 1": "Avg (Current)", - "avg 2": "Avg (Baseline)", - "max 1": "Max (Current)", - "max 2": "Max (Baseline)", - "min 1": "Min (Current)", - "min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 124 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 120 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 135 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 130 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 108 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 136 - } - ] - } - ] - }, - "gridPos": { - "h": 17, - "w": 12, - "x": 12, - "y": 14 - }, - "id": 134, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"tdBusy_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}] }},\n \"tdBusy_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}] }},\n \"tdBusy_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}] }},\n\n \"tc2tdStall_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"tc2tdStall_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"tc2tdStall_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n\n \"spi2td_stall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"spi2td_stall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n \"spi2td_stall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU]}]}},\n\n \"coscaleInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n \"coscaleInstr_min\":{\"$min\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n \"coscaleInstr_max\":{\"$max\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n\n \"loadInstr_avg\":{\"$avg\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n \"loadInstr_min\":{\"$min\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n \"loadInstr_max\":{\"$max\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n\n \"storeInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n \"storeInstr_min\":{\"$min\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n \"storeInstr_max\":{\"$max\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n\n \"atomicInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}},\n \"atomicInstr_min\":{\"$min\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}},\n \"atomicInstr_max\":{\"$max\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"TD Busy\",\n \"avg\": \"&tdBusy_avg\",\n \"min\": \"&tdBusy_min\",\n \"max\": \"&tdBusy_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TD Stall\",\n \"avg\": \"&tc2tdStall_avg\",\n \"min\": \"&tc2tdStall_min\",\n \"max\": \"&tc2tdStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"SPI2TD Stall\",\n \"avg\": \"&spi2td_stall_avg\",\n \"min\": \"&spi2td_stall_min\",\n \"max\": \"&spi2td_stall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Coalescable Instr\",\n \"avg\": \"&coscaleInstr_avg\",\n \"min\": \"&coscaleInstr_min\",\n \"max\": \"&coscaleInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Load Instr\",\n \"avg\": \"&loadInstr_avg\",\n \"min\": \"&loadInstr_min\",\n \"max\": \"&loadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Store Instr\",\n \"avg\": \"&storeInstr_avg\",\n \"min\": \"&storeInstr_min\",\n \"max\": \"&storeInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Instr\",\n \"avg\": \"&atomicInstr_avg\",\n \"min\": \"&atomicInstr_min\",\n \"max\": \"&atomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Texture Addr and Data)\"}}\n }},\n {\"$addFields\": {\n \n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"tdBusy_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}] }},\n \"tdBusy_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}] }},\n \"tdBusy_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}] }},\n\n \"tc2tdStall_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"tc2tdStall_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"tc2tdStall_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n\n \"spi2td_stall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"spi2td_stall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n \"spi2td_stall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $numCU2]}]}},\n\n \"coscaleInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n \"coscaleInstr_min\":{\"$min\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n \"coscaleInstr_max\":{\"$max\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n\n \"loadInstr_avg\":{\"$avg\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n \"loadInstr_min\":{\"$min\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n \"loadInstr_max\":{\"$max\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n\n \"storeInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n \"storeInstr_min\":{\"$min\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n \"storeInstr_max\":{\"$max\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n\n \"atomicInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}},\n \"atomicInstr_min\":{\"$min\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}},\n \"atomicInstr_max\":{\"$max\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"TD Busy\",\n \"avg\": \"&tdBusy_avg\",\n \"min\": \"&tdBusy_min\",\n \"max\": \"&tdBusy_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TD Stall\",\n \"avg\": \"&tc2tdStall_avg\",\n \"min\": \"&tc2tdStall_min\",\n \"max\": \"&tc2tdStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"SPI2TD Stall\",\n \"avg\": \"&spi2td_stall_avg\",\n \"min\": \"&spi2td_stall_min\",\n \"max\": \"&spi2td_stall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Coalescable Instr\",\n \"avg\": \"&coscaleInstr_avg\",\n \"min\": \"&coscaleInstr_min\",\n \"max\": \"&coscaleInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Load Instr\",\n \"avg\": \"&loadInstr_avg\",\n \"min\": \"&loadInstr_min\",\n \"max\": \"&loadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Store Instr\",\n \"avg\": \"&storeInstr_avg\",\n \"min\": \"&storeInstr_min\",\n \"max\": \"&storeInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Instr\",\n \"avg\": \"&atomicInstr_avg\",\n \"min\": \"&atomicInstr_min\",\n \"max\": \"&atomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "TD", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Unit 2": true, - "metric 2": true - }, - "indexByName": { - "Unit 1": 9, - "Unit 2": 2, - "avg 1": 3, - "avg 2": 4, - "max 1": 7, - "max 2": 8, - "metric 1": 0, - "metric 2": 1, - "min 1": 5, - "min 2": 6 - }, - "renameByName": { - "avg 1": "Avg (Current)", - "avg 2": "Avg (Baseline)", - "max 1": "Max (Current)", - "max 2": "Max (Baseline)", - "min 1": "Min (Current)", - "min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Texture Addresser and Texture Data (TA/TD)", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 14 - }, - "id": 112, - "panels": [ - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 13, - "w": 12, - "x": 0, - "y": 15 - }, - "id": 165, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showUnfilled": true, - "text": {} - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"bufferCoalescing_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_TOTAL_ACCESSES_sum\", 0] },\n { \"$divide\": [{\"$multiply\": [\"&TA_TOTAL_WAVEFRONTS_sum\", 64, 100]}, {\"$multiply\": [\"&TCP_TOTAL_ACCESSES_sum\", 4]}] },\n null\n ]\n }\n },\n \"cacheUtil_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0] },\n { \"$divide\": [{\"$multiply\": [\"&TCP_GATE_EN2_sum\", 100]}, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }\n },\n \n \"cacheBW_pct\": {\n \"$avg\": { \"$divide\": [ {\"$multiply\":[64, \"&TCP_TOTAL_CACHE_ACCESSES_sum\"]}, \n {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]} \n ] \n }\n },\n \"cacheHit_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0] },\n { \"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]\n }] \n },\n null\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Buffer Coalescing\": \"&bufferCoalescing_pct\",\n \"Cache Util\": \"&cacheUtil_pct\",\n \"Cache BW\": { \"$divide\": [{ \"$multiply\": [100, \"&cacheBW_pct\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $numCU]}] },\n \"Cache Hit\": \"&cacheHit_pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Vector L1D Cache)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"bufferCoalescing_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_TOTAL_ACCESSES_sum\", 0] },\n { \"$divide\": [{\"$multiply\": [\"&TA_TOTAL_WAVEFRONTS_sum\", 64, 100]}, {\"$multiply\": [\"&TCP_TOTAL_ACCESSES_sum\", 4]}] },\n null\n ]\n }\n },\n \"cacheUtil_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0] },\n { \"$divide\": [{\"$multiply\": [\"&TCP_GATE_EN2_sum\", 100]}, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }\n },\n \"cacheBW_pct\": {\n \"$avg\": { \"$divide\": [ {\"$multiply\":[64, \"&TCP_TOTAL_CACHE_ACCESSES_sum\"]}, \n {\"$subtract\":[\"&EndNs\", \"&BeginNs\"]} \n ] \n }\n },\n \"cacheHit_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0] },\n { \"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]\n }] \n },\n null\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Buffer Coalescing\": \"&bufferCoalescing_pct\",\n \"Cache Util\": \"&cacheUtil_pct\",\n \"Cache BW\": { \"$divide\": [{ \"$multiply\": [100, \"&cacheBW_pct\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $numCU2]}] },\n \"Cache Hit\": \"&cacheHit_pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Speed-of-Light: Vector L1D Cache", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "128B Read Combining 1": 6, - "128B Read Combining 2": 7, - "Buffer Coalescing 1": 0, - "Buffer Coalescing 2": 1, - "Cache BW 1": 2, - "Cache BW 2": 3, - "Cache Hit 1": 4, - "Cache Hit 2": 5 - }, - "renameByName": { - "128B Read Combining 1": "128B Read Combining (Current)", - "128B Read Combining 2": "128B Read Combining(Baseline)", - "Buffer Coalescing 1": "Buf Coalescing (Current)", - "Buffer Coalescing 2": "Buf Coalescing (Baseline)", - "Cache BW 1": "Cache BW (Current)", - "Cache BW 2": "Cache BW (Baseline)", - "Cache Hit 1": "Cache Hit (Current)", - "Cache Hit 2": "Cache Hit (Baseline)", - "Cache Util 1": "Cache Util (Current)", - "Cache Util 2": "Cache Util (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "color-background" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "transparent" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percent" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 52 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 199 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 121 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 144 - } - ] - } - ] - }, - "gridPos": { - "h": 13, - "w": 12, - "x": 12, - "y": 15 - }, - "id": 116, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"l2Pending_avg\": {\"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"l2Pending_min\": {\"$min\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"l2Pending_max\": {\"$max\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n\n\n \"tcr2tcp_Stall_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"tcr2tcp_Stall_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"tcr2tcp_Stall_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \n \"readTagRam_Stall_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \"readTagRam_Stall_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \"readTagRam_Stall_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \n \"writeTagRam_Stall_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"writeTagRam_Stall_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"writeTagRam_Stall_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \n \n \"atomicTagRam_Stall_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }}, \n \"atomicTagRam_Stall_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }}, \n \"atomicTagRam_Stall_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }} \n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Stalled on L2 Data\",\n \"Mean\": \"&l2Pending_avg\",\n \"Min\": \"&l2Pending_min\",\n \"Max\": \"&l2Pending_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Stalled on L2 Req\",\n \"Mean\": \"&tcr2tcp_Stall_avg\",\n \"Min\":\"&tcr2tcp_Stall_min\",\n \"Max\":\"&tcr2tcp_Stall_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Tag RAM Stall (Read)\",\n \"Mean\": \"&readTagRam_Stall_avg\",\n \"Min\": \"&readTagRam_Stall_min\",\n \"Max\": \"&readTagRam_Stall_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Tag RAM Stall (Write)\",\n \"Mean\": \"&writeTagRam_Stall_avg\",\n \"Min\": \"&writeTagRam_Stall_min\",\n \"Max\": \"&writeTagRam_Stall_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Tag RAM Stall (Atomic)\",\n \"Mean\": \"&atomicTagRam_Stall_avg\",\n \"Min\": \"&atomicTagRam_Stall_min\",\n \"Max\": \"&atomicTagRam_Stall_max\",\n \"unit\":\"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Vector L1D Cache)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"l2Pending_avg\": {\"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"l2Pending_min\": {\"$min\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"l2Pending_max\": {\"$max\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n\n \"tcr2tcp_Stall_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"tcr2tcp_Stall_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"tcr2tcp_Stall_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \n \"readTagRam_Stall_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \"readTagRam_Stall_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \"readTagRam_Stall_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \n \"writeTagRam_Stall_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"writeTagRam_Stall_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"writeTagRam_Stall_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \n \n \"atomicTagRam_Stall_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }}, \n \"atomicTagRam_Stall_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }}, \n \"atomicTagRam_Stall_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }} \n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Stalled on L2 Data\",\n \"Mean\": \"&l2Pending_avg\",\n \"Min\": \"&l2Pending_min\",\n \"Max\": \"&l2Pending_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Stalled on L2 Req\",\n \"Mean\": \"&tcr2tcp_Stall_avg\",\n \"Min\":\"&tcr2tcp_Stall_min\",\n \"Max\":\"&tcr2tcp_Stall_max\",\n \"unit\":\"pct\"\n },\n\n {\n \"Metric\": \"Tag RAM Stall (Read)\",\n \"Mean\": \"&readTagRam_Stall_avg\",\n \"Min\": \"&readTagRam_Stall_min\",\n \"Max\": \"&readTagRam_Stall_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Tag RAM Stall (Write)\",\n \"Mean\": \"&writeTagRam_Stall_avg\",\n \"Min\": \"&writeTagRam_Stall_min\",\n \"Max\": \"&writeTagRam_Stall_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Tag RAM Stall (Atomic)\",\n \"Mean\": \"&atomicTagRam_Stall_avg\",\n \"Min\": \"&atomicTagRam_Stall_min\",\n \"Max\": \"&atomicTagRam_Stall_max\",\n \"unit\":\"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Vector L1D Cache Stalls", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Units 2": true, - "unit 2": true - }, - "indexByName": { - "Max 1": 6, - "Max 2": 7, - "Mean 1": 2, - "Mean 2": 3, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 4, - "Min 2": 5, - "unit 1": 9, - "unit 2": 8 - }, - "renameByName": { - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Mean 1": "Avg (Current)", - "Mean 2": "Avg (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)", - "unit 1": "Unit" - } - } - } - ], - "type": "table" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 116 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 78 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 139 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 50 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "max" - }, - "properties": [ - { - "id": "custom.width", - "value": 148 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 127 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 111 - } - ] - } - ] - }, - "gridPos": { - "h": 18, - "w": 12, - "x": 0, - "y": 28 - }, - "id": 128, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n\n \"totalReq_avg\":{\"$avg\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n \"totalReq_min\":{\"$min\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n \"totalReq_max\":{\"$max\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n\n \"readReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n \"readReq_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n \"readReq_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n\n \"writeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n\n \"atomicReq_avg\":{\"$avg\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n \"atomicReq_min\":{\"$min\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n \"atomicReq_max\":{\"$max\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n\n \"cacheBW_avg\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }},\n \"cacheBW_min\":{\"$min\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }},\n \"cacheBW_max\":{\"$max\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }},\n \n \"cacheAccess_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n \"cacheAccess_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n \"cacheAccess_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n\n \"cacheHits_avg\":{\"$avg\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \"cacheHits_min\":{\"$min\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \"cacheHits_max\":{\"$max\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \n \"cacheHitRate_avg\":{\"$avg\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n \"cacheHitRate_min\":{\"$min\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n \"cacheHitRate_max\":{\"$max\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n \n \"l2_l1_read_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n \"l2_l1_read_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n \"l2_l1_read_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n\n \"l2_l1_write_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n \"l2_l1_write_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n \"l2_l1_write_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n\n\n \"l2_l1_atomic_avg\":{\"$avg\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n \"l2_l1_atomic_min\":{\"$min\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n \"l2_l1_atomic_max\":{\"$max\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n\n \"l2_l1_bw_avg\":{\"$avg\": {\"$divide\": [{\"$multiply\": [64, {\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] } ]}, \"&denom\" ]}},\n \"l2_l1_bw_min\":{\"$min\": {\"$divide\": [{\"$multiply\": [64, {\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] } ]}, \"&denom\" ]}},\n \"l2_l1_bw_max\":{\"$max\": {\"$divide\": [{\"$multiply\": [64, {\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] } ]}, \"&denom\" ]}},\n\n \"invalidate_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n \"invalidate_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n \"invalidate_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n\n\n \"l1Latency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n \"l1Latency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n \"l1Latency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n\n\n \"l2ReadLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n \"l2ReadLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n \"l2ReadLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n\n \"l2WriteLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }},\n \"l2WriteLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }},\n \"l2WriteLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }}\n\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Total Req\",\n \"avg\": \"&totalReq_avg\",\n \"min\": \"&totalReq_min\",\n \"max\": \"&totalReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Read Req\",\n \"avg\": \"&readReq_avg\",\n \"min\": \"&readReq_min\",\n \"max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Write Req\",\n \"avg\": \"&writeReq_avg\",\n \"min\": \"&writeReq_min\",\n \"max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Req\",\n \"avg\": \"&l2_l1_atomic_avg\",\n \"min\": \"&l2_l1_atomic_min\",\n \"max\": \"&l2_l1_atomic_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache BW\",\n \"avg\": \"&cacheBW_avg\",\n \"min\": \"&cacheBW_min\",\n \"max\": \"&cacheBW_max\",\n \"Unit\": \"GB/s\"\n },\n {\n \"metric\": \"Cache Accesses\",\n \"avg\": \"&cacheAccess_avg\",\n \"min\": \"&cacheAccess_min\",\n \"max\": \"&cacheAccess_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hits\",\n \"avg\": \"&cacheHits_avg\",\n \"min\": \"&cacheHits_min\",\n \"max\": \"&cacheHits_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hit Rate\",\n \"avg\": \"&cacheHitRate_avg\",\n \"min\": \"&cacheHitRate_min\",\n \"max\": \"&cacheHitRate_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Invalidate\",\n \"avg\": \"&invalidate_avg\",\n \"min\": \"&invalidate_min\",\n \"max\": \"&invalidate_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 BW\",\n \"avg\": \"&l2_l1_bw_avg\",\n \"min\": \"&l2_l1_bw_avg\",\n \"max\": \"&l2_l1_bw_avg\",\n \"Unit\": {\"$concat\": [\"Bytes \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Read\",\n \"avg\": \"&l2_l1_read_avg\",\n \"min\": \"&l2_l1_read_min\",\n \"max\": \"&l2_l1_read_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Write\",\n \"avg\": \"&l2_l1_write_avg\",\n \"min\": \"&l2_l1_write_min\",\n \"max\": \"&l2_l1_write_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Atomic\",\n \"avg\": \"&l2_l1_atomic_avg\",\n \"min\": \"&l2_l1_atomic_min\",\n \"max\": \"&l2_l1_atomic_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1 Access Latency\",\n \"avg\": \"&l1Latency_avg\",\n \"min\": \"&l1Latency_min\",\n \"max\": \"&l1Latency_max\",\n \"Unit\": \"Cycles\"\n },\n {\n \"metric\": \"L1-L2 Read Latency\",\n \"avg\": \"&l2ReadLatency_avg\",\n \"min\": \"&l2ReadLatency_min\",\n \"max\": \"&l2ReadLatency_max\",\n \"Unit\": \"Cycles\"\n },\n {\n \"metric\": \"L1-L2 Write Latency\",\n \"avg\": \"&l2WriteLatency_avg\",\n \"min\": \"&l2WriteLatency_min\",\n \"max\": \"&l2WriteLatency_max\",\n \"Unit\": \"Cycles\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Vector L1D Cache)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n\n \"totalReq_avg\":{\"$avg\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n \"totalReq_min\":{\"$min\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n \"totalReq_max\":{\"$max\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n\n \"readReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n \"readReq_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n \"readReq_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n\n \"writeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n\n \"atomicReq_avg\":{\"$avg\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n \"atomicReq_min\":{\"$min\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n \"atomicReq_max\":{\"$max\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n\n \"cacheBW_avg\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }},\n \"cacheBW_min\":{\"$min\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }},\n \"cacheBW_max\":{\"$max\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }},\n \n \"cacheAccess_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n \"cacheAccess_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n \"cacheAccess_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n\n \"cacheHits_avg\":{\"$avg\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \"cacheHits_min\":{\"$min\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \"cacheHits_max\":{\"$max\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \n \"cacheHitRate_avg\":{\"$avg\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n \"cacheHitRate_min\":{\"$min\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n \"cacheHitRate_max\":{\"$max\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n\n \"l2_l1_read_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n \"l2_l1_read_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n \"l2_l1_read_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n\n \"l2_l1_write_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n \"l2_l1_write_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n \"l2_l1_write_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n\n\n \"l2_l1_atomic_avg\":{\"$avg\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n \"l2_l1_atomic_min\":{\"$min\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n \"l2_l1_atomic_max\":{\"$max\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n\n \"l2_l1_bw_avg\":{\"$avg\": {\"$divide\": [{\"$multiply\": [64, {\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] } ]}, \"&denom\" ]}},\n \"l2_l1_bw_min\":{\"$min\": {\"$divide\": [{\"$multiply\": [64, {\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] } ]}, \"&denom\" ]}},\n \"l2_l1_bw_max\":{\"$max\": {\"$divide\": [{\"$multiply\": [64, {\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] } ]}, \"&denom\" ]}},\n\n \"invalidate_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n \"invalidate_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n \"invalidate_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n\n\n \"l1Latency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n \"l1Latency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n \"l1Latency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n\n\n \"l2ReadLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n \"l2ReadLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n \"l2ReadLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n\n \"l2WriteLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }},\n \"l2WriteLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }},\n \"l2WriteLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Total Req\",\n \"avg\": \"&totalReq_avg\",\n \"min\": \"&totalReq_min\",\n \"max\": \"&totalReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Read Req\",\n \"avg\": \"&readReq_avg\",\n \"min\": \"&readReq_min\",\n \"max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Write Req\",\n \"avg\": \"&writeReq_avg\",\n \"min\": \"&writeReq_min\",\n \"max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Req\",\n \"avg\": \"&atomicReq_avg\",\n \"min\": \"&atomicReq_min\",\n \"max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache BW\",\n \"avg\": \"&cacheBW_avg\",\n \"min\": \"&cacheBW_min\",\n \"max\": \"&cacheBW_max\",\n \"Unit\": \"GB/s\"\n },\n {\n \"metric\": \"Cache Accesses\",\n \"avg\": \"&cacheAccess_avg\",\n \"min\": \"&cacheAccess_min\",\n \"max\": \"&cacheAccess_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hits\",\n \"avg\": \"&cacheHits_avg\",\n \"min\": \"&cacheHits_min\",\n \"max\": \"&cacheHits_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hit Rate\",\n \"avg\": \"&cacheHitRate_avg\",\n \"min\": \"&cacheHitRate_min\",\n \"max\": \"&cacheHitRate_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Invalidate\",\n \"avg\": \"&invalidate_avg\",\n \"min\": \"&invalidate_min\",\n \"max\": \"&invalidate_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 BW\",\n \"avg\": \"&l2_l1_bw_avg\",\n \"min\": \"&l2_l1_bw_avg\",\n \"max\": \"&l2_l1_bw_avg\",\n \"Unit\": {\"$concat\": [\"Bytes \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Read\",\n \"avg\": \"&l2_l1_read_avg\",\n \"min\": \"&l2_l1_read_min\",\n \"max\": \"&l2_l1_read_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Write\",\n \"avg\": \"&l2_l1_write_avg\",\n \"min\": \"&l2_l1_write_min\",\n \"max\": \"&l2_l1_write_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Atomic\",\n \"avg\": \"&l2_l1_atomic_avg\",\n \"min\": \"&l2_l1_atomic_min\",\n \"max\": \"&l2_l1_atomic_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1 Access Latency\",\n \"avg\": \"&l1Latency_avg\",\n \"min\": \"&l1Latency_min\",\n \"max\": \"&l1Latency_max\",\n \"Unit\": \"Cycles\"\n },\n {\n \"metric\": \"L1-L2 Read Latency\",\n \"avg\": \"&l2ReadLatency_avg\",\n \"min\": \"&l2ReadLatency_min\",\n \"max\": \"&l2ReadLatency_max\",\n \"Unit\": \"Cycles\"\n },\n {\n \"metric\": \"L1-L2 Write Latency\",\n \"avg\": \"&l2WriteLatency_avg\",\n \"min\": \"&l2WriteLatency_min\",\n \"max\": \"&l2WriteLatency_max\",\n \"Unit\": \"Cycles\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Vector L1D Cache Accesses", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Unit 2": true, - "metric 2": true - }, - "indexByName": { - "Unit 1": 9, - "Unit 2": 8, - "avg 1": 1, - "avg 2": 2, - "max 1": 5, - "max 2": 6, - "metric 1": 0, - "metric 2": 7, - "min 1": 3, - "min 2": 4 - }, - "renameByName": { - "avg 1": "Avg (Current)", - "avg 2": "Avg (Baseline)", - "max 1": "Max (Current)", - "max 2": "Max (Baseline)", - "min 1": "Min (Current)", - "min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "Aggregate": "last", - "BarPadding": 30, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupColName": "Coherency", - "GroupCols": 2, - "GroupGap": 5, - "GroupLabelColor": "#FF9830", - "GroupLabelFontSize": "100%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 0, - "Horizontal": true, - "LabelColName": "Xfer", - "LabelColor": "#ffffff", - "LabelFontSize": "100%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 0, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#FADE2A", - "ValueDecimals": 0, - "ValueFontSize": "100%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:172", - "Col": 2, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Mean", - "Selected": true - } - ], - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 28 - }, - "id": 120, - "pluginVersion": "8.2.1", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "tlh8EwUnk" - }, - "rawQuery": true, - "refId": "A", - "target": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n\n \"readNC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_NC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readNC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_NC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readNC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_NC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readUC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_UC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readUC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_UC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readUC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_UC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readCC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_CC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readCC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_CC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readCC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_CC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readRW_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_RW_READ_REQ_sum\", \"&denom\"] }\n },\n \"readRW_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_RW_READ_REQ_sum\", \"&denom\"] }\n },\n \"readRW_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_RW_READ_REQ_sum\", \"&denom\"] }\n },\n \n \"writeNC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_NC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeNC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_NC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeNC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_NC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeUC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_UC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeUC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_UC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeUC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_UC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeCC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_CC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeCC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_CC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeCC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_CC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeRW_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_RW_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeRW_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_RW_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeRW_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_RW_WRITE_REQ_sum\", \"&denom\"] }\n },\n \n \"atomicNC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_NC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicNC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_NC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicNC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_NC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicUC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_UC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicUC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_UC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicUC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_UC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicCC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_CC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicCC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_CC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicCC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_CC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicRW_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_RW_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicRW_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_RW_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicRW_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_RW_ATOMIC_REQ_sum\", \"&denom\"] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Xfer\": \"Read\",\n \"Coherency\": \"NC\",\n \"Avg\": \"&readNC_avg\",\n \"Min\": \"&readNC_min\",\n \"Max\": \"&readNC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Read\",\n \"Coherency\": \"UC\",\n \"Avg\": \"&readUC_avg\",\n \"Min\": \"&readUC_min\",\n \"Max\": \"&readUC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Read\",\n \"Coherency\": \"CC\",\n \"Avg\": \"&readCC_avg\",\n \"Min\": \"&readCC_min\",\n \"Max\": \"&readCC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Read\",\n \"Coherency\": \"RW\",\n \"Avg\": \"&readRW_avg\",\n \"Min\": \"&readRW_min\",\n \"Max\": \"&readRW_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Write\",\n \"Coherency\": \"RW\",\n \"Avg\": \"&writeRW_avg\",\n \"Min\": \"&writeRW_min\",\n \"Max\": \"&writeRW_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Write\",\n \"Coherency\": \"NC\",\n \"Avg\": \"&writeNC_avg\",\n \"Min\": \"&writeNC_min\",\n \"Max\": \"&writeNC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Write\",\n \"Coherency\": \"UC\",\n \"Avg\": \"&writeUC_avg\",\n \"Min\": \"&writeUC_min\",\n \"Max\": \"&writeUC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Write\",\n \"Coherency\": \"CC\",\n \"Avg\": \"&writeCC_avg\",\n \"Min\": \"&writeCC_min\",\n \"Max\": \"&writeCC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n\n {\n \"Xfer\": \"Atomic\",\n \"Coherency\": \"NC\",\n \"Avg\": \"&atomicNC_avg\",\n \"Min\": \"&atomicNC_min\",\n \"Max\": \"&atomicNC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Atomic\",\n \"Coherency\": \"UC\",\n \"Avg\": \"&atomicUC_avg\",\n \"Min\": \"&atomicUC_min\",\n \"Max\": \"&atomicUC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Atomic\",\n \"Coherency\": \"CC\",\n \"Avg\": \"&atomicCC_avg\",\n \"Min\": \"&atomicCC_min\",\n \"Max\": \"&atomicCC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Atomic\",\n \"Coherency\": \"RW\",\n \"Avg\": \"&atomicRW_avg\",\n \"Min\": \"&atomicRW_min\",\n \"Max\": \"&atomicRW_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Vector L1D - L2 Transactions Req $normUnit", - "transparent": true, - "type": "michaeldmoore-multistat-panel" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Units" - }, - "properties": [ - { - "id": "custom.width", - "value": 75 - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 36 - }, - "id": 124, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\":{\"$avg\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n \"req_min\":{\"$min\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n \"req_max\":{\"$max\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n\n\n \"hitRatio_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n \"hitRatio_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n \"hitRatio_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n\n \"hits_avg\":{\"$avg\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n \"hits_min\":{\"$min\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n \"hits_max\":{\"$max\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n\n \"missesTrans_avg\":{\"$avg\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n \"missesTrans_min\":{\"$min\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n \"missesTrans_max\":{\"$max\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n\n \"missesPermis_avg\":{\"$avg\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }},\n \"missesPermis_min\":{\"$min\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }},\n \"missesPermis_max\":{\"$max\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean\": \"&req_avg\",\n \"Min\":\"&req_min\",\n \"Max\":\"&req_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Hit Ratio\",\n \"Mean\": \"&hitRatio_avg\",\n \"Min\":\"&hitRatio_min\",\n \"Max\":\"&hitRatio_max\",\n \"Units\":\"pct\"\n },\n {\n \"Metric\": \"Hits\",\n \"Mean\": \"&hits_avg\",\n \"Min\":\"&hits_min\",\n \"Max\":\"&hits_max\",\n \"Units\":{ \"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Misses (Translation)\",\n \"Mean\": \"&missesTrans_avg\",\n \"Min\":\"&missesTrans_min\",\n \"Max\":\"&missesTrans_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Misses (Permission)\",\n \"Mean\": \"&missesPermis_avg\",\n \"Min\":\"&missesPermis_min\",\n \"Max\":\"&missesPermis_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Vector L1D Cache)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\":{\"$avg\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n \"req_min\":{\"$min\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n \"req_max\":{\"$max\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n\n\n \"hitRatio_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n \"hitRatio_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n \"hitRatio_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n\n \"hits_avg\":{\"$avg\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n \"hits_min\":{\"$min\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n \"hits_max\":{\"$max\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n\n \"missesTrans_avg\":{\"$avg\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n \"missesTrans_min\":{\"$min\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n \"missesTrans_max\":{\"$max\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n\n \"missesPermis_avg\":{\"$avg\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }},\n \"missesPermis_min\":{\"$min\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }},\n \"missesPermis_max\":{\"$max\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean\": \"&req_avg\",\n \"Min\":\"&req_min\",\n \"Max\":\"&req_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Hit Ratio\",\n \"Mean\": \"&hitRatio_avg\",\n \"Min\":\"&hitRatio_min\",\n \"Max\":\"&hitRatio_max\",\n \"Units\":\"pct\"\n },\n {\n \"Metric\": \"Hits\",\n \"Mean\": \"&hits_avg\",\n \"Min\":\"&hits_min\",\n \"Max\":\"&hits_max\",\n \"Units\":{ \"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Misses (Translation)\",\n \"Mean\": \"&missesTrans_avg\",\n \"Min\":\"&missesTrans_min\",\n \"Max\":\"&missesTrans_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Misses (Permission)\",\n \"Mean\": \"&missesPermis_avg\",\n \"Min\":\"&missesPermis_min\",\n \"Max\":\"&missesPermis_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Vector L1D Addr Translation", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Units 2": true - }, - "indexByName": { - "Max 1": 7, - "Max 2": 8, - "Mean 1": 3, - "Mean 2": 4, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Units 1": 9, - "Units 2": 2 - }, - "renameByName": { - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Mean 1": "Avg (Current)", - "Mean 2": "Avg (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Vector L1 Data Cache", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 15 - }, - "id": 56, - "panels": [ - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "L2-EA Rd BW - GB/s" - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2-EA Rd BW " - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - }, - { - "id": "max", - "value": 1638 - }, - { - "id": "color" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2 Util" - }, - "properties": [ - { - "id": "unit", - "value": "percent" - }, - { - "id": "thresholds", - "value": { - "mode": "percentage", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - } - }, - { - "id": "max", - "value": 100 - }, - { - "id": "min", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Cache Hit" - }, - "properties": [ - { - "id": "max", - "value": 100 - }, - { - "id": "unit", - "value": "percent" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - } - }, - { - "id": "min", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2-EA Wr BW" - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - }, - { - "id": "max", - "value": 1638 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2-EA Rd BW" - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - }, - { - "id": "max", - "value": 1638 - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 16 - }, - "id": 64, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "text": { - "titleSize": 14, - "valueSize": 16 - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n{\"$group\": {\n \"_id\": null,\n \"L2Util\": {\n \"$avg\": { \n \n \"$divide\": [\n {\"$multiply\": [\"&TCC_BUSY_sum\", 100]},\n {\"$multiply\": [{\"$toInt\":\"$L2Banks\"}, \"&GRBM_GUI_ACTIVE\"] }\n ] \n } \n },\n\n \"cacheHit\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n 0\n ] \n }},\n\n \"l2eaRdBW\": {\n \"$avg\": { \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \n \"l2eaWrBW\": {\n \"$avg\": { \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"L2 Util\": \"&L2Util\",\n \"Cache Hit\": \"&cacheHit\",\n \"L2-EA Rd BW\": \"&l2eaRdBW\",\n \"L2-EA Wr BW\": \"&l2eaWrBW\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(L2 Cache)\"}}\n }},\n\n{\"$group\": {\n \"_id\": null,\n \"L2Util\": {\n \"$avg\": { \n \"$divide\": [\n {\"$multiply\": [\"&TCC_BUSY_sum\", 100]},\n {\"$multiply\": [{\"$toInt\":\"$L2Banks2\"}, \"&GRBM_GUI_ACTIVE\"] }\n ] \n } \n },\n\n \"cacheHit\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n 0\n ] \n }},\n\n \"l2eaRdBW\": {\n \"$avg\": { \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n },\n \n \"l2eaWrBW\": {\n \"$avg\": { \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, { \"$subtract\": [\"&EndNs\", \"&BeginNs\"] } ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"L2 Util\": \"&L2Util\",\n \"Cache Hit\": \"&cacheHit\",\n \"L2-EA Rd BW\": \"&l2eaRdBW\",\n \"L2-EA Wr BW\": \"&l2eaWrBW\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Speed-of-Light: L2 Cache", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Cache Hit 1": 2, - "Cache Hit 2": 3, - "L2 Util 1": 0, - "L2 Util 2": 1, - "L2-EA Rd BW 1": 4, - "L2-EA Rd BW 2": 5, - "L2-EA Wr BW 1": 6, - "L2-EA Wr BW 2": 7 - }, - "renameByName": { - "Cache Hit 1": "L2 Cache Hit (Current)", - "Cache Hit 2": "L2 Cache Hit (Baseline)", - "L2 Util 1": "L2 Util (Current)", - "L2 Util 2": "L2 Util (Baseline)", - "L2-EA Rd BW - GB/s 1": "L2-EA RD BW (Current)", - "L2-EA Rd BW - GB/s 2": "L2-EA RD BW (baseline)", - "L2-EA Rd BW 1": "L2-EA Rd BW (Current)", - "L2-EA Rd BW 2": "L2-EA Rd BW (Baseline)", - "L2-EA Wr BW - GB/s 1": "L2-EA WR BW (Current)", - "L2-EA Wr BW - GB/s 2": "L2-EA WR BW (Baseline)", - "L2-EA Wr BW 1": "L2-EA Wr BW (Current)", - "L2-EA Wr BW 2": "L2-EA Wr BW (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 106 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 114 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 148 - } - ] - } - ] - }, - "gridPos": { - "h": 16, - "w": 12, - "x": 12, - "y": 16 - }, - "id": 62, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": \"null\",\n \"readStall_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"readStall_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"readStall_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n\n \"writeStall_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"writeStall_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"writeStall_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n\n \n \"readBW_avg\":{\"$avg\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n \"readBW_min\":{\"$min\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n \"readBW_max\":{\"$max\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n\n \"writeBW_avg\":{\"$avg\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n \"writeBW_min\":{\"$min\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n \"writeBW_max\":{\"$max\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n\n \"read32_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n \"read32_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n \"read32_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n\n \"read32Uncached_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"read32Uncached_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"read32Uncached_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n\n \"read64_avg\":{\"$avg\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n \"read64_min\":{\"$min\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n \"read64_max\":{\"$max\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n\n \"hbmRead_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmRead_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmRead_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n\n \"write32_avg\":{\"$avg\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n \"write32_min\":{\"$min\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n \"write32_max\":{\"$max\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n\n \"write32Uncached_avg\": {\"$avg\":{\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"write32Uncached_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"write32Uncached_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n\n \"write64_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n \"write64_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n \"write64_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n\n \"hbmWrite_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmWrite_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmWrite_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n\n \"readLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n \"readLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n \"readLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n\n \"writeLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n \"writeLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n \"writeLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n\n \"atomicOpLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }},\n \"atomicOpLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }},\n \"atomicOpLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Read BW\",\n \"Avg\": \"&readBW_avg\",\n \"Min\":\"&readBW_min\",\n \"Max\":\"&readBW_max\",\n \"Unit\":{\"$concat\": [\"Bytes \", $normUnit] }\n },\n {\n \"Metric\": \"Write BW\",\n \"Avg\": \"&writeBW_avg\",\n \"Min\":\"&writeBW_min\",\n \"Max\":\"&writeBW_max\",\n \"Unit\":{\"$concat\": [\"Bytes \", $normUnit] }\n },\n {\n \"Metric\": \"Read (32B)\",\n \"Avg\": \"&read32_avg\",\n \"Min\":\"&read32_min\",\n \"Max\":\"&read32_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read (Uncached 32B)\",\n \"Avg\": \"&read32Uncached_avg\",\n \"Min\":\"&read32Uncached_min\",\n \"Max\":\"&read32Uncached_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read (64B)\",\n \"Avg\": \"&read64_avg\",\n \"Min\":\"&read64_min\",\n \"Max\":\"&read64_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"HBM Read\",\n \"Avg\": \"&hbmRead_avg\",\n \"Min\":\"&hbmRead_min\",\n \"Max\":\"&hbmRead_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (32B)\",\n \"Avg\": \"&write32_avg\",\n \"Min\":\"&write32_min\",\n \"Max\":\"&write32_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (Uncached 32B)\",\n \"Avg\": \"&write32Uncached_avg\",\n \"Min\":\"&write32Uncached_min\",\n \"Max\":\"&write32Uncached_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (64B)\",\n \"Avg\": \"&write64_avg\",\n \"Min\":\"&write64_min\",\n \"Max\":\"&write64_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"HBM Write\",\n \"Avg\": \"&hbmWrite_avg\",\n \"Min\":\"&hbmWrite_min\",\n \"Max\":\"&hbmWrite_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read Latency\",\n \"Avg\": \"&readLatency_avg\",\n \"Min\":\"&readLatency_min\",\n \"Max\":\"&readLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Write Latency\",\n \"Avg\": \"&writeLatency_avg\",\n \"Min\":\"&writeLatency_min\",\n \"Max\":\"&writeLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Atomic Latency\",\n \"Avg\": \"&atomicOpLatency_avg\",\n \"Min\":\"&atomicOpLatency_min\",\n \"Max\":\"&atomicOpLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Read Stall\",\n \"Avg\": \"&readStall_avg\",\n \"Min\":\"&readStall_min\",\n \"Max\":\"&readStall_max\",\n \"Unit\":\"pct\"\n },\n {\n \"Metric\": \"Write Stall\",\n \"Avg\": \"&writeStall_avg\",\n \"Min\":\"&writeStall_min\",\n \"Max\":\"&writeStall_max\",\n \"Unit\":\"pct\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(L2 Cache)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": \"null\",\n \"readStall_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"readStall_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"readStall_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n\n \"writeStall_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"writeStall_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"writeStall_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n\n \"readBW_avg\":{\"$avg\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n \"readBW_min\":{\"$min\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n \"readBW_max\":{\"$max\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n\n \"writeBW_avg\":{\"$avg\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n \"writeBW_min\":{\"$min\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n \"writeBW_max\":{\"$max\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n\n \"read32_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n \"read32_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n \"read32_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n\n \"read32Uncached_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"read32Uncached_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"read32Uncached_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n\n \"read64_avg\":{\"$avg\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n \"read64_min\":{\"$min\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n \"read64_max\":{\"$max\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n\n \"hbmRead_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmRead_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmRead_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n\n \"write32_avg\":{\"$avg\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n \"write32_min\":{\"$min\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n \"write32_max\":{\"$max\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n\n \"write32Uncached_avg\": {\"$avg\":{\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"write32Uncached_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"write32Uncached_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n\n \"write64_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n \"write64_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n \"write64_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n\n \"hbmWrite_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmWrite_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmWrite_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n\n \"readLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n \"readLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n \"readLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n\n \"writeLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n \"writeLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n \"writeLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n\n \"atomicOpLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }},\n \"atomicOpLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }},\n \"atomicOpLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Read BW\",\n \"Avg\": \"&readBW_avg\",\n \"Min\":\"&readBW_min\",\n \"Max\":\"&readBW_max\",\n \"Unit\":{\"$concat\": [\"Bytes \", $normUnit] }\n },\n {\n \"Metric\": \"Write BW\",\n \"Avg\": \"&writeBW_avg\",\n \"Min\":\"&writeBW_min\",\n \"Max\":\"&writeBW_max\",\n \"Unit\":{\"$concat\": [\"Bytes \", $normUnit] }\n },\n {\n \"Metric\": \"Read (32B)\",\n \"Avg\": \"&read32_avg\",\n \"Min\":\"&read32_min\",\n \"Max\":\"&read32_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read (Uncached 32B)\",\n \"Avg\": \"&read32Uncached_avg\",\n \"Min\":\"&read32Uncached_min\",\n \"Max\":\"&read32Uncached_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read (64B)\",\n \"Avg\": \"&read64_avg\",\n \"Min\":\"&read64_min\",\n \"Max\":\"&read64_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"HBM Read\",\n \"Avg\": \"&hbmRead_avg\",\n \"Min\":\"&hbmRead_min\",\n \"Max\":\"&hbmRead_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (32B)\",\n \"Avg\": \"&write32_avg\",\n \"Min\":\"&write32_min\",\n \"Max\":\"&write32_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (Uncached 32B)\",\n \"Avg\": \"&write32Uncached_avg\",\n \"Min\":\"&write32Uncached_min\",\n \"Max\":\"&write32Uncached_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (64B)\",\n \"Avg\": \"&write64_avg\",\n \"Min\":\"&write64_min\",\n \"Max\":\"&write64_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n\n {\n \"Metric\": \"HBM Write\",\n \"Avg\": \"&hbmWrite_avg\",\n \"Min\":\"&hbmWrite_min\",\n \"Max\":\"&hbmWrite_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read Latency\",\n \"Avg\": \"&readLatency_avg\",\n \"Min\":\"&readLatency_min\",\n \"Max\":\"&readLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Write Latency\",\n \"Avg\": \"&writeLatency_avg\",\n \"Min\":\"&writeLatency_min\",\n \"Max\":\"&writeLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Atomic Latency\",\n \"Avg\": \"&atomicOpLatency_avg\",\n \"Min\":\"&atomicOpLatency_min\",\n \"Max\":\"&atomicOpLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Read Stall\",\n \"Avg\": \"&readStall_avg\",\n \"Min\":\"&readStall_min\",\n \"Max\":\"&readStall_max\",\n \"Unit\":\"pct\"\n },\n {\n \"Metric\": \"Write Stall\",\n \"Avg\": \"&writeStall_avg\",\n \"Min\":\"&writeStall_min\",\n \"Max\":\"&writeStall_max\",\n \"Unit\":\"pct\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "L2 - Fabric Transactions", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 1, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 178 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 128 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 121 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 126 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 128 - } - ] - } - ] - }, - "gridPos": { - "h": 20, - "w": 12, - "x": 0, - "y": 23 - }, - "id": 58, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n \"req_min\":{\"$min\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n \"req_max\":{\"$max\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n\n \"streamingReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n \"streamingReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n \"streamingReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n\n \"readReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n \"readReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n \"readReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n\n \"writeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n\n \"atomicReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n \"atomicReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n \"atomicReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n\n \"probeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n \"probeReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n \"probeReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n\n \"hits_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n \"hits_min\":{\"$min\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n \"hits_max\":{\"$max\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n\n \"misses_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n \"misses_min\":{\"$min\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n \"misses_max\":{\"$max\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n\n \"cacheHit_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n \"cacheHit_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n \"cacheHit_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n\n\n \"writeback_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n \"writeback_min\":{\"$min\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n \"writeback_max\":{\"$max\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n\n \"nc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n \"nc_min\":{\"$min\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n \"nc_max\":{\"$max\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n\n \"uc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n \"uc_min\":{\"$min\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n \"uc_max\":{\"$max\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n\n \"cc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n \"cc_min\":{\"$min\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n \"cc_max\":{\"$max\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n\n \"rw_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n \"rw_min\":{\"$min\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n \"rw_max\":{\"$max\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n\n \"writebackNorm_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n \"writebackNorm_min\":{\"$min\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n \"writebackNorm_max\":{\"$max\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n\n \"writebackTC_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n \"writebackTC_min\":{\"$min\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n \"writebackTC_max\":{\"$max\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n\n \"evictNorm_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n \"evictNorm_min\":{\"$min\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n \"evictNorm_max\":{\"$max\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n\n \"evictTC_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n \"evictTC_min\":{\"$min\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n \"evictTC_max\":{\"$max\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n\n\n \"readReq128_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }},\n \"readReq128_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }},\n \"readReq128_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Req\",\n \"avg\": \"&req_avg\",\n \"min\": \"&req_min\",\n \"max\": \"&req_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Streaming Req\",\n \"avg\": \"&streamingReq_avg\",\n \"min\": \"&streamingReq_min\",\n \"max\": \"&streamingReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Read Req\",\n \"avg\": \"&readReq_avg\",\n \"min\": \"&readReq_min\",\n \"max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n \n {\n \"metric\": \"Write Req\",\n \"avg\": \"&writeReq_avg\",\n \"min\": \"&writeReq_min\",\n \"max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Req\",\n \"avg\": \"&atomicReq_avg\",\n \"min\": \"&atomicReq_min\",\n \"max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Probe Req\",\n \"avg\": \"&probeReq_avg\",\n \"min\": \"&probeReq_min\",\n \"max\": \"&probeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Hits\",\n \"avg\": \"&hits_avg\",\n \"min\": \"&hits_min\",\n \"max\": \"&hits_max\",\n \"Unit\": {\"$concat\": [\"Hits \", $normUnit]}\n }, \n {\n \"metric\": \"Misses\",\n \"avg\": \"&misses_avg\",\n \"min\": \"&misses_min\",\n \"max\": \"&misses_max\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hit\",\n \"avg\": \"&cacheHit_avg\",\n \"min\": \"&cacheHit_min\",\n \"max\": \"&cacheHit_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Writeback\",\n \"avg\": \"&writeback_avg\",\n \"min\": \"&writeback_min\",\n \"max\": \"&writeback_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"NC Req\",\n \"avg\": \"&nc_avg\",\n \"min\": \"&nc_min\",\n \"max\": \"&nc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"UC Req\",\n \"avg\": \"&uc_avg\",\n \"min\": \"&uc_min\",\n \"max\": \"&uc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"CC Req\",\n \"avg\": \"&cc_avg\",\n \"min\": \"&cc_min\",\n \"max\": \"&cc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"RW Req\",\n \"avg\": \"&rw_avg\",\n \"min\": \"&rw_min\",\n \"max\": \"&rw_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Writeback (Normal)\",\n \"avg\": \"&writebackNorm_avg\",\n \"min\": \"&writebackNorm_min\",\n \"max\": \"&writebackNorm_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Writeback (TC Req)\",\n \"avg\": \"&writebackTC_avg\",\n \"min\": \"&writebackTC_min\",\n \"max\": \"&writebackTC_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Evict (Normal)\",\n \"avg\": \"&evictNorm_avg\",\n \"min\": \"&evictNorm_min\",\n \"max\": \"&evictNorm_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Evict (TC Req)\",\n \"avg\": \"&evictTC_avg\",\n \"min\": \"&evictTC_min\",\n \"max\": \"&evictTC_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(L2 Cache)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n \"req_min\":{\"$min\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n \"req_max\":{\"$max\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n\n \"streamingReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n \"streamingReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n \"streamingReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n\n \"readReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n \"readReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n \"readReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n\n \"writeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n\n \"atomicReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n \"atomicReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n \"atomicReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n\n \"probeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n \"probeReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n \"probeReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n\n \"hits_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n \"hits_min\":{\"$min\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n \"hits_max\":{\"$max\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n\n \"misses_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n \"misses_min\":{\"$min\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n \"misses_max\":{\"$max\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n\n \"cacheHit_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n \"cacheHit_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n \"cacheHit_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n\n\n \"writeback_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n \"writeback_min\":{\"$min\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n \"writeback_max\":{\"$max\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n\n \"nc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n \"nc_min\":{\"$min\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n \"nc_max\":{\"$max\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n\n \"uc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n \"uc_min\":{\"$min\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n \"uc_max\":{\"$max\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n\n \"cc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n \"cc_min\":{\"$min\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n \"cc_max\":{\"$max\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n\n \"rw_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n \"rw_min\":{\"$min\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n \"rw_max\":{\"$max\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n\n \"writebackNorm_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n \"writebackNorm_min\":{\"$min\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n \"writebackNorm_max\":{\"$max\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n\n \"writebackTC_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n \"writebackTC_min\":{\"$min\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n \"writebackTC_max\":{\"$max\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n\n \"evictNorm_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n \"evictNorm_min\":{\"$min\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n \"evictNorm_max\":{\"$max\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n\n \"evictTC_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n \"evictTC_min\":{\"$min\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n \"evictTC_max\":{\"$max\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n\n \"readReq128_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }},\n \"readReq128_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }},\n \"readReq128_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Req\",\n \"avg\": \"&req_avg\",\n \"min\": \"&req_min\",\n \"max\": \"&req_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Streaming Req\",\n \"avg\": \"&streamingReq_avg\",\n \"min\": \"&streamingReq_min\",\n \"max\": \"&streamingReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Read Req\",\n \"avg\": \"&readReq_avg\",\n \"min\": \"&readReq_min\",\n \"max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n \n {\n \"metric\": \"Write Req\",\n \"avg\": \"&writeReq_avg\",\n \"min\": \"&writeReq_min\",\n \"max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Req\",\n \"avg\": \"&atomicReq_avg\",\n \"min\": \"&atomicReq_min\",\n \"max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Probe Req\",\n \"avg\": \"&probeReq_avg\",\n \"min\": \"&probeReq_min\",\n \"max\": \"&probeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Hits\",\n \"avg\": \"&hits_avg\",\n \"min\": \"&hits_min\",\n \"max\": \"&hits_max\",\n \"Unit\": {\"$concat\": [\"Hits \", $normUnit]}\n }, \n {\n \"metric\": \"Misses\",\n \"avg\": \"&misses_avg\",\n \"min\": \"&misses_min\",\n \"max\": \"&misses_max\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hit\",\n \"avg\": \"&cacheHit_avg\",\n \"min\": \"&cacheHit_min\",\n \"max\": \"&cacheHit_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Writeback\",\n \"avg\": \"&writeback_avg\",\n \"min\": \"&writeback_min\",\n \"max\": \"&writeback_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"NC Req\",\n \"avg\": \"&nc_avg\",\n \"min\": \"&nc_min\",\n \"max\": \"&nc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"UC Req\",\n \"avg\": \"&uc_avg\",\n \"min\": \"&uc_min\",\n \"max\": \"&uc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"CC Req\",\n \"avg\": \"&cc_avg\",\n \"min\": \"&cc_min\",\n \"max\": \"&cc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"RW Req\",\n \"avg\": \"&rw_avg\",\n \"min\": \"&rw_min\",\n \"max\": \"&rw_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Writeback (Normal)\",\n \"avg\": \"&writebackNorm_avg\",\n \"min\": \"&writebackNorm_min\",\n \"max\": \"&writebackNorm_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Writeback (TC Req)\",\n \"avg\": \"&writebackTC_avg\",\n \"min\": \"&writebackTC_min\",\n \"max\": \"&writebackTC_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Evict (Normal)\",\n \"avg\": \"&evictNorm_avg\",\n \"min\": \"&evictNorm_min\",\n \"max\": \"&evictNorm_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Evict (TC Req)\",\n \"avg\": \"&evictTC_avg\",\n \"min\": \"&evictTC_min\",\n \"max\": \"&evictTC_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - } - ], - "title": "L2 Cache Accesses", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Unit 2": true, - "metric 2": true - }, - "indexByName": { - "Unit 1": 9, - "Unit 2": 2, - "avg 1": 3, - "avg 2": 4, - "max 1": 7, - "max 2": 8, - "metric 1": 0, - "metric 2": 1, - "min 1": 5, - "min 2": 6 - }, - "renameByName": { - "avg 1": "Avg (Current)", - "avg 2": "Avg (Baseline)", - "max 1": "Max (Current)", - "max 2": "Max (Baseline)", - "min 1": "Min (Current)", - "min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "Aggregate": "last", - "BarPadding": 30, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupColName": "Transaction", - "GroupCols": 1, - "GroupGap": 5, - "GroupLabelColor": "#FADE2A", - "GroupLabelFontSize": "120%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 0, - "Horizontal": true, - "LabelColName": "Metric", - "LabelColor": "#ffffff", - "LabelFontSize": "80%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 0, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#FF9830", - "ValueDecimals": 0, - "ValueFontSize": "100%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:81", - "Col": 3, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Selected": true - } - ], - "datasource": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 32 - }, - "id": 60, - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "$Workload1.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"ioStall_READ_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"ioStall_READ_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"ioStall_READ_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"gmiStall_READ_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"gmiStall_READ_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"gmiStall_READ_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"hbmStall_READ_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"hbmStall_READ_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"hbmStall_READ_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"ioStall_WRITE_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"ioStall_WRITE_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"ioStall_WRITE_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"gmiStall_WRITE_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"gmiStall_WRITE_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"gmiStall_WRITE_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"hbmStall_WRITE_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"hbmStall_WRITE_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"hbmStall_WRITE_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"creditStarvation_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_TOO_MANY_EA_WRREQS_STALL_sum\", \"&denom\"] }\n },\n \"creditStarvation_min\": {\n \"$min\": { \"$divide\": [\"&TCC_TOO_MANY_EA_WRREQS_STALL_sum\", \"&denom\"] }\n },\n \"creditStarvation_max\": {\n \"$max\": { \"$divide\": [\"&TCC_TOO_MANY_EA_WRREQS_STALL_sum\", \"&denom\"] }\n } \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Remote Socket Stall\",\n \"Transaction\": \"Read\",\n \"Target\": \"I/O\",\n \"Avg\": \"&ioStall_READ_avg\",\n \"Min\": \"&ioStall_READ_min\",\n \"Max\": \"&ioStall_READ_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Peer GCD Stall\",\n \"Transaction\": \"Read\",\n \"Target\": \"GMI\",\n \"Avg\": \"&gmiStall_READ_avg\",\n \"Min\": \"&gmiStall_READ_min\",\n \"Max\": \"&gmiStall_READ_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"HBM Stall\",\n \"Transaction\": \"Read\",\n \"Target\": \"HBM\",\n \"Avg\": \"&hbmStall_READ_avg\",\n \"Min\": \"&hbmStall_READ_min\",\n \"Max\": \"&hbmStall_READ_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Remote Socket Stall\",\n \"Transaction\": \"Write\",\n \"Target\": \"I/O\",\n \"Avg\": \"&ioStall_WRITE_avg\",\n \"Min\": \"&ioStall_WRITE_min\",\n \"Max\": \"&ioStall_WRITE_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Peer GCD Stall\",\n \"Transaction\": \"Write\",\n \"Target\": \"GMI\",\n \"Avg\": \"&gmiStall_WRITE_avg\",\n \"Min\": \"&gmiStall_WRITE_min\",\n \"Max\": \"&gmiStall_WRITE_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"HBM Stall\",\n \"Transaction\": \"Write\",\n \"Target\": \"HBM\",\n \"Avg\": \"&hbmStall_WRITE_avg\",\n \"Min\": \"&hbmStall_WRITE_min\",\n \"Max\": \"&hbmStall_WRITE_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Credit Starvation\",\n \"Transaction\": \"Write\",\n \"Target\": \"Fabric\",\n \"Avg\": \"&creditStarvation_avg\",\n \"Min\": \"&creditStarvation_min\",\n \"Max\": \"&creditStarvation_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "L2 - Fabric Interface Stalls (Cycles $normUnit)", - "transparent": true, - "type": "michaeldmoore-multistat-panel" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "L2 Cache", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 16 - }, - "id": 66, - "panels": [ - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 24, - "x": 0, - "y": 17 - }, - "id": 314, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": \"null\",\n \"mean_hit_rate\": {\n \"$avg\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n { \"$add\": [\"&TCC_MISS[0]\", \"&TCC_HIT[0]\"] },\n { \"$add\": [\"&TCC_MISS[1]\", \"&TCC_HIT[1]\"] },\n { \"$add\": [\"&TCC_MISS[2]\", \"&TCC_HIT[2]\"] },\n { \"$add\": [\"&TCC_MISS[3]\", \"&TCC_HIT[3]\"] },\n { \"$add\": [\"&TCC_MISS[4]\", \"&TCC_HIT[4]\"] },\n { \"$add\": [\"&TCC_MISS[5]\", \"&TCC_HIT[5]\"] },\n { \"$add\": [\"&TCC_MISS[6]\", \"&TCC_HIT[6]\"] },\n { \"$add\": [\"&TCC_MISS[7]\", \"&TCC_HIT[7]\"] },\n { \"$add\": [\"&TCC_MISS[8]\", \"&TCC_HIT[8]\"] },\n { \"$add\": [\"&TCC_MISS[9]\", \"&TCC_HIT[9]\"] },\n { \"$add\": [\"&TCC_MISS[10]\", \"&TCC_HIT[10]\"] },\n { \"$add\": [\"&TCC_MISS[11]\", \"&TCC_HIT[11]\"] },\n { \"$add\": [\"&TCC_MISS[12]\", \"&TCC_HIT[12]\"] },\n { \"$add\": [\"&TCC_MISS[13]\", \"&TCC_HIT[13]\"] },\n { \"$add\": [\"&TCC_MISS[14]\", \"&TCC_HIT[14]\"] },\n { \"$add\": [\"&TCC_MISS[15]\", \"&TCC_HIT[15]\"] },\n { \"$add\": [\"&TCC_MISS[16]\", \"&TCC_HIT[16]\"] },\n { \"$add\": [\"&TCC_MISS[17]\", \"&TCC_HIT[17]\"] },\n { \"$add\": [\"&TCC_MISS[18]\", \"&TCC_HIT[18]\"] },\n { \"$add\": [\"&TCC_MISS[19]\", \"&TCC_HIT[19]\"] },\n { \"$add\": [\"&TCC_MISS[20]\", \"&TCC_HIT[20]\"] },\n { \"$add\": [\"&TCC_MISS[21]\", \"&TCC_HIT[21]\"] },\n { \"$add\": [\"&TCC_MISS[22]\", \"&TCC_HIT[22]\"] },\n { \"$add\": [\"&TCC_MISS[23]\", \"&TCC_HIT[23]\"] },\n { \"$add\": [\"&TCC_MISS[24]\", \"&TCC_HIT[24]\"] },\n { \"$add\": [\"&TCC_MISS[25]\", \"&TCC_HIT[25]\"] },\n { \"$add\": [\"&TCC_MISS[26]\", \"&TCC_HIT[26]\"] },\n { \"$add\": [\"&TCC_MISS[27]\", \"&TCC_HIT[27]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[28]\"] },\n { \"$add\": [\"&TCC_MISS[29]\", \"&TCC_HIT[29]\"] },\n { \"$add\": [\"&TCC_MISS[30]\", \"&TCC_HIT[30]\"] },\n { \"$add\": [\"&TCC_MISS[31]\", \"&TCC_HIT[31]\"] }\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n { \"$multiply\": [100, \"&TCC_HIT[0]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[1]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[2]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[3]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[4]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[5]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[6]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[7]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[8]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[9]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[10]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[11]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[12]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[13]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[14]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[15]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[16]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[17]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[18]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[19]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[20]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[21]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[22]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[23]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[24]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[25]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[26]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[27]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[28]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[29]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[30]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[31]\"] }\n ]\n },\n {\n \"$add\":[\n { \"$add\": [\"&TCC_MISS[0]\", \"&TCC_HIT[0]\"] },\n { \"$add\": [\"&TCC_MISS[1]\", \"&TCC_HIT[1]\"] },\n { \"$add\": [\"&TCC_MISS[2]\", \"&TCC_HIT[2]\"] },\n { \"$add\": [\"&TCC_MISS[3]\", \"&TCC_HIT[3]\"] },\n { \"$add\": [\"&TCC_MISS[4]\", \"&TCC_HIT[4]\"] },\n { \"$add\": [\"&TCC_MISS[5]\", \"&TCC_HIT[5]\"] },\n { \"$add\": [\"&TCC_MISS[6]\", \"&TCC_HIT[6]\"] },\n { \"$add\": [\"&TCC_MISS[7]\", \"&TCC_HIT[7]\"] },\n { \"$add\": [\"&TCC_MISS[8]\", \"&TCC_HIT[8]\"] },\n { \"$add\": [\"&TCC_MISS[9]\", \"&TCC_HIT[9]\"] },\n { \"$add\": [\"&TCC_MISS[10]\", \"&TCC_HIT[10]\"] },\n { \"$add\": [\"&TCC_MISS[11]\", \"&TCC_HIT[11]\"] },\n { \"$add\": [\"&TCC_MISS[12]\", \"&TCC_HIT[12]\"] },\n { \"$add\": [\"&TCC_MISS[13]\", \"&TCC_HIT[13]\"] },\n { \"$add\": [\"&TCC_MISS[14]\", \"&TCC_HIT[14]\"] },\n { \"$add\": [\"&TCC_MISS[15]\", \"&TCC_HIT[15]\"] },\n { \"$add\": [\"&TCC_MISS[16]\", \"&TCC_HIT[16]\"] },\n { \"$add\": [\"&TCC_MISS[17]\", \"&TCC_HIT[17]\"] },\n { \"$add\": [\"&TCC_MISS[18]\", \"&TCC_HIT[18]\"] },\n { \"$add\": [\"&TCC_MISS[19]\", \"&TCC_HIT[19]\"] },\n { \"$add\": [\"&TCC_MISS[20]\", \"&TCC_HIT[20]\"] },\n { \"$add\": [\"&TCC_MISS[21]\", \"&TCC_HIT[21]\"] },\n { \"$add\": [\"&TCC_MISS[22]\", \"&TCC_HIT[22]\"] },\n { \"$add\": [\"&TCC_MISS[23]\", \"&TCC_HIT[23]\"] },\n { \"$add\": [\"&TCC_MISS[24]\", \"&TCC_HIT[24]\"] },\n { \"$add\": [\"&TCC_MISS[25]\", \"&TCC_HIT[25]\"] },\n { \"$add\": [\"&TCC_MISS[26]\", \"&TCC_HIT[26]\"] },\n { \"$add\": [\"&TCC_MISS[27]\", \"&TCC_HIT[27]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[28]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[29]\"] },\n { \"$add\": [\"&TCC_MISS[30]\", \"&TCC_HIT[30]\"] },\n { \"$add\": [\"&TCC_MISS[31]\", \"&TCC_HIT[31]\"] }\n ]\n }\n ]},\n null\n ]\n }\n },\n \"min_hit_rate\": {\n \"$min\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n { \"$add\": [\"&TCC_MISS[0]\", \"&TCC_HIT[0]\"] },\n { \"$add\": [\"&TCC_MISS[1]\", \"&TCC_HIT[1]\"] },\n { \"$add\": [\"&TCC_MISS[2]\", \"&TCC_HIT[2]\"] },\n { \"$add\": [\"&TCC_MISS[3]\", \"&TCC_HIT[3]\"] },\n { \"$add\": [\"&TCC_MISS[4]\", \"&TCC_HIT[4]\"] },\n { \"$add\": [\"&TCC_MISS[5]\", \"&TCC_HIT[5]\"] },\n { \"$add\": [\"&TCC_MISS[6]\", \"&TCC_HIT[6]\"] },\n { \"$add\": [\"&TCC_MISS[7]\", \"&TCC_HIT[7]\"] },\n { \"$add\": [\"&TCC_MISS[8]\", \"&TCC_HIT[8]\"] },\n { \"$add\": [\"&TCC_MISS[9]\", \"&TCC_HIT[9]\"] },\n { \"$add\": [\"&TCC_MISS[10]\", \"&TCC_HIT[10]\"] },\n { \"$add\": [\"&TCC_MISS[11]\", \"&TCC_HIT[11]\"] },\n { \"$add\": [\"&TCC_MISS[12]\", \"&TCC_HIT[12]\"] },\n { \"$add\": [\"&TCC_MISS[13]\", \"&TCC_HIT[13]\"] },\n { \"$add\": [\"&TCC_MISS[14]\", \"&TCC_HIT[14]\"] },\n { \"$add\": [\"&TCC_MISS[15]\", \"&TCC_HIT[15]\"] },\n { \"$add\": [\"&TCC_MISS[16]\", \"&TCC_HIT[16]\"] },\n { \"$add\": [\"&TCC_MISS[17]\", \"&TCC_HIT[17]\"] },\n { \"$add\": [\"&TCC_MISS[18]\", \"&TCC_HIT[18]\"] },\n { \"$add\": [\"&TCC_MISS[19]\", \"&TCC_HIT[19]\"] },\n { \"$add\": [\"&TCC_MISS[20]\", \"&TCC_HIT[20]\"] },\n { \"$add\": [\"&TCC_MISS[21]\", \"&TCC_HIT[21]\"] },\n { \"$add\": [\"&TCC_MISS[22]\", \"&TCC_HIT[22]\"] },\n { \"$add\": [\"&TCC_MISS[23]\", \"&TCC_HIT[23]\"] },\n { \"$add\": [\"&TCC_MISS[24]\", \"&TCC_HIT[24]\"] },\n { \"$add\": [\"&TCC_MISS[25]\", \"&TCC_HIT[25]\"] },\n { \"$add\": [\"&TCC_MISS[26]\", \"&TCC_HIT[26]\"] },\n { \"$add\": [\"&TCC_MISS[27]\", \"&TCC_HIT[27]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[28]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[29]\"] },\n { \"$add\": [\"&TCC_MISS[30]\", \"&TCC_HIT[30]\"] },\n { \"$add\": [\"&TCC_MISS[31]\", \"&TCC_HIT[31]\"] }\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n { \"$multiply\": [100, \"&TCC_HIT[0]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[1]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[2]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[3]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[4]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[5]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[6]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[7]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[8]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[9]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[10]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[11]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[12]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[13]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[14]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[15]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[16]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[17]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[18]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[19]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[20]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[21]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[22]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[23]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[24]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[25]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[26]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[27]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[28]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[29]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[30]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[31]\"] }\n ]\n },\n {\n \"$add\":[\n { \"$add\": [\"&TCC_MISS[0]\", \"&TCC_HIT[0]\"] },\n { \"$add\": [\"&TCC_MISS[1]\", \"&TCC_HIT[1]\"] },\n { \"$add\": [\"&TCC_MISS[2]\", \"&TCC_HIT[2]\"] },\n { \"$add\": [\"&TCC_MISS[3]\", \"&TCC_HIT[3]\"] },\n { \"$add\": [\"&TCC_MISS[4]\", \"&TCC_HIT[4]\"] },\n { \"$add\": [\"&TCC_MISS[5]\", \"&TCC_HIT[5]\"] },\n { \"$add\": [\"&TCC_MISS[6]\", \"&TCC_HIT[6]\"] },\n { \"$add\": [\"&TCC_MISS[7]\", \"&TCC_HIT[7]\"] },\n { \"$add\": [\"&TCC_MISS[8]\", \"&TCC_HIT[8]\"] },\n { \"$add\": [\"&TCC_MISS[9]\", \"&TCC_HIT[9]\"] },\n { \"$add\": [\"&TCC_MISS[10]\", \"&TCC_HIT[10]\"] },\n { \"$add\": [\"&TCC_MISS[11]\", \"&TCC_HIT[11]\"] },\n { \"$add\": [\"&TCC_MISS[12]\", \"&TCC_HIT[12]\"] },\n { \"$add\": [\"&TCC_MISS[13]\", \"&TCC_HIT[13]\"] },\n { \"$add\": [\"&TCC_MISS[14]\", \"&TCC_HIT[14]\"] },\n { \"$add\": [\"&TCC_MISS[15]\", \"&TCC_HIT[15]\"] },\n { \"$add\": [\"&TCC_MISS[16]\", \"&TCC_HIT[16]\"] },\n { \"$add\": [\"&TCC_MISS[17]\", \"&TCC_HIT[17]\"] },\n { \"$add\": [\"&TCC_MISS[18]\", \"&TCC_HIT[18]\"] },\n { \"$add\": [\"&TCC_MISS[19]\", \"&TCC_HIT[19]\"] },\n { \"$add\": [\"&TCC_MISS[20]\", \"&TCC_HIT[20]\"] },\n { \"$add\": [\"&TCC_MISS[21]\", \"&TCC_HIT[21]\"] },\n { \"$add\": [\"&TCC_MISS[22]\", \"&TCC_HIT[22]\"] },\n { \"$add\": [\"&TCC_MISS[23]\", \"&TCC_HIT[23]\"] },\n { \"$add\": [\"&TCC_MISS[24]\", \"&TCC_HIT[24]\"] },\n { \"$add\": [\"&TCC_MISS[25]\", \"&TCC_HIT[25]\"] },\n { \"$add\": [\"&TCC_MISS[26]\", \"&TCC_HIT[26]\"] },\n { \"$add\": [\"&TCC_MISS[27]\", \"&TCC_HIT[27]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[28]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[29]\"] },\n { \"$add\": [\"&TCC_MISS[30]\", \"&TCC_HIT[30]\"] },\n { \"$add\": [\"&TCC_MISS[31]\", \"&TCC_HIT[31]\"] }\n ]\n }\n ]},\n null\n ]\n }\n },\n \"max_hit_rate\": {\n \"$max\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n { \"$add\": [\"&TCC_MISS[0]\", \"&TCC_HIT[0]\"] },\n { \"$add\": [\"&TCC_MISS[1]\", \"&TCC_HIT[1]\"] },\n { \"$add\": [\"&TCC_MISS[2]\", \"&TCC_HIT[2]\"] },\n { \"$add\": [\"&TCC_MISS[3]\", \"&TCC_HIT[3]\"] },\n { \"$add\": [\"&TCC_MISS[4]\", \"&TCC_HIT[4]\"] },\n { \"$add\": [\"&TCC_MISS[5]\", \"&TCC_HIT[5]\"] },\n { \"$add\": [\"&TCC_MISS[6]\", \"&TCC_HIT[6]\"] },\n { \"$add\": [\"&TCC_MISS[7]\", \"&TCC_HIT[7]\"] },\n { \"$add\": [\"&TCC_MISS[8]\", \"&TCC_HIT[8]\"] },\n { \"$add\": [\"&TCC_MISS[9]\", \"&TCC_HIT[9]\"] },\n { \"$add\": [\"&TCC_MISS[10]\", \"&TCC_HIT[10]\"] },\n { \"$add\": [\"&TCC_MISS[11]\", \"&TCC_HIT[11]\"] },\n { \"$add\": [\"&TCC_MISS[12]\", \"&TCC_HIT[12]\"] },\n { \"$add\": [\"&TCC_MISS[13]\", \"&TCC_HIT[13]\"] },\n { \"$add\": [\"&TCC_MISS[14]\", \"&TCC_HIT[14]\"] },\n { \"$add\": [\"&TCC_MISS[15]\", \"&TCC_HIT[15]\"] },\n { \"$add\": [\"&TCC_MISS[16]\", \"&TCC_HIT[16]\"] },\n { \"$add\": [\"&TCC_MISS[17]\", \"&TCC_HIT[17]\"] },\n { \"$add\": [\"&TCC_MISS[18]\", \"&TCC_HIT[18]\"] },\n { \"$add\": [\"&TCC_MISS[19]\", \"&TCC_HIT[19]\"] },\n { \"$add\": [\"&TCC_MISS[20]\", \"&TCC_HIT[20]\"] },\n { \"$add\": [\"&TCC_MISS[21]\", \"&TCC_HIT[21]\"] },\n { \"$add\": [\"&TCC_MISS[22]\", \"&TCC_HIT[22]\"] },\n { \"$add\": [\"&TCC_MISS[23]\", \"&TCC_HIT[23]\"] },\n { \"$add\": [\"&TCC_MISS[24]\", \"&TCC_HIT[24]\"] },\n { \"$add\": [\"&TCC_MISS[25]\", \"&TCC_HIT[25]\"] },\n { \"$add\": [\"&TCC_MISS[26]\", \"&TCC_HIT[26]\"] },\n { \"$add\": [\"&TCC_MISS[27]\", \"&TCC_HIT[27]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[28]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[29]\"] },\n { \"$add\": [\"&TCC_MISS[30]\", \"&TCC_HIT[30]\"] },\n { \"$add\": [\"&TCC_MISS[31]\", \"&TCC_HIT[31]\"] }\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n { \"$multiply\": [100, \"&TCC_HIT[0]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[1]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[2]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[3]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[4]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[5]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[6]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[7]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[8]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[9]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[10]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[11]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[12]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[13]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[14]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[15]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[16]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[17]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[18]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[19]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[20]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[21]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[22]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[23]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[24]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[25]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[26]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[27]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[28]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[29]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[30]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[31]\"] }\n ]\n },\n {\n \"$add\":[\n { \"$add\": [\"&TCC_MISS[0]\", \"&TCC_HIT[0]\"] },\n { \"$add\": [\"&TCC_MISS[1]\", \"&TCC_HIT[1]\"] },\n { \"$add\": [\"&TCC_MISS[2]\", \"&TCC_HIT[2]\"] },\n { \"$add\": [\"&TCC_MISS[3]\", \"&TCC_HIT[3]\"] },\n { \"$add\": [\"&TCC_MISS[4]\", \"&TCC_HIT[4]\"] },\n { \"$add\": [\"&TCC_MISS[5]\", \"&TCC_HIT[5]\"] },\n { \"$add\": [\"&TCC_MISS[6]\", \"&TCC_HIT[6]\"] },\n { \"$add\": [\"&TCC_MISS[7]\", \"&TCC_HIT[7]\"] },\n { \"$add\": [\"&TCC_MISS[8]\", \"&TCC_HIT[8]\"] },\n { \"$add\": [\"&TCC_MISS[9]\", \"&TCC_HIT[9]\"] },\n { \"$add\": [\"&TCC_MISS[10]\", \"&TCC_HIT[10]\"] },\n { \"$add\": [\"&TCC_MISS[11]\", \"&TCC_HIT[11]\"] },\n { \"$add\": [\"&TCC_MISS[12]\", \"&TCC_HIT[12]\"] },\n { \"$add\": [\"&TCC_MISS[13]\", \"&TCC_HIT[13]\"] },\n { \"$add\": [\"&TCC_MISS[14]\", \"&TCC_HIT[14]\"] },\n { \"$add\": [\"&TCC_MISS[15]\", \"&TCC_HIT[15]\"] },\n { \"$add\": [\"&TCC_MISS[16]\", \"&TCC_HIT[16]\"] },\n { \"$add\": [\"&TCC_MISS[17]\", \"&TCC_HIT[17]\"] },\n { \"$add\": [\"&TCC_MISS[18]\", \"&TCC_HIT[18]\"] },\n { \"$add\": [\"&TCC_MISS[19]\", \"&TCC_HIT[19]\"] },\n { \"$add\": [\"&TCC_MISS[20]\", \"&TCC_HIT[20]\"] },\n { \"$add\": [\"&TCC_MISS[21]\", \"&TCC_HIT[21]\"] },\n { \"$add\": [\"&TCC_MISS[22]\", \"&TCC_HIT[22]\"] },\n { \"$add\": [\"&TCC_MISS[23]\", \"&TCC_HIT[23]\"] },\n { \"$add\": [\"&TCC_MISS[24]\", \"&TCC_HIT[24]\"] },\n { \"$add\": [\"&TCC_MISS[25]\", \"&TCC_HIT[25]\"] },\n { \"$add\": [\"&TCC_MISS[26]\", \"&TCC_HIT[26]\"] },\n { \"$add\": [\"&TCC_MISS[27]\", \"&TCC_HIT[27]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[28]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[29]\"] },\n { \"$add\": [\"&TCC_MISS[30]\", \"&TCC_HIT[30]\"] },\n { \"$add\": [\"&TCC_MISS[31]\", \"&TCC_HIT[31]\"] }\n ]\n }\n ]},\n null\n ]\n }\n },\n \"stdDev_hit_rate\": {\n \"$stdDevPop\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n { \"$add\": [\"&TCC_MISS[0]\", \"&TCC_HIT[0]\"] },\n { \"$add\": [\"&TCC_MISS[1]\", \"&TCC_HIT[1]\"] },\n { \"$add\": [\"&TCC_MISS[2]\", \"&TCC_HIT[2]\"] },\n { \"$add\": [\"&TCC_MISS[3]\", \"&TCC_HIT[3]\"] },\n { \"$add\": [\"&TCC_MISS[4]\", \"&TCC_HIT[4]\"] },\n { \"$add\": [\"&TCC_MISS[5]\", \"&TCC_HIT[5]\"] },\n { \"$add\": [\"&TCC_MISS[6]\", \"&TCC_HIT[6]\"] },\n { \"$add\": [\"&TCC_MISS[7]\", \"&TCC_HIT[7]\"] },\n { \"$add\": [\"&TCC_MISS[8]\", \"&TCC_HIT[8]\"] },\n { \"$add\": [\"&TCC_MISS[9]\", \"&TCC_HIT[9]\"] },\n { \"$add\": [\"&TCC_MISS[10]\", \"&TCC_HIT[10]\"] },\n { \"$add\": [\"&TCC_MISS[11]\", \"&TCC_HIT[11]\"] },\n { \"$add\": [\"&TCC_MISS[12]\", \"&TCC_HIT[12]\"] },\n { \"$add\": [\"&TCC_MISS[13]\", \"&TCC_HIT[13]\"] },\n { \"$add\": [\"&TCC_MISS[14]\", \"&TCC_HIT[14]\"] },\n { \"$add\": [\"&TCC_MISS[15]\", \"&TCC_HIT[15]\"] },\n { \"$add\": [\"&TCC_MISS[16]\", \"&TCC_HIT[16]\"] },\n { \"$add\": [\"&TCC_MISS[17]\", \"&TCC_HIT[17]\"] },\n { \"$add\": [\"&TCC_MISS[18]\", \"&TCC_HIT[18]\"] },\n { \"$add\": [\"&TCC_MISS[19]\", \"&TCC_HIT[19]\"] },\n { \"$add\": [\"&TCC_MISS[20]\", \"&TCC_HIT[20]\"] },\n { \"$add\": [\"&TCC_MISS[21]\", \"&TCC_HIT[21]\"] },\n { \"$add\": [\"&TCC_MISS[22]\", \"&TCC_HIT[22]\"] },\n { \"$add\": [\"&TCC_MISS[23]\", \"&TCC_HIT[23]\"] },\n { \"$add\": [\"&TCC_MISS[24]\", \"&TCC_HIT[24]\"] },\n { \"$add\": [\"&TCC_MISS[25]\", \"&TCC_HIT[25]\"] },\n { \"$add\": [\"&TCC_MISS[26]\", \"&TCC_HIT[26]\"] },\n { \"$add\": [\"&TCC_MISS[27]\", \"&TCC_HIT[27]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[28]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[29]\"] },\n { \"$add\": [\"&TCC_MISS[30]\", \"&TCC_HIT[30]\"] },\n { \"$add\": [\"&TCC_MISS[31]\", \"&TCC_HIT[31]\"] }\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n { \"$multiply\": [100, \"&TCC_HIT[0]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[1]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[2]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[3]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[4]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[5]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[6]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[7]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[8]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[9]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[10]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[11]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[12]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[13]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[14]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[15]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[16]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[17]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[18]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[19]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[20]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[21]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[22]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[23]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[24]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[25]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[26]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[27]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[28]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[29]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[30]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[31]\"] }\n ]\n },\n {\n \"$add\":[\n { \"$add\": [\"&TCC_MISS[0]\", \"&TCC_HIT[0]\"] },\n { \"$add\": [\"&TCC_MISS[1]\", \"&TCC_HIT[1]\"] },\n { \"$add\": [\"&TCC_MISS[2]\", \"&TCC_HIT[2]\"] },\n { \"$add\": [\"&TCC_MISS[3]\", \"&TCC_HIT[3]\"] },\n { \"$add\": [\"&TCC_MISS[4]\", \"&TCC_HIT[4]\"] },\n { \"$add\": [\"&TCC_MISS[5]\", \"&TCC_HIT[5]\"] },\n { \"$add\": [\"&TCC_MISS[6]\", \"&TCC_HIT[6]\"] },\n { \"$add\": [\"&TCC_MISS[7]\", \"&TCC_HIT[7]\"] },\n { \"$add\": [\"&TCC_MISS[8]\", \"&TCC_HIT[8]\"] },\n { \"$add\": [\"&TCC_MISS[9]\", \"&TCC_HIT[9]\"] },\n { \"$add\": [\"&TCC_MISS[10]\", \"&TCC_HIT[10]\"] },\n { \"$add\": [\"&TCC_MISS[11]\", \"&TCC_HIT[11]\"] },\n { \"$add\": [\"&TCC_MISS[12]\", \"&TCC_HIT[12]\"] },\n { \"$add\": [\"&TCC_MISS[13]\", \"&TCC_HIT[13]\"] },\n { \"$add\": [\"&TCC_MISS[14]\", \"&TCC_HIT[14]\"] },\n { \"$add\": [\"&TCC_MISS[15]\", \"&TCC_HIT[15]\"] },\n { \"$add\": [\"&TCC_MISS[16]\", \"&TCC_HIT[16]\"] },\n { \"$add\": [\"&TCC_MISS[17]\", \"&TCC_HIT[17]\"] },\n { \"$add\": [\"&TCC_MISS[18]\", \"&TCC_HIT[18]\"] },\n { \"$add\": [\"&TCC_MISS[19]\", \"&TCC_HIT[19]\"] },\n { \"$add\": [\"&TCC_MISS[20]\", \"&TCC_HIT[20]\"] },\n { \"$add\": [\"&TCC_MISS[21]\", \"&TCC_HIT[21]\"] },\n { \"$add\": [\"&TCC_MISS[22]\", \"&TCC_HIT[22]\"] },\n { \"$add\": [\"&TCC_MISS[23]\", \"&TCC_HIT[23]\"] },\n { \"$add\": [\"&TCC_MISS[24]\", \"&TCC_HIT[24]\"] },\n { \"$add\": [\"&TCC_MISS[25]\", \"&TCC_HIT[25]\"] },\n { \"$add\": [\"&TCC_MISS[26]\", \"&TCC_HIT[26]\"] },\n { \"$add\": [\"&TCC_MISS[27]\", \"&TCC_HIT[27]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[28]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[29]\"] },\n { \"$add\": [\"&TCC_MISS[30]\", \"&TCC_HIT[30]\"] },\n { \"$add\": [\"&TCC_MISS[31]\", \"&TCC_HIT[31]\"] }\n ]\n }\n ]},\n null\n ]\n }\n },\n \"mean_req\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_REQ[0]\"},\n {\"$toInt\": \"&TCC_REQ[1]\"},\n {\"$toInt\": \"&TCC_REQ[2]\"},\n {\"$toInt\": \"&TCC_REQ[3]\"},\n {\"$toInt\": \"&TCC_REQ[4]\"},\n {\"$toInt\": \"&TCC_REQ[5]\"},\n {\"$toInt\": \"&TCC_REQ[6]\"},\n {\"$toInt\": \"&TCC_REQ[7]\"},\n {\"$toInt\": \"&TCC_REQ[8]\"},\n {\"$toInt\": \"&TCC_REQ[9]\"},\n {\"$toInt\": \"&TCC_REQ[10]\"},\n {\"$toInt\": \"&TCC_REQ[11]\"},\n {\"$toInt\": \"&TCC_REQ[12]\"},\n {\"$toInt\": \"&TCC_REQ[13]\"},\n {\"$toInt\": \"&TCC_REQ[14]\"},\n {\"$toInt\": \"&TCC_REQ[15]\"},\n {\"$toInt\": \"&TCC_REQ[16]\"},\n {\"$toInt\": \"&TCC_REQ[17]\"},\n {\"$toInt\": \"&TCC_REQ[18]\"},\n {\"$toInt\": \"&TCC_REQ[19]\"},\n {\"$toInt\": \"&TCC_REQ[20]\"},\n {\"$toInt\": \"&TCC_REQ[21]\"},\n {\"$toInt\": \"&TCC_REQ[22]\"},\n {\"$toInt\": \"&TCC_REQ[23]\"},\n {\"$toInt\": \"&TCC_REQ[24]\"},\n {\"$toInt\": \"&TCC_REQ[25]\"},\n {\"$toInt\": \"&TCC_REQ[26]\"},\n {\"$toInt\": \"&TCC_REQ[27]\"},\n {\"$toInt\": \"&TCC_REQ[28]\"},\n {\"$toInt\": \"&TCC_REQ[29]\"},\n {\"$toInt\": \"&TCC_REQ[30]\"},\n {\"$toInt\": \"&TCC_REQ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_req\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_REQ[0]\"},\n {\"$toInt\": \"&TCC_REQ[1]\"},\n {\"$toInt\": \"&TCC_REQ[2]\"},\n {\"$toInt\": \"&TCC_REQ[3]\"},\n {\"$toInt\": \"&TCC_REQ[4]\"},\n {\"$toInt\": \"&TCC_REQ[5]\"},\n {\"$toInt\": \"&TCC_REQ[6]\"},\n {\"$toInt\": \"&TCC_REQ[7]\"},\n {\"$toInt\": \"&TCC_REQ[8]\"},\n {\"$toInt\": \"&TCC_REQ[9]\"},\n {\"$toInt\": \"&TCC_REQ[10]\"},\n {\"$toInt\": \"&TCC_REQ[11]\"},\n {\"$toInt\": \"&TCC_REQ[12]\"},\n {\"$toInt\": \"&TCC_REQ[13]\"},\n {\"$toInt\": \"&TCC_REQ[14]\"},\n {\"$toInt\": \"&TCC_REQ[15]\"},\n {\"$toInt\": \"&TCC_REQ[16]\"},\n {\"$toInt\": \"&TCC_REQ[17]\"},\n {\"$toInt\": \"&TCC_REQ[18]\"},\n {\"$toInt\": \"&TCC_REQ[19]\"},\n {\"$toInt\": \"&TCC_REQ[20]\"},\n {\"$toInt\": \"&TCC_REQ[21]\"},\n {\"$toInt\": \"&TCC_REQ[22]\"},\n {\"$toInt\": \"&TCC_REQ[23]\"},\n {\"$toInt\": \"&TCC_REQ[24]\"},\n {\"$toInt\": \"&TCC_REQ[25]\"},\n {\"$toInt\": \"&TCC_REQ[26]\"},\n {\"$toInt\": \"&TCC_REQ[27]\"},\n {\"$toInt\": \"&TCC_REQ[28]\"},\n {\"$toInt\": \"&TCC_REQ[29]\"},\n {\"$toInt\": \"&TCC_REQ[30]\"},\n {\"$toInt\": \"&TCC_REQ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_req\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_REQ[0]\"},\n {\"$toInt\": \"&TCC_REQ[1]\"},\n {\"$toInt\": \"&TCC_REQ[2]\"},\n {\"$toInt\": \"&TCC_REQ[3]\"},\n {\"$toInt\": \"&TCC_REQ[4]\"},\n {\"$toInt\": \"&TCC_REQ[5]\"},\n {\"$toInt\": \"&TCC_REQ[6]\"},\n {\"$toInt\": \"&TCC_REQ[7]\"},\n {\"$toInt\": \"&TCC_REQ[8]\"},\n {\"$toInt\": \"&TCC_REQ[9]\"},\n {\"$toInt\": \"&TCC_REQ[10]\"},\n {\"$toInt\": \"&TCC_REQ[11]\"},\n {\"$toInt\": \"&TCC_REQ[12]\"},\n {\"$toInt\": \"&TCC_REQ[13]\"},\n {\"$toInt\": \"&TCC_REQ[14]\"},\n {\"$toInt\": \"&TCC_REQ[15]\"},\n {\"$toInt\": \"&TCC_REQ[16]\"},\n {\"$toInt\": \"&TCC_REQ[17]\"},\n {\"$toInt\": \"&TCC_REQ[18]\"},\n {\"$toInt\": \"&TCC_REQ[19]\"},\n {\"$toInt\": \"&TCC_REQ[20]\"},\n {\"$toInt\": \"&TCC_REQ[21]\"},\n {\"$toInt\": \"&TCC_REQ[22]\"},\n {\"$toInt\": \"&TCC_REQ[23]\"},\n {\"$toInt\": \"&TCC_REQ[24]\"},\n {\"$toInt\": \"&TCC_REQ[25]\"},\n {\"$toInt\": \"&TCC_REQ[26]\"},\n {\"$toInt\": \"&TCC_REQ[27]\"},\n {\"$toInt\": \"&TCC_REQ[28]\"},\n {\"$toInt\": \"&TCC_REQ[29]\"},\n {\"$toInt\": \"&TCC_REQ[30]\"},\n {\"$toInt\": \"&TCC_REQ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_req\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_REQ[0]\"},\n {\"$toInt\": \"&TCC_REQ[1]\"},\n {\"$toInt\": \"&TCC_REQ[2]\"},\n {\"$toInt\": \"&TCC_REQ[3]\"},\n {\"$toInt\": \"&TCC_REQ[4]\"},\n {\"$toInt\": \"&TCC_REQ[5]\"},\n {\"$toInt\": \"&TCC_REQ[6]\"},\n {\"$toInt\": \"&TCC_REQ[7]\"},\n {\"$toInt\": \"&TCC_REQ[8]\"},\n {\"$toInt\": \"&TCC_REQ[9]\"},\n {\"$toInt\": \"&TCC_REQ[10]\"},\n {\"$toInt\": \"&TCC_REQ[11]\"},\n {\"$toInt\": \"&TCC_REQ[12]\"},\n {\"$toInt\": \"&TCC_REQ[13]\"},\n {\"$toInt\": \"&TCC_REQ[14]\"},\n {\"$toInt\": \"&TCC_REQ[15]\"},\n {\"$toInt\": \"&TCC_REQ[16]\"},\n {\"$toInt\": \"&TCC_REQ[17]\"},\n {\"$toInt\": \"&TCC_REQ[18]\"},\n {\"$toInt\": \"&TCC_REQ[19]\"},\n {\"$toInt\": \"&TCC_REQ[20]\"},\n {\"$toInt\": \"&TCC_REQ[21]\"},\n {\"$toInt\": \"&TCC_REQ[22]\"},\n {\"$toInt\": \"&TCC_REQ[23]\"},\n {\"$toInt\": \"&TCC_REQ[24]\"},\n {\"$toInt\": \"&TCC_REQ[25]\"},\n {\"$toInt\": \"&TCC_REQ[26]\"},\n {\"$toInt\": \"&TCC_REQ[27]\"},\n {\"$toInt\": \"&TCC_REQ[28]\"},\n {\"$toInt\": \"&TCC_REQ[29]\"},\n {\"$toInt\": \"&TCC_REQ[30]\"},\n {\"$toInt\": \"&TCC_REQ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_read_req\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_READ[0]\"},\n {\"$toInt\": \"&TCC_READ[1]\"},\n {\"$toInt\": \"&TCC_READ[2]\"},\n {\"$toInt\": \"&TCC_READ[3]\"},\n {\"$toInt\": \"&TCC_READ[4]\"},\n {\"$toInt\": \"&TCC_READ[5]\"},\n {\"$toInt\": \"&TCC_READ[6]\"},\n {\"$toInt\": \"&TCC_READ[7]\"},\n {\"$toInt\": \"&TCC_READ[8]\"},\n {\"$toInt\": \"&TCC_READ[9]\"},\n {\"$toInt\": \"&TCC_READ[10]\"},\n {\"$toInt\": \"&TCC_READ[11]\"},\n {\"$toInt\": \"&TCC_READ[12]\"},\n {\"$toInt\": \"&TCC_READ[13]\"},\n {\"$toInt\": \"&TCC_READ[14]\"},\n {\"$toInt\": \"&TCC_READ[15]\"},\n {\"$toInt\": \"&TCC_READ[16]\"},\n {\"$toInt\": \"&TCC_READ[17]\"},\n {\"$toInt\": \"&TCC_READ[18]\"},\n {\"$toInt\": \"&TCC_READ[19]\"},\n {\"$toInt\": \"&TCC_READ[20]\"},\n {\"$toInt\": \"&TCC_READ[21]\"},\n {\"$toInt\": \"&TCC_READ[22]\"},\n {\"$toInt\": \"&TCC_READ[23]\"},\n {\"$toInt\": \"&TCC_READ[24]\"},\n {\"$toInt\": \"&TCC_READ[25]\"},\n {\"$toInt\": \"&TCC_READ[26]\"},\n {\"$toInt\": \"&TCC_READ[27]\"},\n {\"$toInt\": \"&TCC_READ[28]\"},\n {\"$toInt\": \"&TCC_READ[29]\"},\n {\"$toInt\": \"&TCC_READ[30]\"},\n {\"$toInt\": \"&TCC_READ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_read_req\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_READ[0]\"},\n {\"$toInt\": \"&TCC_READ[1]\"},\n {\"$toInt\": \"&TCC_READ[2]\"},\n {\"$toInt\": \"&TCC_READ[3]\"},\n {\"$toInt\": \"&TCC_READ[4]\"},\n {\"$toInt\": \"&TCC_READ[5]\"},\n {\"$toInt\": \"&TCC_READ[6]\"},\n {\"$toInt\": \"&TCC_READ[7]\"},\n {\"$toInt\": \"&TCC_READ[8]\"},\n {\"$toInt\": \"&TCC_READ[9]\"},\n {\"$toInt\": \"&TCC_READ[10]\"},\n {\"$toInt\": \"&TCC_READ[11]\"},\n {\"$toInt\": \"&TCC_READ[12]\"},\n {\"$toInt\": \"&TCC_READ[13]\"},\n {\"$toInt\": \"&TCC_READ[14]\"},\n {\"$toInt\": \"&TCC_READ[15]\"},\n {\"$toInt\": \"&TCC_READ[16]\"},\n {\"$toInt\": \"&TCC_READ[17]\"},\n {\"$toInt\": \"&TCC_READ[18]\"},\n {\"$toInt\": \"&TCC_READ[19]\"},\n {\"$toInt\": \"&TCC_READ[20]\"},\n {\"$toInt\": \"&TCC_READ[21]\"},\n {\"$toInt\": \"&TCC_READ[22]\"},\n {\"$toInt\": \"&TCC_READ[23]\"},\n {\"$toInt\": \"&TCC_READ[24]\"},\n {\"$toInt\": \"&TCC_READ[25]\"},\n {\"$toInt\": \"&TCC_READ[26]\"},\n {\"$toInt\": \"&TCC_READ[27]\"},\n {\"$toInt\": \"&TCC_READ[28]\"},\n {\"$toInt\": \"&TCC_READ[29]\"},\n {\"$toInt\": \"&TCC_READ[30]\"},\n {\"$toInt\": \"&TCC_READ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_read_req\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_READ[0]\"},\n {\"$toInt\": \"&TCC_READ[1]\"},\n {\"$toInt\": \"&TCC_READ[2]\"},\n {\"$toInt\": \"&TCC_READ[3]\"},\n {\"$toInt\": \"&TCC_READ[4]\"},\n {\"$toInt\": \"&TCC_READ[5]\"},\n {\"$toInt\": \"&TCC_READ[6]\"},\n {\"$toInt\": \"&TCC_READ[7]\"},\n {\"$toInt\": \"&TCC_READ[8]\"},\n {\"$toInt\": \"&TCC_READ[9]\"},\n {\"$toInt\": \"&TCC_READ[10]\"},\n {\"$toInt\": \"&TCC_READ[11]\"},\n {\"$toInt\": \"&TCC_READ[12]\"},\n {\"$toInt\": \"&TCC_READ[13]\"},\n {\"$toInt\": \"&TCC_READ[14]\"},\n {\"$toInt\": \"&TCC_READ[15]\"},\n {\"$toInt\": \"&TCC_READ[16]\"},\n {\"$toInt\": \"&TCC_READ[17]\"},\n {\"$toInt\": \"&TCC_READ[18]\"},\n {\"$toInt\": \"&TCC_READ[19]\"},\n {\"$toInt\": \"&TCC_READ[20]\"},\n {\"$toInt\": \"&TCC_READ[21]\"},\n {\"$toInt\": \"&TCC_READ[22]\"},\n {\"$toInt\": \"&TCC_READ[23]\"},\n {\"$toInt\": \"&TCC_READ[24]\"},\n {\"$toInt\": \"&TCC_READ[25]\"},\n {\"$toInt\": \"&TCC_READ[26]\"},\n {\"$toInt\": \"&TCC_READ[27]\"},\n {\"$toInt\": \"&TCC_READ[28]\"},\n {\"$toInt\": \"&TCC_READ[29]\"},\n {\"$toInt\": \"&TCC_READ[30]\"},\n {\"$toInt\": \"&TCC_READ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_read_req\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_READ[0]\"},\n {\"$toInt\": \"&TCC_READ[1]\"},\n {\"$toInt\": \"&TCC_READ[2]\"},\n {\"$toInt\": \"&TCC_READ[3]\"},\n {\"$toInt\": \"&TCC_READ[4]\"},\n {\"$toInt\": \"&TCC_READ[5]\"},\n {\"$toInt\": \"&TCC_READ[6]\"},\n {\"$toInt\": \"&TCC_READ[7]\"},\n {\"$toInt\": \"&TCC_READ[8]\"},\n {\"$toInt\": \"&TCC_READ[9]\"},\n {\"$toInt\": \"&TCC_READ[10]\"},\n {\"$toInt\": \"&TCC_READ[11]\"},\n {\"$toInt\": \"&TCC_READ[12]\"},\n {\"$toInt\": \"&TCC_READ[13]\"},\n {\"$toInt\": \"&TCC_READ[14]\"},\n {\"$toInt\": \"&TCC_READ[15]\"},\n {\"$toInt\": \"&TCC_READ[16]\"},\n {\"$toInt\": \"&TCC_READ[17]\"},\n {\"$toInt\": \"&TCC_READ[18]\"},\n {\"$toInt\": \"&TCC_READ[19]\"},\n {\"$toInt\": \"&TCC_READ[20]\"},\n {\"$toInt\": \"&TCC_READ[21]\"},\n {\"$toInt\": \"&TCC_READ[22]\"},\n {\"$toInt\": \"&TCC_READ[23]\"},\n {\"$toInt\": \"&TCC_READ[24]\"},\n {\"$toInt\": \"&TCC_READ[25]\"},\n {\"$toInt\": \"&TCC_READ[26]\"},\n {\"$toInt\": \"&TCC_READ[27]\"},\n {\"$toInt\": \"&TCC_READ[28]\"},\n {\"$toInt\": \"&TCC_READ[29]\"},\n {\"$toInt\": \"&TCC_READ[30]\"},\n {\"$toInt\": \"&TCC_READ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_write_req\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_WRITE[0]\"},\n {\"$toInt\": \"&TCC_WRITE[1]\"},\n {\"$toInt\": \"&TCC_WRITE[2]\"},\n {\"$toInt\": \"&TCC_WRITE[3]\"},\n {\"$toInt\": \"&TCC_WRITE[4]\"},\n {\"$toInt\": \"&TCC_WRITE[5]\"},\n {\"$toInt\": \"&TCC_WRITE[6]\"},\n {\"$toInt\": \"&TCC_WRITE[7]\"},\n {\"$toInt\": \"&TCC_WRITE[8]\"},\n {\"$toInt\": \"&TCC_WRITE[9]\"},\n {\"$toInt\": \"&TCC_WRITE[10]\"},\n {\"$toInt\": \"&TCC_WRITE[11]\"},\n {\"$toInt\": \"&TCC_WRITE[12]\"},\n {\"$toInt\": \"&TCC_WRITE[13]\"},\n {\"$toInt\": \"&TCC_WRITE[14]\"},\n {\"$toInt\": \"&TCC_WRITE[15]\"},\n {\"$toInt\": \"&TCC_WRITE[16]\"},\n {\"$toInt\": \"&TCC_WRITE[17]\"},\n {\"$toInt\": \"&TCC_WRITE[18]\"},\n {\"$toInt\": \"&TCC_WRITE[19]\"},\n {\"$toInt\": \"&TCC_WRITE[20]\"},\n {\"$toInt\": \"&TCC_WRITE[21]\"},\n {\"$toInt\": \"&TCC_WRITE[22]\"},\n {\"$toInt\": \"&TCC_WRITE[23]\"},\n {\"$toInt\": \"&TCC_WRITE[24]\"},\n {\"$toInt\": \"&TCC_WRITE[25]\"},\n {\"$toInt\": \"&TCC_WRITE[26]\"},\n {\"$toInt\": \"&TCC_WRITE[27]\"},\n {\"$toInt\": \"&TCC_WRITE[28]\"},\n {\"$toInt\": \"&TCC_WRITE[29]\"},\n {\"$toInt\": \"&TCC_WRITE[30]\"},\n {\"$toInt\": \"&TCC_WRITE[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_write_req\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_WRITE[0]\"},\n {\"$toInt\": \"&TCC_WRITE[1]\"},\n {\"$toInt\": \"&TCC_WRITE[2]\"},\n {\"$toInt\": \"&TCC_WRITE[3]\"},\n {\"$toInt\": \"&TCC_WRITE[4]\"},\n {\"$toInt\": \"&TCC_WRITE[5]\"},\n {\"$toInt\": \"&TCC_WRITE[6]\"},\n {\"$toInt\": \"&TCC_WRITE[7]\"},\n {\"$toInt\": \"&TCC_WRITE[8]\"},\n {\"$toInt\": \"&TCC_WRITE[9]\"},\n {\"$toInt\": \"&TCC_WRITE[10]\"},\n {\"$toInt\": \"&TCC_WRITE[11]\"},\n {\"$toInt\": \"&TCC_WRITE[12]\"},\n {\"$toInt\": \"&TCC_WRITE[13]\"},\n {\"$toInt\": \"&TCC_WRITE[14]\"},\n {\"$toInt\": \"&TCC_WRITE[15]\"},\n {\"$toInt\": \"&TCC_WRITE[16]\"},\n {\"$toInt\": \"&TCC_WRITE[17]\"},\n {\"$toInt\": \"&TCC_WRITE[18]\"},\n {\"$toInt\": \"&TCC_WRITE[19]\"},\n {\"$toInt\": \"&TCC_WRITE[20]\"},\n {\"$toInt\": \"&TCC_WRITE[21]\"},\n {\"$toInt\": \"&TCC_WRITE[22]\"},\n {\"$toInt\": \"&TCC_WRITE[23]\"},\n {\"$toInt\": \"&TCC_WRITE[24]\"},\n {\"$toInt\": \"&TCC_WRITE[25]\"},\n {\"$toInt\": \"&TCC_WRITE[26]\"},\n {\"$toInt\": \"&TCC_WRITE[27]\"},\n {\"$toInt\": \"&TCC_WRITE[28]\"},\n {\"$toInt\": \"&TCC_WRITE[29]\"},\n {\"$toInt\": \"&TCC_WRITE[30]\"},\n {\"$toInt\": \"&TCC_WRITE[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_write_req\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_WRITE[0]\"},\n {\"$toInt\": \"&TCC_WRITE[1]\"},\n {\"$toInt\": \"&TCC_WRITE[2]\"},\n {\"$toInt\": \"&TCC_WRITE[3]\"},\n {\"$toInt\": \"&TCC_WRITE[4]\"},\n {\"$toInt\": \"&TCC_WRITE[5]\"},\n {\"$toInt\": \"&TCC_WRITE[6]\"},\n {\"$toInt\": \"&TCC_WRITE[7]\"},\n {\"$toInt\": \"&TCC_WRITE[8]\"},\n {\"$toInt\": \"&TCC_WRITE[9]\"},\n {\"$toInt\": \"&TCC_WRITE[10]\"},\n {\"$toInt\": \"&TCC_WRITE[11]\"},\n {\"$toInt\": \"&TCC_WRITE[12]\"},\n {\"$toInt\": \"&TCC_WRITE[13]\"},\n {\"$toInt\": \"&TCC_WRITE[14]\"},\n {\"$toInt\": \"&TCC_WRITE[15]\"},\n {\"$toInt\": \"&TCC_WRITE[16]\"},\n {\"$toInt\": \"&TCC_WRITE[17]\"},\n {\"$toInt\": \"&TCC_WRITE[18]\"},\n {\"$toInt\": \"&TCC_WRITE[19]\"},\n {\"$toInt\": \"&TCC_WRITE[20]\"},\n {\"$toInt\": \"&TCC_WRITE[21]\"},\n {\"$toInt\": \"&TCC_WRITE[22]\"},\n {\"$toInt\": \"&TCC_WRITE[23]\"},\n {\"$toInt\": \"&TCC_WRITE[24]\"},\n {\"$toInt\": \"&TCC_WRITE[25]\"},\n {\"$toInt\": \"&TCC_WRITE[26]\"},\n {\"$toInt\": \"&TCC_WRITE[27]\"},\n {\"$toInt\": \"&TCC_WRITE[28]\"},\n {\"$toInt\": \"&TCC_WRITE[29]\"},\n {\"$toInt\": \"&TCC_WRITE[30]\"},\n {\"$toInt\": \"&TCC_WRITE[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_write_req\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_WRITE[0]\"},\n {\"$toInt\": \"&TCC_WRITE[1]\"},\n {\"$toInt\": \"&TCC_WRITE[2]\"},\n {\"$toInt\": \"&TCC_WRITE[3]\"},\n {\"$toInt\": \"&TCC_WRITE[4]\"},\n {\"$toInt\": \"&TCC_WRITE[5]\"},\n {\"$toInt\": \"&TCC_WRITE[6]\"},\n {\"$toInt\": \"&TCC_WRITE[7]\"},\n {\"$toInt\": \"&TCC_WRITE[8]\"},\n {\"$toInt\": \"&TCC_WRITE[9]\"},\n {\"$toInt\": \"&TCC_WRITE[10]\"},\n {\"$toInt\": \"&TCC_WRITE[11]\"},\n {\"$toInt\": \"&TCC_WRITE[12]\"},\n {\"$toInt\": \"&TCC_WRITE[13]\"},\n {\"$toInt\": \"&TCC_WRITE[14]\"},\n {\"$toInt\": \"&TCC_WRITE[15]\"},\n {\"$toInt\": \"&TCC_WRITE[16]\"},\n {\"$toInt\": \"&TCC_WRITE[17]\"},\n {\"$toInt\": \"&TCC_WRITE[18]\"},\n {\"$toInt\": \"&TCC_WRITE[19]\"},\n {\"$toInt\": \"&TCC_WRITE[20]\"},\n {\"$toInt\": \"&TCC_WRITE[21]\"},\n {\"$toInt\": \"&TCC_WRITE[22]\"},\n {\"$toInt\": \"&TCC_WRITE[23]\"},\n {\"$toInt\": \"&TCC_WRITE[24]\"},\n {\"$toInt\": \"&TCC_WRITE[25]\"},\n {\"$toInt\": \"&TCC_WRITE[26]\"},\n {\"$toInt\": \"&TCC_WRITE[27]\"},\n {\"$toInt\": \"&TCC_WRITE[28]\"},\n {\"$toInt\": \"&TCC_WRITE[29]\"},\n {\"$toInt\": \"&TCC_WRITE[30]\"},\n {\"$toInt\": \"&TCC_WRITE[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_atomic_req\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_ATOMIC[0]\"},\n {\"$toInt\": \"&TCC_ATOMIC[1]\"},\n {\"$toInt\": \"&TCC_ATOMIC[2]\"},\n {\"$toInt\": \"&TCC_ATOMIC[3]\"},\n {\"$toInt\": \"&TCC_ATOMIC[4]\"},\n {\"$toInt\": \"&TCC_ATOMIC[5]\"},\n {\"$toInt\": \"&TCC_ATOMIC[6]\"},\n {\"$toInt\": \"&TCC_ATOMIC[7]\"},\n {\"$toInt\": \"&TCC_ATOMIC[8]\"},\n {\"$toInt\": \"&TCC_ATOMIC[9]\"},\n {\"$toInt\": \"&TCC_ATOMIC[10]\"},\n {\"$toInt\": \"&TCC_ATOMIC[11]\"},\n {\"$toInt\": \"&TCC_ATOMIC[12]\"},\n {\"$toInt\": \"&TCC_ATOMIC[13]\"},\n {\"$toInt\": \"&TCC_ATOMIC[14]\"},\n {\"$toInt\": \"&TCC_ATOMIC[15]\"},\n {\"$toInt\": \"&TCC_ATOMIC[16]\"},\n {\"$toInt\": \"&TCC_ATOMIC[17]\"},\n {\"$toInt\": \"&TCC_ATOMIC[18]\"},\n {\"$toInt\": \"&TCC_ATOMIC[19]\"},\n {\"$toInt\": \"&TCC_ATOMIC[20]\"},\n {\"$toInt\": \"&TCC_ATOMIC[21]\"},\n {\"$toInt\": \"&TCC_ATOMIC[22]\"},\n {\"$toInt\": \"&TCC_ATOMIC[23]\"},\n {\"$toInt\": \"&TCC_ATOMIC[24]\"},\n {\"$toInt\": \"&TCC_ATOMIC[25]\"},\n {\"$toInt\": \"&TCC_ATOMIC[26]\"},\n {\"$toInt\": \"&TCC_ATOMIC[27]\"},\n {\"$toInt\": \"&TCC_ATOMIC[28]\"},\n {\"$toInt\": \"&TCC_ATOMIC[29]\"},\n {\"$toInt\": \"&TCC_ATOMIC[30]\"},\n {\"$toInt\": \"&TCC_ATOMIC[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_atomic_req\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_ATOMIC[0]\"},\n {\"$toInt\": \"&TCC_ATOMIC[1]\"},\n {\"$toInt\": \"&TCC_ATOMIC[2]\"},\n {\"$toInt\": \"&TCC_ATOMIC[3]\"},\n {\"$toInt\": \"&TCC_ATOMIC[4]\"},\n {\"$toInt\": \"&TCC_ATOMIC[5]\"},\n {\"$toInt\": \"&TCC_ATOMIC[6]\"},\n {\"$toInt\": \"&TCC_ATOMIC[7]\"},\n {\"$toInt\": \"&TCC_ATOMIC[8]\"},\n {\"$toInt\": \"&TCC_ATOMIC[9]\"},\n {\"$toInt\": \"&TCC_ATOMIC[10]\"},\n {\"$toInt\": \"&TCC_ATOMIC[11]\"},\n {\"$toInt\": \"&TCC_ATOMIC[12]\"},\n {\"$toInt\": \"&TCC_ATOMIC[13]\"},\n {\"$toInt\": \"&TCC_ATOMIC[14]\"},\n {\"$toInt\": \"&TCC_ATOMIC[15]\"},\n {\"$toInt\": \"&TCC_ATOMIC[16]\"},\n {\"$toInt\": \"&TCC_ATOMIC[17]\"},\n {\"$toInt\": \"&TCC_ATOMIC[18]\"},\n {\"$toInt\": \"&TCC_ATOMIC[19]\"},\n {\"$toInt\": \"&TCC_ATOMIC[20]\"},\n {\"$toInt\": \"&TCC_ATOMIC[21]\"},\n {\"$toInt\": \"&TCC_ATOMIC[22]\"},\n {\"$toInt\": \"&TCC_ATOMIC[23]\"},\n {\"$toInt\": \"&TCC_ATOMIC[24]\"},\n {\"$toInt\": \"&TCC_ATOMIC[25]\"},\n {\"$toInt\": \"&TCC_ATOMIC[26]\"},\n {\"$toInt\": \"&TCC_ATOMIC[27]\"},\n {\"$toInt\": \"&TCC_ATOMIC[28]\"},\n {\"$toInt\": \"&TCC_ATOMIC[29]\"},\n {\"$toInt\": \"&TCC_ATOMIC[30]\"},\n {\"$toInt\": \"&TCC_ATOMIC[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_atomic_req\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_ATOMIC[0]\"},\n {\"$toInt\": \"&TCC_ATOMIC[1]\"},\n {\"$toInt\": \"&TCC_ATOMIC[2]\"},\n {\"$toInt\": \"&TCC_ATOMIC[3]\"},\n {\"$toInt\": \"&TCC_ATOMIC[4]\"},\n {\"$toInt\": \"&TCC_ATOMIC[5]\"},\n {\"$toInt\": \"&TCC_ATOMIC[6]\"},\n {\"$toInt\": \"&TCC_ATOMIC[7]\"},\n {\"$toInt\": \"&TCC_ATOMIC[8]\"},\n {\"$toInt\": \"&TCC_ATOMIC[9]\"},\n {\"$toInt\": \"&TCC_ATOMIC[10]\"},\n {\"$toInt\": \"&TCC_ATOMIC[11]\"},\n {\"$toInt\": \"&TCC_ATOMIC[12]\"},\n {\"$toInt\": \"&TCC_ATOMIC[13]\"},\n {\"$toInt\": \"&TCC_ATOMIC[14]\"},\n {\"$toInt\": \"&TCC_ATOMIC[15]\"},\n {\"$toInt\": \"&TCC_ATOMIC[16]\"},\n {\"$toInt\": \"&TCC_ATOMIC[17]\"},\n {\"$toInt\": \"&TCC_ATOMIC[18]\"},\n {\"$toInt\": \"&TCC_ATOMIC[19]\"},\n {\"$toInt\": \"&TCC_ATOMIC[20]\"},\n {\"$toInt\": \"&TCC_ATOMIC[21]\"},\n {\"$toInt\": \"&TCC_ATOMIC[22]\"},\n {\"$toInt\": \"&TCC_ATOMIC[23]\"},\n {\"$toInt\": \"&TCC_ATOMIC[24]\"},\n {\"$toInt\": \"&TCC_ATOMIC[25]\"},\n {\"$toInt\": \"&TCC_ATOMIC[26]\"},\n {\"$toInt\": \"&TCC_ATOMIC[27]\"},\n {\"$toInt\": \"&TCC_ATOMIC[28]\"},\n {\"$toInt\": \"&TCC_ATOMIC[29]\"},\n {\"$toInt\": \"&TCC_ATOMIC[30]\"},\n {\"$toInt\": \"&TCC_ATOMIC[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_atomic_req\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_ATOMIC[0]\"},\n {\"$toInt\": \"&TCC_ATOMIC[1]\"},\n {\"$toInt\": \"&TCC_ATOMIC[2]\"},\n {\"$toInt\": \"&TCC_ATOMIC[3]\"},\n {\"$toInt\": \"&TCC_ATOMIC[4]\"},\n {\"$toInt\": \"&TCC_ATOMIC[5]\"},\n {\"$toInt\": \"&TCC_ATOMIC[6]\"},\n {\"$toInt\": \"&TCC_ATOMIC[7]\"},\n {\"$toInt\": \"&TCC_ATOMIC[8]\"},\n {\"$toInt\": \"&TCC_ATOMIC[9]\"},\n {\"$toInt\": \"&TCC_ATOMIC[10]\"},\n {\"$toInt\": \"&TCC_ATOMIC[11]\"},\n {\"$toInt\": \"&TCC_ATOMIC[12]\"},\n {\"$toInt\": \"&TCC_ATOMIC[13]\"},\n {\"$toInt\": \"&TCC_ATOMIC[14]\"},\n {\"$toInt\": \"&TCC_ATOMIC[15]\"},\n {\"$toInt\": \"&TCC_ATOMIC[16]\"},\n {\"$toInt\": \"&TCC_ATOMIC[17]\"},\n {\"$toInt\": \"&TCC_ATOMIC[18]\"},\n {\"$toInt\": \"&TCC_ATOMIC[19]\"},\n {\"$toInt\": \"&TCC_ATOMIC[20]\"},\n {\"$toInt\": \"&TCC_ATOMIC[21]\"},\n {\"$toInt\": \"&TCC_ATOMIC[22]\"},\n {\"$toInt\": \"&TCC_ATOMIC[23]\"},\n {\"$toInt\": \"&TCC_ATOMIC[24]\"},\n {\"$toInt\": \"&TCC_ATOMIC[25]\"},\n {\"$toInt\": \"&TCC_ATOMIC[26]\"},\n {\"$toInt\": \"&TCC_ATOMIC[27]\"},\n {\"$toInt\": \"&TCC_ATOMIC[28]\"},\n {\"$toInt\": \"&TCC_ATOMIC[29]\"},\n {\"$toInt\": \"&TCC_ATOMIC[30]\"},\n {\"$toInt\": \"&TCC_ATOMIC[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_eaRead_req\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_eaRead_req\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_eaRead_req\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_eaRead_req\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_eaWrite_req\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_eaWrite_req\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_eaWrite_req\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_eaWrite_req\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_eaAtomic_req\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_ATOMIC[0]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[1]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[2]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[3]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[4]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[5]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[6]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[7]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[8]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[9]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[10]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[11]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[12]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[13]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[14]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[15]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[16]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[17]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[18]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[19]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[20]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[21]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[22]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[23]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[24]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[25]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[26]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[27]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[28]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[29]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[30]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_eaAtomic_req\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_ATOMIC[0]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[1]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[2]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[3]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[4]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[5]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[6]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[7]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[8]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[9]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[10]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[11]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[12]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[13]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[14]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[15]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[16]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[17]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[18]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[19]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[20]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[21]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[22]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[23]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[24]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[25]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[26]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[27]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[28]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[29]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[30]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_eaAtomic_req\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_ATOMIC[0]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[1]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[2]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[3]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[4]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[5]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[6]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[7]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[8]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[9]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[10]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[11]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[12]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[13]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[14]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[15]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[16]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[17]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[18]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[19]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[20]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[21]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[22]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[23]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[24]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[25]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[26]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[27]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[28]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[29]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[30]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_eaAtomic_req\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_ATOMIC[0]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[1]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[2]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[3]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[4]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[5]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[6]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[7]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[8]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[9]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[10]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[11]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[12]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[13]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[14]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[15]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[16]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[17]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[18]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[19]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[20]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[21]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[22]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[23]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[24]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[25]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[26]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[27]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[28]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[29]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[30]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_eaRead_lat\": {\n \"$avg\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n \"&TCC_EA_RDREQ[0]\",\n \"&TCC_EA_RDREQ[1]\",\n \"&TCC_EA_RDREQ[2]\",\n \"&TCC_EA_RDREQ[3]\",\n \"&TCC_EA_RDREQ[4]\",\n \"&TCC_EA_RDREQ[5]\",\n \"&TCC_EA_RDREQ[6]\",\n \"&TCC_EA_RDREQ[7]\",\n \"&TCC_EA_RDREQ[8]\",\n \"&TCC_EA_RDREQ[9]\",\n \"&TCC_EA_RDREQ[10]\",\n \"&TCC_EA_RDREQ[11]\",\n \"&TCC_EA_RDREQ[12]\",\n \"&TCC_EA_RDREQ[13]\",\n \"&TCC_EA_RDREQ[14]\",\n \"&TCC_EA_RDREQ[15]\",\n \"&TCC_EA_RDREQ[16]\",\n \"&TCC_EA_RDREQ[17]\",\n \"&TCC_EA_RDREQ[18]\",\n \"&TCC_EA_RDREQ[19]\",\n \"&TCC_EA_RDREQ[20]\",\n \"&TCC_EA_RDREQ[21]\",\n \"&TCC_EA_RDREQ[22]\",\n \"&TCC_EA_RDREQ[23]\",\n \"&TCC_EA_RDREQ[24]\",\n \"&TCC_EA_RDREQ[25]\",\n \"&TCC_EA_RDREQ[26]\",\n \"&TCC_EA_RDREQ[27]\",\n \"&TCC_EA_RDREQ[28]\",\n \"&TCC_EA_RDREQ[29]\",\n \"&TCC_EA_RDREQ[30]\",\n \"&TCC_EA_RDREQ[31]\"\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n \"&TCC_EA_RDREQ_LEVEL[0]\",\n \"&TCC_EA_RDREQ_LEVEL[1]\",\n \"&TCC_EA_RDREQ_LEVEL[2]\",\n \"&TCC_EA_RDREQ_LEVEL[3]\",\n \"&TCC_EA_RDREQ_LEVEL[4]\",\n \"&TCC_EA_RDREQ_LEVEL[5]\",\n \"&TCC_EA_RDREQ_LEVEL[6]\",\n \"&TCC_EA_RDREQ_LEVEL[7]\",\n \"&TCC_EA_RDREQ_LEVEL[8]\",\n \"&TCC_EA_RDREQ_LEVEL[9]\",\n \"&TCC_EA_RDREQ_LEVEL[10]\",\n \"&TCC_EA_RDREQ_LEVEL[11]\",\n \"&TCC_EA_RDREQ_LEVEL[12]\",\n \"&TCC_EA_RDREQ_LEVEL[13]\",\n \"&TCC_EA_RDREQ_LEVEL[14]\",\n \"&TCC_EA_RDREQ_LEVEL[15]\",\n \"&TCC_EA_RDREQ_LEVEL[16]\",\n \"&TCC_EA_RDREQ_LEVEL[17]\",\n \"&TCC_EA_RDREQ_LEVEL[18]\",\n \"&TCC_EA_RDREQ_LEVEL[19]\",\n \"&TCC_EA_RDREQ_LEVEL[20]\",\n \"&TCC_EA_RDREQ_LEVEL[21]\",\n \"&TCC_EA_RDREQ_LEVEL[22]\",\n \"&TCC_EA_RDREQ_LEVEL[23]\",\n \"&TCC_EA_RDREQ_LEVEL[24]\",\n \"&TCC_EA_RDREQ_LEVEL[25]\",\n \"&TCC_EA_RDREQ_LEVEL[26]\",\n \"&TCC_EA_RDREQ_LEVEL[27]\",\n \"&TCC_EA_RDREQ_LEVEL[28]\",\n \"&TCC_EA_RDREQ_LEVEL[29]\",\n \"&TCC_EA_RDREQ_LEVEL[30]\",\n \"&TCC_EA_RDREQ_LEVEL[31]\"\n ]\n },\n {\n \"$add\":[\n \"&TCC_EA_RDREQ[0]\",\n \"&TCC_EA_RDREQ[1]\",\n \"&TCC_EA_RDREQ[2]\",\n \"&TCC_EA_RDREQ[3]\",\n \"&TCC_EA_RDREQ[4]\",\n \"&TCC_EA_RDREQ[5]\",\n \"&TCC_EA_RDREQ[6]\",\n \"&TCC_EA_RDREQ[7]\",\n \"&TCC_EA_RDREQ[8]\",\n \"&TCC_EA_RDREQ[9]\",\n \"&TCC_EA_RDREQ[10]\",\n \"&TCC_EA_RDREQ[11]\",\n \"&TCC_EA_RDREQ[12]\",\n \"&TCC_EA_RDREQ[13]\",\n \"&TCC_EA_RDREQ[14]\",\n \"&TCC_EA_RDREQ[15]\",\n \"&TCC_EA_RDREQ[16]\",\n \"&TCC_EA_RDREQ[17]\",\n \"&TCC_EA_RDREQ[18]\",\n \"&TCC_EA_RDREQ[19]\",\n \"&TCC_EA_RDREQ[20]\",\n \"&TCC_EA_RDREQ[21]\",\n \"&TCC_EA_RDREQ[22]\",\n \"&TCC_EA_RDREQ[23]\",\n \"&TCC_EA_RDREQ[24]\",\n \"&TCC_EA_RDREQ[25]\",\n \"&TCC_EA_RDREQ[26]\",\n \"&TCC_EA_RDREQ[27]\",\n \"&TCC_EA_RDREQ[28]\",\n \"&TCC_EA_RDREQ[29]\",\n \"&TCC_EA_RDREQ[30]\",\n \"&TCC_EA_RDREQ[31]\"\n ]\n }\n ]},\n null\n ]\n }\n },\n \"min_eaRead_lat\": {\n \"$min\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n \"&TCC_EA_RDREQ[0]\",\n \"&TCC_EA_RDREQ[1]\",\n \"&TCC_EA_RDREQ[2]\",\n \"&TCC_EA_RDREQ[3]\",\n \"&TCC_EA_RDREQ[4]\",\n \"&TCC_EA_RDREQ[5]\",\n \"&TCC_EA_RDREQ[6]\",\n \"&TCC_EA_RDREQ[7]\",\n \"&TCC_EA_RDREQ[8]\",\n \"&TCC_EA_RDREQ[9]\",\n \"&TCC_EA_RDREQ[10]\",\n \"&TCC_EA_RDREQ[11]\",\n \"&TCC_EA_RDREQ[12]\",\n \"&TCC_EA_RDREQ[13]\",\n \"&TCC_EA_RDREQ[14]\",\n \"&TCC_EA_RDREQ[15]\",\n \"&TCC_EA_RDREQ[16]\",\n \"&TCC_EA_RDREQ[17]\",\n \"&TCC_EA_RDREQ[18]\",\n \"&TCC_EA_RDREQ[19]\",\n \"&TCC_EA_RDREQ[20]\",\n \"&TCC_EA_RDREQ[21]\",\n \"&TCC_EA_RDREQ[22]\",\n \"&TCC_EA_RDREQ[23]\",\n \"&TCC_EA_RDREQ[24]\",\n \"&TCC_EA_RDREQ[25]\",\n \"&TCC_EA_RDREQ[26]\",\n \"&TCC_EA_RDREQ[27]\",\n \"&TCC_EA_RDREQ[28]\",\n \"&TCC_EA_RDREQ[29]\",\n \"&TCC_EA_RDREQ[30]\",\n \"&TCC_EA_RDREQ[31]\"\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n \"&TCC_EA_RDREQ_LEVEL[0]\",\n \"&TCC_EA_RDREQ_LEVEL[1]\",\n \"&TCC_EA_RDREQ_LEVEL[2]\",\n \"&TCC_EA_RDREQ_LEVEL[3]\",\n \"&TCC_EA_RDREQ_LEVEL[4]\",\n \"&TCC_EA_RDREQ_LEVEL[5]\",\n \"&TCC_EA_RDREQ_LEVEL[6]\",\n \"&TCC_EA_RDREQ_LEVEL[7]\",\n \"&TCC_EA_RDREQ_LEVEL[8]\",\n \"&TCC_EA_RDREQ_LEVEL[9]\",\n \"&TCC_EA_RDREQ_LEVEL[10]\",\n \"&TCC_EA_RDREQ_LEVEL[11]\",\n \"&TCC_EA_RDREQ_LEVEL[12]\",\n \"&TCC_EA_RDREQ_LEVEL[13]\",\n \"&TCC_EA_RDREQ_LEVEL[14]\",\n \"&TCC_EA_RDREQ_LEVEL[15]\",\n \"&TCC_EA_RDREQ_LEVEL[16]\",\n \"&TCC_EA_RDREQ_LEVEL[17]\",\n \"&TCC_EA_RDREQ_LEVEL[18]\",\n \"&TCC_EA_RDREQ_LEVEL[19]\",\n \"&TCC_EA_RDREQ_LEVEL[20]\",\n \"&TCC_EA_RDREQ_LEVEL[21]\",\n \"&TCC_EA_RDREQ_LEVEL[22]\",\n \"&TCC_EA_RDREQ_LEVEL[23]\",\n \"&TCC_EA_RDREQ_LEVEL[24]\",\n \"&TCC_EA_RDREQ_LEVEL[25]\",\n \"&TCC_EA_RDREQ_LEVEL[26]\",\n \"&TCC_EA_RDREQ_LEVEL[27]\",\n \"&TCC_EA_RDREQ_LEVEL[28]\",\n \"&TCC_EA_RDREQ_LEVEL[29]\",\n \"&TCC_EA_RDREQ_LEVEL[30]\",\n \"&TCC_EA_RDREQ_LEVEL[31]\"\n ]\n },\n {\n \"$add\":[\n \"&TCC_EA_RDREQ[0]\",\n \"&TCC_EA_RDREQ[1]\",\n \"&TCC_EA_RDREQ[2]\",\n \"&TCC_EA_RDREQ[3]\",\n \"&TCC_EA_RDREQ[4]\",\n \"&TCC_EA_RDREQ[5]\",\n \"&TCC_EA_RDREQ[6]\",\n \"&TCC_EA_RDREQ[7]\",\n \"&TCC_EA_RDREQ[8]\",\n \"&TCC_EA_RDREQ[9]\",\n \"&TCC_EA_RDREQ[10]\",\n \"&TCC_EA_RDREQ[11]\",\n \"&TCC_EA_RDREQ[12]\",\n \"&TCC_EA_RDREQ[13]\",\n \"&TCC_EA_RDREQ[14]\",\n \"&TCC_EA_RDREQ[15]\",\n \"&TCC_EA_RDREQ[16]\",\n \"&TCC_EA_RDREQ[17]\",\n \"&TCC_EA_RDREQ[18]\",\n \"&TCC_EA_RDREQ[19]\",\n \"&TCC_EA_RDREQ[20]\",\n \"&TCC_EA_RDREQ[21]\",\n \"&TCC_EA_RDREQ[22]\",\n \"&TCC_EA_RDREQ[23]\",\n \"&TCC_EA_RDREQ[24]\",\n \"&TCC_EA_RDREQ[25]\",\n \"&TCC_EA_RDREQ[26]\",\n \"&TCC_EA_RDREQ[27]\",\n \"&TCC_EA_RDREQ[28]\",\n \"&TCC_EA_RDREQ[29]\",\n \"&TCC_EA_RDREQ[30]\",\n \"&TCC_EA_RDREQ[31]\"\n ]\n }\n ]},\n null\n ]\n }\n },\n \"max_eaRead_lat\": {\n \"$max\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n \"&TCC_EA_RDREQ[0]\",\n \"&TCC_EA_RDREQ[1]\",\n \"&TCC_EA_RDREQ[2]\",\n \"&TCC_EA_RDREQ[3]\",\n \"&TCC_EA_RDREQ[4]\",\n \"&TCC_EA_RDREQ[5]\",\n \"&TCC_EA_RDREQ[6]\",\n \"&TCC_EA_RDREQ[7]\",\n \"&TCC_EA_RDREQ[8]\",\n \"&TCC_EA_RDREQ[9]\",\n \"&TCC_EA_RDREQ[10]\",\n \"&TCC_EA_RDREQ[11]\",\n \"&TCC_EA_RDREQ[12]\",\n \"&TCC_EA_RDREQ[13]\",\n \"&TCC_EA_RDREQ[14]\",\n \"&TCC_EA_RDREQ[15]\",\n \"&TCC_EA_RDREQ[16]\",\n \"&TCC_EA_RDREQ[17]\",\n \"&TCC_EA_RDREQ[18]\",\n \"&TCC_EA_RDREQ[19]\",\n \"&TCC_EA_RDREQ[20]\",\n \"&TCC_EA_RDREQ[21]\",\n \"&TCC_EA_RDREQ[22]\",\n \"&TCC_EA_RDREQ[23]\",\n \"&TCC_EA_RDREQ[24]\",\n \"&TCC_EA_RDREQ[25]\",\n \"&TCC_EA_RDREQ[26]\",\n \"&TCC_EA_RDREQ[27]\",\n \"&TCC_EA_RDREQ[28]\",\n \"&TCC_EA_RDREQ[29]\",\n \"&TCC_EA_RDREQ[30]\",\n \"&TCC_EA_RDREQ[31]\"\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n \"&TCC_EA_RDREQ_LEVEL[0]\",\n \"&TCC_EA_RDREQ_LEVEL[1]\",\n \"&TCC_EA_RDREQ_LEVEL[2]\",\n \"&TCC_EA_RDREQ_LEVEL[3]\",\n \"&TCC_EA_RDREQ_LEVEL[4]\",\n \"&TCC_EA_RDREQ_LEVEL[5]\",\n \"&TCC_EA_RDREQ_LEVEL[6]\",\n \"&TCC_EA_RDREQ_LEVEL[7]\",\n \"&TCC_EA_RDREQ_LEVEL[8]\",\n \"&TCC_EA_RDREQ_LEVEL[9]\",\n \"&TCC_EA_RDREQ_LEVEL[10]\",\n \"&TCC_EA_RDREQ_LEVEL[11]\",\n \"&TCC_EA_RDREQ_LEVEL[12]\",\n \"&TCC_EA_RDREQ_LEVEL[13]\",\n \"&TCC_EA_RDREQ_LEVEL[14]\",\n \"&TCC_EA_RDREQ_LEVEL[15]\",\n \"&TCC_EA_RDREQ_LEVEL[16]\",\n \"&TCC_EA_RDREQ_LEVEL[17]\",\n \"&TCC_EA_RDREQ_LEVEL[18]\",\n \"&TCC_EA_RDREQ_LEVEL[19]\",\n \"&TCC_EA_RDREQ_LEVEL[20]\",\n \"&TCC_EA_RDREQ_LEVEL[21]\",\n \"&TCC_EA_RDREQ_LEVEL[22]\",\n \"&TCC_EA_RDREQ_LEVEL[23]\",\n \"&TCC_EA_RDREQ_LEVEL[24]\",\n \"&TCC_EA_RDREQ_LEVEL[25]\",\n \"&TCC_EA_RDREQ_LEVEL[26]\",\n \"&TCC_EA_RDREQ_LEVEL[27]\",\n \"&TCC_EA_RDREQ_LEVEL[28]\",\n \"&TCC_EA_RDREQ_LEVEL[29]\",\n \"&TCC_EA_RDREQ_LEVEL[30]\",\n \"&TCC_EA_RDREQ_LEVEL[31]\"\n ]\n },\n {\n \"$add\":[\n \"&TCC_EA_RDREQ[0]\",\n \"&TCC_EA_RDREQ[1]\",\n \"&TCC_EA_RDREQ[2]\",\n \"&TCC_EA_RDREQ[3]\",\n \"&TCC_EA_RDREQ[4]\",\n \"&TCC_EA_RDREQ[5]\",\n \"&TCC_EA_RDREQ[6]\",\n \"&TCC_EA_RDREQ[7]\",\n \"&TCC_EA_RDREQ[8]\",\n \"&TCC_EA_RDREQ[9]\",\n \"&TCC_EA_RDREQ[10]\",\n \"&TCC_EA_RDREQ[11]\",\n \"&TCC_EA_RDREQ[12]\",\n \"&TCC_EA_RDREQ[13]\",\n \"&TCC_EA_RDREQ[14]\",\n \"&TCC_EA_RDREQ[15]\",\n \"&TCC_EA_RDREQ[16]\",\n \"&TCC_EA_RDREQ[17]\",\n \"&TCC_EA_RDREQ[18]\",\n \"&TCC_EA_RDREQ[19]\",\n \"&TCC_EA_RDREQ[20]\",\n \"&TCC_EA_RDREQ[21]\",\n \"&TCC_EA_RDREQ[22]\",\n \"&TCC_EA_RDREQ[23]\",\n \"&TCC_EA_RDREQ[24]\",\n \"&TCC_EA_RDREQ[25]\",\n \"&TCC_EA_RDREQ[26]\",\n \"&TCC_EA_RDREQ[27]\",\n \"&TCC_EA_RDREQ[28]\",\n \"&TCC_EA_RDREQ[29]\",\n \"&TCC_EA_RDREQ[30]\",\n \"&TCC_EA_RDREQ[31]\"\n ]\n }\n ]},\n null\n ]\n }\n },\n \"stdDev_eaRead_lat\": {\n \"$stdDevPop\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n \"&TCC_EA_RDREQ[0]\",\n \"&TCC_EA_RDREQ[1]\",\n \"&TCC_EA_RDREQ[2]\",\n \"&TCC_EA_RDREQ[3]\",\n \"&TCC_EA_RDREQ[4]\",\n \"&TCC_EA_RDREQ[5]\",\n \"&TCC_EA_RDREQ[6]\",\n \"&TCC_EA_RDREQ[7]\",\n \"&TCC_EA_RDREQ[8]\",\n \"&TCC_EA_RDREQ[9]\",\n \"&TCC_EA_RDREQ[10]\",\n \"&TCC_EA_RDREQ[11]\",\n \"&TCC_EA_RDREQ[12]\",\n \"&TCC_EA_RDREQ[13]\",\n \"&TCC_EA_RDREQ[14]\",\n \"&TCC_EA_RDREQ[15]\",\n \"&TCC_EA_RDREQ[16]\",\n \"&TCC_EA_RDREQ[17]\",\n \"&TCC_EA_RDREQ[18]\",\n \"&TCC_EA_RDREQ[19]\",\n \"&TCC_EA_RDREQ[20]\",\n \"&TCC_EA_RDREQ[21]\",\n \"&TCC_EA_RDREQ[22]\",\n \"&TCC_EA_RDREQ[23]\",\n \"&TCC_EA_RDREQ[24]\",\n \"&TCC_EA_RDREQ[25]\",\n \"&TCC_EA_RDREQ[26]\",\n \"&TCC_EA_RDREQ[27]\",\n \"&TCC_EA_RDREQ[28]\",\n \"&TCC_EA_RDREQ[29]\",\n \"&TCC_EA_RDREQ[30]\",\n \"&TCC_EA_RDREQ[31]\"\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n \"&TCC_EA_RDREQ_LEVEL[0]\",\n \"&TCC_EA_RDREQ_LEVEL[1]\",\n \"&TCC_EA_RDREQ_LEVEL[2]\",\n \"&TCC_EA_RDREQ_LEVEL[3]\",\n \"&TCC_EA_RDREQ_LEVEL[4]\",\n \"&TCC_EA_RDREQ_LEVEL[5]\",\n \"&TCC_EA_RDREQ_LEVEL[6]\",\n \"&TCC_EA_RDREQ_LEVEL[7]\",\n \"&TCC_EA_RDREQ_LEVEL[8]\",\n \"&TCC_EA_RDREQ_LEVEL[9]\",\n \"&TCC_EA_RDREQ_LEVEL[10]\",\n \"&TCC_EA_RDREQ_LEVEL[11]\",\n \"&TCC_EA_RDREQ_LEVEL[12]\",\n \"&TCC_EA_RDREQ_LEVEL[13]\",\n \"&TCC_EA_RDREQ_LEVEL[14]\",\n \"&TCC_EA_RDREQ_LEVEL[15]\",\n \"&TCC_EA_RDREQ_LEVEL[16]\",\n \"&TCC_EA_RDREQ_LEVEL[17]\",\n \"&TCC_EA_RDREQ_LEVEL[18]\",\n \"&TCC_EA_RDREQ_LEVEL[19]\",\n \"&TCC_EA_RDREQ_LEVEL[20]\",\n \"&TCC_EA_RDREQ_LEVEL[21]\",\n \"&TCC_EA_RDREQ_LEVEL[22]\",\n \"&TCC_EA_RDREQ_LEVEL[23]\",\n \"&TCC_EA_RDREQ_LEVEL[24]\",\n \"&TCC_EA_RDREQ_LEVEL[25]\",\n \"&TCC_EA_RDREQ_LEVEL[26]\",\n \"&TCC_EA_RDREQ_LEVEL[27]\",\n \"&TCC_EA_RDREQ_LEVEL[28]\",\n \"&TCC_EA_RDREQ_LEVEL[29]\",\n \"&TCC_EA_RDREQ_LEVEL[30]\",\n \"&TCC_EA_RDREQ_LEVEL[31]\"\n ]\n },\n {\n \"$add\":[\n \"&TCC_EA_RDREQ[0]\",\n \"&TCC_EA_RDREQ[1]\",\n \"&TCC_EA_RDREQ[2]\",\n \"&TCC_EA_RDREQ[3]\",\n \"&TCC_EA_RDREQ[4]\",\n \"&TCC_EA_RDREQ[5]\",\n \"&TCC_EA_RDREQ[6]\",\n \"&TCC_EA_RDREQ[7]\",\n \"&TCC_EA_RDREQ[8]\",\n \"&TCC_EA_RDREQ[9]\",\n \"&TCC_EA_RDREQ[10]\",\n \"&TCC_EA_RDREQ[11]\",\n \"&TCC_EA_RDREQ[12]\",\n \"&TCC_EA_RDREQ[13]\",\n \"&TCC_EA_RDREQ[14]\",\n \"&TCC_EA_RDREQ[15]\",\n \"&TCC_EA_RDREQ[16]\",\n \"&TCC_EA_RDREQ[17]\",\n \"&TCC_EA_RDREQ[18]\",\n \"&TCC_EA_RDREQ[19]\",\n \"&TCC_EA_RDREQ[20]\",\n \"&TCC_EA_RDREQ[21]\",\n \"&TCC_EA_RDREQ[22]\",\n \"&TCC_EA_RDREQ[23]\",\n \"&TCC_EA_RDREQ[24]\",\n \"&TCC_EA_RDREQ[25]\",\n \"&TCC_EA_RDREQ[26]\",\n \"&TCC_EA_RDREQ[27]\",\n \"&TCC_EA_RDREQ[28]\",\n \"&TCC_EA_RDREQ[29]\",\n \"&TCC_EA_RDREQ[30]\",\n \"&TCC_EA_RDREQ[31]\"\n ]\n }\n ]},\n null\n ]\n }\n },\n \"mean_eaWrite_lat\": {\n \"$avg\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n \"&TCC_EA_WRREQ[0]\",\n \"&TCC_EA_WRREQ[1]\",\n \"&TCC_EA_WRREQ[2]\",\n \"&TCC_EA_WRREQ[3]\",\n \"&TCC_EA_WRREQ[4]\",\n \"&TCC_EA_WRREQ[5]\",\n \"&TCC_EA_WRREQ[6]\",\n \"&TCC_EA_WRREQ[7]\",\n \"&TCC_EA_WRREQ[8]\",\n \"&TCC_EA_WRREQ[9]\",\n \"&TCC_EA_WRREQ[10]\",\n \"&TCC_EA_WRREQ[11]\",\n \"&TCC_EA_WRREQ[12]\",\n \"&TCC_EA_WRREQ[13]\",\n \"&TCC_EA_WRREQ[14]\",\n \"&TCC_EA_WRREQ[15]\",\n \"&TCC_EA_WRREQ[16]\",\n \"&TCC_EA_WRREQ[17]\",\n \"&TCC_EA_WRREQ[18]\",\n \"&TCC_EA_WRREQ[19]\",\n \"&TCC_EA_WRREQ[20]\",\n \"&TCC_EA_WRREQ[21]\",\n \"&TCC_EA_WRREQ[22]\",\n \"&TCC_EA_WRREQ[23]\",\n \"&TCC_EA_WRREQ[24]\",\n \"&TCC_EA_WRREQ[25]\",\n \"&TCC_EA_WRREQ[26]\",\n \"&TCC_EA_WRREQ[27]\",\n \"&TCC_EA_WRREQ[28]\",\n \"&TCC_EA_WRREQ[29]\",\n \"&TCC_EA_WRREQ[30]\",\n \"&TCC_EA_WRREQ[31]\"\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n \"&TCC_EA_WRREQ_LEVEL[0]\",\n \"&TCC_EA_WRREQ_LEVEL[1]\",\n \"&TCC_EA_WRREQ_LEVEL[2]\",\n \"&TCC_EA_WRREQ_LEVEL[3]\",\n \"&TCC_EA_WRREQ_LEVEL[4]\",\n \"&TCC_EA_WRREQ_LEVEL[5]\",\n \"&TCC_EA_WRREQ_LEVEL[6]\",\n \"&TCC_EA_WRREQ_LEVEL[7]\",\n \"&TCC_EA_WRREQ_LEVEL[8]\",\n \"&TCC_EA_WRREQ_LEVEL[9]\",\n \"&TCC_EA_WRREQ_LEVEL[10]\",\n \"&TCC_EA_WRREQ_LEVEL[11]\",\n \"&TCC_EA_WRREQ_LEVEL[12]\",\n \"&TCC_EA_WRREQ_LEVEL[13]\",\n \"&TCC_EA_WRREQ_LEVEL[14]\",\n \"&TCC_EA_WRREQ_LEVEL[15]\",\n \"&TCC_EA_WRREQ_LEVEL[16]\",\n \"&TCC_EA_WRREQ_LEVEL[17]\",\n \"&TCC_EA_WRREQ_LEVEL[18]\",\n \"&TCC_EA_WRREQ_LEVEL[19]\",\n \"&TCC_EA_WRREQ_LEVEL[20]\",\n \"&TCC_EA_WRREQ_LEVEL[21]\",\n \"&TCC_EA_WRREQ_LEVEL[22]\",\n \"&TCC_EA_WRREQ_LEVEL[23]\",\n \"&TCC_EA_WRREQ_LEVEL[24]\",\n \"&TCC_EA_WRREQ_LEVEL[25]\",\n \"&TCC_EA_WRREQ_LEVEL[26]\",\n \"&TCC_EA_WRREQ_LEVEL[27]\",\n \"&TCC_EA_WRREQ_LEVEL[28]\",\n \"&TCC_EA_WRREQ_LEVEL[29]\",\n \"&TCC_EA_WRREQ_LEVEL[30]\",\n \"&TCC_EA_WRREQ_LEVEL[31]\"\n ]\n },\n {\n \"$add\":[\n \"&TCC_EA_WRREQ[0]\",\n \"&TCC_EA_WRREQ[1]\",\n \"&TCC_EA_WRREQ[2]\",\n \"&TCC_EA_WRREQ[3]\",\n \"&TCC_EA_WRREQ[4]\",\n \"&TCC_EA_WRREQ[5]\",\n \"&TCC_EA_WRREQ[6]\",\n \"&TCC_EA_WRREQ[7]\",\n \"&TCC_EA_WRREQ[8]\",\n \"&TCC_EA_WRREQ[9]\",\n \"&TCC_EA_WRREQ[10]\",\n \"&TCC_EA_WRREQ[11]\",\n \"&TCC_EA_WRREQ[12]\",\n \"&TCC_EA_WRREQ[13]\",\n \"&TCC_EA_WRREQ[14]\",\n \"&TCC_EA_WRREQ[15]\",\n \"&TCC_EA_WRREQ[16]\",\n \"&TCC_EA_WRREQ[17]\",\n \"&TCC_EA_WRREQ[18]\",\n \"&TCC_EA_WRREQ[19]\",\n \"&TCC_EA_WRREQ[20]\",\n \"&TCC_EA_WRREQ[21]\",\n \"&TCC_EA_WRREQ[22]\",\n \"&TCC_EA_WRREQ[23]\",\n \"&TCC_EA_WRREQ[24]\",\n \"&TCC_EA_WRREQ[25]\",\n \"&TCC_EA_WRREQ[26]\",\n \"&TCC_EA_WRREQ[27]\",\n \"&TCC_EA_WRREQ[28]\",\n \"&TCC_EA_WRREQ[29]\",\n \"&TCC_EA_WRREQ[30]\",\n \"&TCC_EA_WRREQ[31]\"\n ]\n }\n ]},\n null\n ]\n }\n },\n \"min_eaWrite_lat\": {\n \"$min\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n \"&TCC_EA_WRREQ[0]\",\n \"&TCC_EA_WRREQ[1]\",\n \"&TCC_EA_WRREQ[2]\",\n \"&TCC_EA_WRREQ[3]\",\n \"&TCC_EA_WRREQ[4]\",\n \"&TCC_EA_WRREQ[5]\",\n \"&TCC_EA_WRREQ[6]\",\n \"&TCC_EA_WRREQ[7]\",\n \"&TCC_EA_WRREQ[8]\",\n \"&TCC_EA_WRREQ[9]\",\n \"&TCC_EA_WRREQ[10]\",\n \"&TCC_EA_WRREQ[11]\",\n \"&TCC_EA_WRREQ[12]\",\n \"&TCC_EA_WRREQ[13]\",\n \"&TCC_EA_WRREQ[14]\",\n \"&TCC_EA_WRREQ[15]\",\n \"&TCC_EA_WRREQ[16]\",\n \"&TCC_EA_WRREQ[17]\",\n \"&TCC_EA_WRREQ[18]\",\n \"&TCC_EA_WRREQ[19]\",\n \"&TCC_EA_WRREQ[20]\",\n \"&TCC_EA_WRREQ[21]\",\n \"&TCC_EA_WRREQ[22]\",\n \"&TCC_EA_WRREQ[23]\",\n \"&TCC_EA_WRREQ[24]\",\n \"&TCC_EA_WRREQ[25]\",\n \"&TCC_EA_WRREQ[26]\",\n \"&TCC_EA_WRREQ[27]\",\n \"&TCC_EA_WRREQ[28]\",\n \"&TCC_EA_WRREQ[29]\",\n \"&TCC_EA_WRREQ[30]\",\n \"&TCC_EA_WRREQ[31]\"\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n \"&TCC_EA_WRREQ_LEVEL[0]\",\n \"&TCC_EA_WRREQ_LEVEL[1]\",\n \"&TCC_EA_WRREQ_LEVEL[2]\",\n \"&TCC_EA_WRREQ_LEVEL[3]\",\n \"&TCC_EA_WRREQ_LEVEL[4]\",\n \"&TCC_EA_WRREQ_LEVEL[5]\",\n \"&TCC_EA_WRREQ_LEVEL[6]\",\n \"&TCC_EA_WRREQ_LEVEL[7]\",\n \"&TCC_EA_WRREQ_LEVEL[8]\",\n \"&TCC_EA_WRREQ_LEVEL[9]\",\n \"&TCC_EA_WRREQ_LEVEL[10]\",\n \"&TCC_EA_WRREQ_LEVEL[11]\",\n \"&TCC_EA_WRREQ_LEVEL[12]\",\n \"&TCC_EA_WRREQ_LEVEL[13]\",\n \"&TCC_EA_WRREQ_LEVEL[14]\",\n \"&TCC_EA_WRREQ_LEVEL[15]\",\n \"&TCC_EA_WRREQ_LEVEL[16]\",\n \"&TCC_EA_WRREQ_LEVEL[17]\",\n \"&TCC_EA_WRREQ_LEVEL[18]\",\n \"&TCC_EA_WRREQ_LEVEL[19]\",\n \"&TCC_EA_WRREQ_LEVEL[20]\",\n \"&TCC_EA_WRREQ_LEVEL[21]\",\n \"&TCC_EA_WRREQ_LEVEL[22]\",\n \"&TCC_EA_WRREQ_LEVEL[23]\",\n \"&TCC_EA_WRREQ_LEVEL[24]\",\n \"&TCC_EA_WRREQ_LEVEL[25]\",\n \"&TCC_EA_WRREQ_LEVEL[26]\",\n \"&TCC_EA_WRREQ_LEVEL[27]\",\n \"&TCC_EA_WRREQ_LEVEL[28]\",\n \"&TCC_EA_WRREQ_LEVEL[29]\",\n \"&TCC_EA_WRREQ_LEVEL[30]\",\n \"&TCC_EA_WRREQ_LEVEL[31]\"\n ]\n },\n {\n \"$add\":[\n \"&TCC_EA_WRREQ[0]\",\n \"&TCC_EA_WRREQ[1]\",\n \"&TCC_EA_WRREQ[2]\",\n \"&TCC_EA_WRREQ[3]\",\n \"&TCC_EA_WRREQ[4]\",\n \"&TCC_EA_WRREQ[5]\",\n \"&TCC_EA_WRREQ[6]\",\n \"&TCC_EA_WRREQ[7]\",\n \"&TCC_EA_WRREQ[8]\",\n \"&TCC_EA_WRREQ[9]\",\n \"&TCC_EA_WRREQ[10]\",\n \"&TCC_EA_WRREQ[11]\",\n \"&TCC_EA_WRREQ[12]\",\n \"&TCC_EA_WRREQ[13]\",\n \"&TCC_EA_WRREQ[14]\",\n \"&TCC_EA_WRREQ[15]\",\n \"&TCC_EA_WRREQ[16]\",\n \"&TCC_EA_WRREQ[17]\",\n \"&TCC_EA_WRREQ[18]\",\n \"&TCC_EA_WRREQ[19]\",\n \"&TCC_EA_WRREQ[20]\",\n \"&TCC_EA_WRREQ[21]\",\n \"&TCC_EA_WRREQ[22]\",\n \"&TCC_EA_WRREQ[23]\",\n \"&TCC_EA_WRREQ[24]\",\n \"&TCC_EA_WRREQ[25]\",\n \"&TCC_EA_WRREQ[26]\",\n \"&TCC_EA_WRREQ[27]\",\n \"&TCC_EA_WRREQ[28]\",\n \"&TCC_EA_WRREQ[29]\",\n \"&TCC_EA_WRREQ[30]\",\n \"&TCC_EA_WRREQ[31]\"\n ]\n }\n ]},\n null\n ]\n }\n },\n \"max_eaWrite_lat\": {\n \"$max\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n \"&TCC_EA_WRREQ[0]\",\n \"&TCC_EA_WRREQ[1]\",\n \"&TCC_EA_WRREQ[2]\",\n \"&TCC_EA_WRREQ[3]\",\n \"&TCC_EA_WRREQ[4]\",\n \"&TCC_EA_WRREQ[5]\",\n \"&TCC_EA_WRREQ[6]\",\n \"&TCC_EA_WRREQ[7]\",\n \"&TCC_EA_WRREQ[8]\",\n \"&TCC_EA_WRREQ[9]\",\n \"&TCC_EA_WRREQ[10]\",\n \"&TCC_EA_WRREQ[11]\",\n \"&TCC_EA_WRREQ[12]\",\n \"&TCC_EA_WRREQ[13]\",\n \"&TCC_EA_WRREQ[14]\",\n \"&TCC_EA_WRREQ[15]\",\n \"&TCC_EA_WRREQ[16]\",\n \"&TCC_EA_WRREQ[17]\",\n \"&TCC_EA_WRREQ[18]\",\n \"&TCC_EA_WRREQ[19]\",\n \"&TCC_EA_WRREQ[20]\",\n \"&TCC_EA_WRREQ[21]\",\n \"&TCC_EA_WRREQ[22]\",\n \"&TCC_EA_WRREQ[23]\",\n \"&TCC_EA_WRREQ[24]\",\n \"&TCC_EA_WRREQ[25]\",\n \"&TCC_EA_WRREQ[26]\",\n \"&TCC_EA_WRREQ[27]\",\n \"&TCC_EA_WRREQ[28]\",\n \"&TCC_EA_WRREQ[29]\",\n \"&TCC_EA_WRREQ[30]\",\n \"&TCC_EA_WRREQ[31]\"\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n \"&TCC_EA_WRREQ_LEVEL[0]\",\n \"&TCC_EA_WRREQ_LEVEL[1]\",\n \"&TCC_EA_WRREQ_LEVEL[2]\",\n \"&TCC_EA_WRREQ_LEVEL[3]\",\n \"&TCC_EA_WRREQ_LEVEL[4]\",\n \"&TCC_EA_WRREQ_LEVEL[5]\",\n \"&TCC_EA_WRREQ_LEVEL[6]\",\n \"&TCC_EA_WRREQ_LEVEL[7]\",\n \"&TCC_EA_WRREQ_LEVEL[8]\",\n \"&TCC_EA_WRREQ_LEVEL[9]\",\n \"&TCC_EA_WRREQ_LEVEL[10]\",\n \"&TCC_EA_WRREQ_LEVEL[11]\",\n \"&TCC_EA_WRREQ_LEVEL[12]\",\n \"&TCC_EA_WRREQ_LEVEL[13]\",\n \"&TCC_EA_WRREQ_LEVEL[14]\",\n \"&TCC_EA_WRREQ_LEVEL[15]\",\n \"&TCC_EA_WRREQ_LEVEL[16]\",\n \"&TCC_EA_WRREQ_LEVEL[17]\",\n \"&TCC_EA_WRREQ_LEVEL[18]\",\n \"&TCC_EA_WRREQ_LEVEL[19]\",\n \"&TCC_EA_WRREQ_LEVEL[20]\",\n \"&TCC_EA_WRREQ_LEVEL[21]\",\n \"&TCC_EA_WRREQ_LEVEL[22]\",\n \"&TCC_EA_WRREQ_LEVEL[23]\",\n \"&TCC_EA_WRREQ_LEVEL[24]\",\n \"&TCC_EA_WRREQ_LEVEL[25]\",\n \"&TCC_EA_WRREQ_LEVEL[26]\",\n \"&TCC_EA_WRREQ_LEVEL[27]\",\n \"&TCC_EA_WRREQ_LEVEL[28]\",\n \"&TCC_EA_WRREQ_LEVEL[29]\",\n \"&TCC_EA_WRREQ_LEVEL[30]\",\n \"&TCC_EA_WRREQ_LEVEL[31]\"\n ]\n },\n {\n \"$add\":[\n \"&TCC_EA_WRREQ[0]\",\n \"&TCC_EA_WRREQ[1]\",\n \"&TCC_EA_WRREQ[2]\",\n \"&TCC_EA_WRREQ[3]\",\n \"&TCC_EA_WRREQ[4]\",\n \"&TCC_EA_WRREQ[5]\",\n \"&TCC_EA_WRREQ[6]\",\n \"&TCC_EA_WRREQ[7]\",\n \"&TCC_EA_WRREQ[8]\",\n \"&TCC_EA_WRREQ[9]\",\n \"&TCC_EA_WRREQ[10]\",\n \"&TCC_EA_WRREQ[11]\",\n \"&TCC_EA_WRREQ[12]\",\n \"&TCC_EA_WRREQ[13]\",\n \"&TCC_EA_WRREQ[14]\",\n \"&TCC_EA_WRREQ[15]\",\n \"&TCC_EA_WRREQ[16]\",\n \"&TCC_EA_WRREQ[17]\",\n \"&TCC_EA_WRREQ[18]\",\n \"&TCC_EA_WRREQ[19]\",\n \"&TCC_EA_WRREQ[20]\",\n \"&TCC_EA_WRREQ[21]\",\n \"&TCC_EA_WRREQ[22]\",\n \"&TCC_EA_WRREQ[23]\",\n \"&TCC_EA_WRREQ[24]\",\n \"&TCC_EA_WRREQ[25]\",\n \"&TCC_EA_WRREQ[26]\",\n \"&TCC_EA_WRREQ[27]\",\n \"&TCC_EA_WRREQ[28]\",\n \"&TCC_EA_WRREQ[29]\",\n \"&TCC_EA_WRREQ[30]\",\n \"&TCC_EA_WRREQ[31]\"\n ]\n }\n ]},\n null\n ]\n }\n },\n \"stdDev_eaWrite_lat\": {\n \"$stdDevPop\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n \"&TCC_EA_WRREQ[0]\",\n \"&TCC_EA_WRREQ[1]\",\n \"&TCC_EA_WRREQ[2]\",\n \"&TCC_EA_WRREQ[3]\",\n \"&TCC_EA_WRREQ[4]\",\n \"&TCC_EA_WRREQ[5]\",\n \"&TCC_EA_WRREQ[6]\",\n \"&TCC_EA_WRREQ[7]\",\n \"&TCC_EA_WRREQ[8]\",\n \"&TCC_EA_WRREQ[9]\",\n \"&TCC_EA_WRREQ[10]\",\n \"&TCC_EA_WRREQ[11]\",\n \"&TCC_EA_WRREQ[12]\",\n \"&TCC_EA_WRREQ[13]\",\n \"&TCC_EA_WRREQ[14]\",\n \"&TCC_EA_WRREQ[15]\",\n \"&TCC_EA_WRREQ[16]\",\n \"&TCC_EA_WRREQ[17]\",\n \"&TCC_EA_WRREQ[18]\",\n \"&TCC_EA_WRREQ[19]\",\n \"&TCC_EA_WRREQ[20]\",\n \"&TCC_EA_WRREQ[21]\",\n \"&TCC_EA_WRREQ[22]\",\n \"&TCC_EA_WRREQ[23]\",\n \"&TCC_EA_WRREQ[24]\",\n \"&TCC_EA_WRREQ[25]\",\n \"&TCC_EA_WRREQ[26]\",\n \"&TCC_EA_WRREQ[27]\",\n \"&TCC_EA_WRREQ[28]\",\n \"&TCC_EA_WRREQ[29]\",\n \"&TCC_EA_WRREQ[30]\",\n \"&TCC_EA_WRREQ[31]\"\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n \"&TCC_EA_WRREQ_LEVEL[0]\",\n \"&TCC_EA_WRREQ_LEVEL[1]\",\n \"&TCC_EA_WRREQ_LEVEL[2]\",\n \"&TCC_EA_WRREQ_LEVEL[3]\",\n \"&TCC_EA_WRREQ_LEVEL[4]\",\n \"&TCC_EA_WRREQ_LEVEL[5]\",\n \"&TCC_EA_WRREQ_LEVEL[6]\",\n \"&TCC_EA_WRREQ_LEVEL[7]\",\n \"&TCC_EA_WRREQ_LEVEL[8]\",\n \"&TCC_EA_WRREQ_LEVEL[9]\",\n \"&TCC_EA_WRREQ_LEVEL[10]\",\n \"&TCC_EA_WRREQ_LEVEL[11]\",\n \"&TCC_EA_WRREQ_LEVEL[12]\",\n \"&TCC_EA_WRREQ_LEVEL[13]\",\n \"&TCC_EA_WRREQ_LEVEL[14]\",\n \"&TCC_EA_WRREQ_LEVEL[15]\",\n \"&TCC_EA_WRREQ_LEVEL[16]\",\n \"&TCC_EA_WRREQ_LEVEL[17]\",\n \"&TCC_EA_WRREQ_LEVEL[18]\",\n \"&TCC_EA_WRREQ_LEVEL[19]\",\n \"&TCC_EA_WRREQ_LEVEL[20]\",\n \"&TCC_EA_WRREQ_LEVEL[21]\",\n \"&TCC_EA_WRREQ_LEVEL[22]\",\n \"&TCC_EA_WRREQ_LEVEL[23]\",\n \"&TCC_EA_WRREQ_LEVEL[24]\",\n \"&TCC_EA_WRREQ_LEVEL[25]\",\n \"&TCC_EA_WRREQ_LEVEL[26]\",\n \"&TCC_EA_WRREQ_LEVEL[27]\",\n \"&TCC_EA_WRREQ_LEVEL[28]\",\n \"&TCC_EA_WRREQ_LEVEL[29]\",\n \"&TCC_EA_WRREQ_LEVEL[30]\",\n \"&TCC_EA_WRREQ_LEVEL[31]\"\n ]\n },\n {\n \"$add\":[\n \"&TCC_EA_WRREQ[0]\",\n \"&TCC_EA_WRREQ[1]\",\n \"&TCC_EA_WRREQ[2]\",\n \"&TCC_EA_WRREQ[3]\",\n \"&TCC_EA_WRREQ[4]\",\n \"&TCC_EA_WRREQ[5]\",\n \"&TCC_EA_WRREQ[6]\",\n \"&TCC_EA_WRREQ[7]\",\n \"&TCC_EA_WRREQ[8]\",\n \"&TCC_EA_WRREQ[9]\",\n \"&TCC_EA_WRREQ[10]\",\n \"&TCC_EA_WRREQ[11]\",\n \"&TCC_EA_WRREQ[12]\",\n \"&TCC_EA_WRREQ[13]\",\n \"&TCC_EA_WRREQ[14]\",\n \"&TCC_EA_WRREQ[15]\",\n \"&TCC_EA_WRREQ[16]\",\n \"&TCC_EA_WRREQ[17]\",\n \"&TCC_EA_WRREQ[18]\",\n \"&TCC_EA_WRREQ[19]\",\n \"&TCC_EA_WRREQ[20]\",\n \"&TCC_EA_WRREQ[21]\",\n \"&TCC_EA_WRREQ[22]\",\n \"&TCC_EA_WRREQ[23]\",\n \"&TCC_EA_WRREQ[24]\",\n \"&TCC_EA_WRREQ[25]\",\n \"&TCC_EA_WRREQ[26]\",\n \"&TCC_EA_WRREQ[27]\",\n \"&TCC_EA_WRREQ[28]\",\n \"&TCC_EA_WRREQ[29]\",\n \"&TCC_EA_WRREQ[30]\",\n \"&TCC_EA_WRREQ[31]\"\n ]\n }\n ]},\n null\n ]\n }\n },\n \"mean_eaAtomic_lat\": {\n \"$avg\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n \"&TCC_EA_ATOMIC[0]\",\n \"&TCC_EA_ATOMIC[1]\",\n \"&TCC_EA_ATOMIC[2]\",\n \"&TCC_EA_ATOMIC[3]\",\n \"&TCC_EA_ATOMIC[4]\",\n \"&TCC_EA_ATOMIC[5]\",\n \"&TCC_EA_ATOMIC[6]\",\n \"&TCC_EA_ATOMIC[7]\",\n \"&TCC_EA_ATOMIC[8]\",\n \"&TCC_EA_ATOMIC[9]\",\n \"&TCC_EA_ATOMIC[10]\",\n \"&TCC_EA_ATOMIC[11]\",\n \"&TCC_EA_ATOMIC[12]\",\n \"&TCC_EA_ATOMIC[13]\",\n \"&TCC_EA_ATOMIC[14]\",\n \"&TCC_EA_ATOMIC[15]\",\n \"&TCC_EA_ATOMIC[16]\",\n \"&TCC_EA_ATOMIC[17]\",\n \"&TCC_EA_ATOMIC[18]\",\n \"&TCC_EA_ATOMIC[19]\",\n \"&TCC_EA_ATOMIC[20]\",\n \"&TCC_EA_ATOMIC[21]\",\n \"&TCC_EA_ATOMIC[22]\",\n \"&TCC_EA_ATOMIC[23]\",\n \"&TCC_EA_ATOMIC[24]\",\n \"&TCC_EA_ATOMIC[25]\",\n \"&TCC_EA_ATOMIC[26]\",\n \"&TCC_EA_ATOMIC[27]\",\n \"&TCC_EA_ATOMIC[28]\",\n \"&TCC_EA_ATOMIC[29]\",\n \"&TCC_EA_ATOMIC[30]\",\n \"&TCC_EA_ATOMIC[31]\"\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n \"&TCC_EA_ATOMIC_LEVEL[0]\",\n \"&TCC_EA_ATOMIC_LEVEL[1]\",\n \"&TCC_EA_ATOMIC_LEVEL[2]\",\n \"&TCC_EA_ATOMIC_LEVEL[3]\",\n \"&TCC_EA_ATOMIC_LEVEL[4]\",\n \"&TCC_EA_ATOMIC_LEVEL[5]\",\n \"&TCC_EA_ATOMIC_LEVEL[6]\",\n \"&TCC_EA_ATOMIC_LEVEL[7]\",\n \"&TCC_EA_ATOMIC_LEVEL[8]\",\n \"&TCC_EA_ATOMIC_LEVEL[9]\",\n \"&TCC_EA_ATOMIC_LEVEL[10]\",\n \"&TCC_EA_ATOMIC_LEVEL[11]\",\n \"&TCC_EA_ATOMIC_LEVEL[12]\",\n \"&TCC_EA_ATOMIC_LEVEL[13]\",\n \"&TCC_EA_ATOMIC_LEVEL[14]\",\n \"&TCC_EA_ATOMIC_LEVEL[15]\",\n \"&TCC_EA_ATOMIC_LEVEL[16]\",\n \"&TCC_EA_ATOMIC_LEVEL[17]\",\n \"&TCC_EA_ATOMIC_LEVEL[18]\",\n \"&TCC_EA_ATOMIC_LEVEL[19]\",\n \"&TCC_EA_ATOMIC_LEVEL[20]\",\n \"&TCC_EA_ATOMIC_LEVEL[21]\",\n \"&TCC_EA_ATOMIC_LEVEL[22]\",\n \"&TCC_EA_ATOMIC_LEVEL[23]\",\n \"&TCC_EA_ATOMIC_LEVEL[24]\",\n \"&TCC_EA_ATOMIC_LEVEL[25]\",\n \"&TCC_EA_ATOMIC_LEVEL[26]\",\n \"&TCC_EA_ATOMIC_LEVEL[27]\",\n \"&TCC_EA_ATOMIC_LEVEL[28]\",\n \"&TCC_EA_ATOMIC_LEVEL[29]\",\n \"&TCC_EA_ATOMIC_LEVEL[30]\",\n \"&TCC_EA_ATOMIC_LEVEL[31]\"\n ]\n },\n {\n \"$add\":[\n \"&TCC_EA_ATOMIC[0]\",\n \"&TCC_EA_ATOMIC[1]\",\n \"&TCC_EA_ATOMIC[2]\",\n \"&TCC_EA_ATOMIC[3]\",\n \"&TCC_EA_ATOMIC[4]\",\n \"&TCC_EA_ATOMIC[5]\",\n \"&TCC_EA_ATOMIC[6]\",\n \"&TCC_EA_ATOMIC[7]\",\n \"&TCC_EA_ATOMIC[8]\",\n \"&TCC_EA_ATOMIC[9]\",\n \"&TCC_EA_ATOMIC[10]\",\n \"&TCC_EA_ATOMIC[11]\",\n \"&TCC_EA_ATOMIC[12]\",\n \"&TCC_EA_ATOMIC[13]\",\n \"&TCC_EA_ATOMIC[14]\",\n \"&TCC_EA_ATOMIC[15]\",\n \"&TCC_EA_ATOMIC[16]\",\n \"&TCC_EA_ATOMIC[17]\",\n \"&TCC_EA_ATOMIC[18]\",\n \"&TCC_EA_ATOMIC[19]\",\n \"&TCC_EA_ATOMIC[20]\",\n \"&TCC_EA_ATOMIC[21]\",\n \"&TCC_EA_ATOMIC[22]\",\n \"&TCC_EA_ATOMIC[23]\",\n \"&TCC_EA_ATOMIC[24]\",\n \"&TCC_EA_ATOMIC[25]\",\n \"&TCC_EA_ATOMIC[26]\",\n \"&TCC_EA_ATOMIC[27]\",\n \"&TCC_EA_ATOMIC[28]\",\n \"&TCC_EA_ATOMIC[29]\",\n \"&TCC_EA_ATOMIC[30]\",\n \"&TCC_EA_ATOMIC[31]\"\n ]\n }\n ]},\n null\n ]\n }\n },\n \"min_eaAtomic_lat\": {\n \"$min\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n \"&TCC_EA_ATOMIC[0]\",\n \"&TCC_EA_ATOMIC[1]\",\n \"&TCC_EA_ATOMIC[2]\",\n \"&TCC_EA_ATOMIC[3]\",\n \"&TCC_EA_ATOMIC[4]\",\n \"&TCC_EA_ATOMIC[5]\",\n \"&TCC_EA_ATOMIC[6]\",\n \"&TCC_EA_ATOMIC[7]\",\n \"&TCC_EA_ATOMIC[8]\",\n \"&TCC_EA_ATOMIC[9]\",\n \"&TCC_EA_ATOMIC[10]\",\n \"&TCC_EA_ATOMIC[11]\",\n \"&TCC_EA_ATOMIC[12]\",\n \"&TCC_EA_ATOMIC[13]\",\n \"&TCC_EA_ATOMIC[14]\",\n \"&TCC_EA_ATOMIC[15]\",\n \"&TCC_EA_ATOMIC[16]\",\n \"&TCC_EA_ATOMIC[17]\",\n \"&TCC_EA_ATOMIC[18]\",\n \"&TCC_EA_ATOMIC[19]\",\n \"&TCC_EA_ATOMIC[20]\",\n \"&TCC_EA_ATOMIC[21]\",\n \"&TCC_EA_ATOMIC[22]\",\n \"&TCC_EA_ATOMIC[23]\",\n \"&TCC_EA_ATOMIC[24]\",\n \"&TCC_EA_ATOMIC[25]\",\n \"&TCC_EA_ATOMIC[26]\",\n \"&TCC_EA_ATOMIC[27]\",\n \"&TCC_EA_ATOMIC[28]\",\n \"&TCC_EA_ATOMIC[29]\",\n \"&TCC_EA_ATOMIC[30]\",\n \"&TCC_EA_ATOMIC[31]\"\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n \"&TCC_EA_ATOMIC_LEVEL[0]\",\n \"&TCC_EA_ATOMIC_LEVEL[1]\",\n \"&TCC_EA_ATOMIC_LEVEL[2]\",\n \"&TCC_EA_ATOMIC_LEVEL[3]\",\n \"&TCC_EA_ATOMIC_LEVEL[4]\",\n \"&TCC_EA_ATOMIC_LEVEL[5]\",\n \"&TCC_EA_ATOMIC_LEVEL[6]\",\n \"&TCC_EA_ATOMIC_LEVEL[7]\",\n \"&TCC_EA_ATOMIC_LEVEL[8]\",\n \"&TCC_EA_ATOMIC_LEVEL[9]\",\n \"&TCC_EA_ATOMIC_LEVEL[10]\",\n \"&TCC_EA_ATOMIC_LEVEL[11]\",\n \"&TCC_EA_ATOMIC_LEVEL[12]\",\n \"&TCC_EA_ATOMIC_LEVEL[13]\",\n \"&TCC_EA_ATOMIC_LEVEL[14]\",\n \"&TCC_EA_ATOMIC_LEVEL[15]\",\n \"&TCC_EA_ATOMIC_LEVEL[16]\",\n \"&TCC_EA_ATOMIC_LEVEL[17]\",\n \"&TCC_EA_ATOMIC_LEVEL[18]\",\n \"&TCC_EA_ATOMIC_LEVEL[19]\",\n \"&TCC_EA_ATOMIC_LEVEL[20]\",\n \"&TCC_EA_ATOMIC_LEVEL[21]\",\n \"&TCC_EA_ATOMIC_LEVEL[22]\",\n \"&TCC_EA_ATOMIC_LEVEL[23]\",\n \"&TCC_EA_ATOMIC_LEVEL[24]\",\n \"&TCC_EA_ATOMIC_LEVEL[25]\",\n \"&TCC_EA_ATOMIC_LEVEL[26]\",\n \"&TCC_EA_ATOMIC_LEVEL[27]\",\n \"&TCC_EA_ATOMIC_LEVEL[28]\",\n \"&TCC_EA_ATOMIC_LEVEL[29]\",\n \"&TCC_EA_ATOMIC_LEVEL[30]\",\n \"&TCC_EA_ATOMIC_LEVEL[31]\"\n ]\n },\n {\n \"$add\":[\n \"&TCC_EA_ATOMIC[0]\",\n \"&TCC_EA_ATOMIC[1]\",\n \"&TCC_EA_ATOMIC[2]\",\n \"&TCC_EA_ATOMIC[3]\",\n \"&TCC_EA_ATOMIC[4]\",\n \"&TCC_EA_ATOMIC[5]\",\n \"&TCC_EA_ATOMIC[6]\",\n \"&TCC_EA_ATOMIC[7]\",\n \"&TCC_EA_ATOMIC[8]\",\n \"&TCC_EA_ATOMIC[9]\",\n \"&TCC_EA_ATOMIC[10]\",\n \"&TCC_EA_ATOMIC[11]\",\n \"&TCC_EA_ATOMIC[12]\",\n \"&TCC_EA_ATOMIC[13]\",\n \"&TCC_EA_ATOMIC[14]\",\n \"&TCC_EA_ATOMIC[15]\",\n \"&TCC_EA_ATOMIC[16]\",\n \"&TCC_EA_ATOMIC[17]\",\n \"&TCC_EA_ATOMIC[18]\",\n \"&TCC_EA_ATOMIC[19]\",\n \"&TCC_EA_ATOMIC[20]\",\n \"&TCC_EA_ATOMIC[21]\",\n \"&TCC_EA_ATOMIC[22]\",\n \"&TCC_EA_ATOMIC[23]\",\n \"&TCC_EA_ATOMIC[24]\",\n \"&TCC_EA_ATOMIC[25]\",\n \"&TCC_EA_ATOMIC[26]\",\n \"&TCC_EA_ATOMIC[27]\",\n \"&TCC_EA_ATOMIC[28]\",\n \"&TCC_EA_ATOMIC[29]\",\n \"&TCC_EA_ATOMIC[30]\",\n \"&TCC_EA_ATOMIC[31]\"\n ]\n }\n ]},\n null\n ]\n }\n },\n \"max_eaAtomic_lat\": {\n \"$max\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n \"&TCC_EA_ATOMIC[0]\",\n \"&TCC_EA_ATOMIC[1]\",\n \"&TCC_EA_ATOMIC[2]\",\n \"&TCC_EA_ATOMIC[3]\",\n \"&TCC_EA_ATOMIC[4]\",\n \"&TCC_EA_ATOMIC[5]\",\n \"&TCC_EA_ATOMIC[6]\",\n \"&TCC_EA_ATOMIC[7]\",\n \"&TCC_EA_ATOMIC[8]\",\n \"&TCC_EA_ATOMIC[9]\",\n \"&TCC_EA_ATOMIC[10]\",\n \"&TCC_EA_ATOMIC[11]\",\n \"&TCC_EA_ATOMIC[12]\",\n \"&TCC_EA_ATOMIC[13]\",\n \"&TCC_EA_ATOMIC[14]\",\n \"&TCC_EA_ATOMIC[15]\",\n \"&TCC_EA_ATOMIC[16]\",\n \"&TCC_EA_ATOMIC[17]\",\n \"&TCC_EA_ATOMIC[18]\",\n \"&TCC_EA_ATOMIC[19]\",\n \"&TCC_EA_ATOMIC[20]\",\n \"&TCC_EA_ATOMIC[21]\",\n \"&TCC_EA_ATOMIC[22]\",\n \"&TCC_EA_ATOMIC[23]\",\n \"&TCC_EA_ATOMIC[24]\",\n \"&TCC_EA_ATOMIC[25]\",\n \"&TCC_EA_ATOMIC[26]\",\n \"&TCC_EA_ATOMIC[27]\",\n \"&TCC_EA_ATOMIC[28]\",\n \"&TCC_EA_ATOMIC[29]\",\n \"&TCC_EA_ATOMIC[30]\",\n \"&TCC_EA_ATOMIC[31]\"\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n \"&TCC_EA_ATOMIC_LEVEL[0]\",\n \"&TCC_EA_ATOMIC_LEVEL[1]\",\n \"&TCC_EA_ATOMIC_LEVEL[2]\",\n \"&TCC_EA_ATOMIC_LEVEL[3]\",\n \"&TCC_EA_ATOMIC_LEVEL[4]\",\n \"&TCC_EA_ATOMIC_LEVEL[5]\",\n \"&TCC_EA_ATOMIC_LEVEL[6]\",\n \"&TCC_EA_ATOMIC_LEVEL[7]\",\n \"&TCC_EA_ATOMIC_LEVEL[8]\",\n \"&TCC_EA_ATOMIC_LEVEL[9]\",\n \"&TCC_EA_ATOMIC_LEVEL[10]\",\n \"&TCC_EA_ATOMIC_LEVEL[11]\",\n \"&TCC_EA_ATOMIC_LEVEL[12]\",\n \"&TCC_EA_ATOMIC_LEVEL[13]\",\n \"&TCC_EA_ATOMIC_LEVEL[14]\",\n \"&TCC_EA_ATOMIC_LEVEL[15]\",\n \"&TCC_EA_ATOMIC_LEVEL[16]\",\n \"&TCC_EA_ATOMIC_LEVEL[17]\",\n \"&TCC_EA_ATOMIC_LEVEL[18]\",\n \"&TCC_EA_ATOMIC_LEVEL[19]\",\n \"&TCC_EA_ATOMIC_LEVEL[20]\",\n \"&TCC_EA_ATOMIC_LEVEL[21]\",\n \"&TCC_EA_ATOMIC_LEVEL[22]\",\n \"&TCC_EA_ATOMIC_LEVEL[23]\",\n \"&TCC_EA_ATOMIC_LEVEL[24]\",\n \"&TCC_EA_ATOMIC_LEVEL[25]\",\n \"&TCC_EA_ATOMIC_LEVEL[26]\",\n \"&TCC_EA_ATOMIC_LEVEL[27]\",\n \"&TCC_EA_ATOMIC_LEVEL[28]\",\n \"&TCC_EA_ATOMIC_LEVEL[29]\",\n \"&TCC_EA_ATOMIC_LEVEL[30]\",\n \"&TCC_EA_ATOMIC_LEVEL[31]\"\n ]\n },\n {\n \"$add\":[\n \"&TCC_EA_ATOMIC[0]\",\n \"&TCC_EA_ATOMIC[1]\",\n \"&TCC_EA_ATOMIC[2]\",\n \"&TCC_EA_ATOMIC[3]\",\n \"&TCC_EA_ATOMIC[4]\",\n \"&TCC_EA_ATOMIC[5]\",\n \"&TCC_EA_ATOMIC[6]\",\n \"&TCC_EA_ATOMIC[7]\",\n \"&TCC_EA_ATOMIC[8]\",\n \"&TCC_EA_ATOMIC[9]\",\n \"&TCC_EA_ATOMIC[10]\",\n \"&TCC_EA_ATOMIC[11]\",\n \"&TCC_EA_ATOMIC[12]\",\n \"&TCC_EA_ATOMIC[13]\",\n \"&TCC_EA_ATOMIC[14]\",\n \"&TCC_EA_ATOMIC[15]\",\n \"&TCC_EA_ATOMIC[16]\",\n \"&TCC_EA_ATOMIC[17]\",\n \"&TCC_EA_ATOMIC[18]\",\n \"&TCC_EA_ATOMIC[19]\",\n \"&TCC_EA_ATOMIC[20]\",\n \"&TCC_EA_ATOMIC[21]\",\n \"&TCC_EA_ATOMIC[22]\",\n \"&TCC_EA_ATOMIC[23]\",\n \"&TCC_EA_ATOMIC[24]\",\n \"&TCC_EA_ATOMIC[25]\",\n \"&TCC_EA_ATOMIC[26]\",\n \"&TCC_EA_ATOMIC[27]\",\n \"&TCC_EA_ATOMIC[28]\",\n \"&TCC_EA_ATOMIC[29]\",\n \"&TCC_EA_ATOMIC[30]\",\n \"&TCC_EA_ATOMIC[31]\"\n ]\n }\n ]},\n null\n ]\n }\n },\n \"stdDev_eaAtomic_lat\": {\n \"$stdDevPop\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n \"&TCC_EA_ATOMIC[0]\",\n \"&TCC_EA_ATOMIC[1]\",\n \"&TCC_EA_ATOMIC[2]\",\n \"&TCC_EA_ATOMIC[3]\",\n \"&TCC_EA_ATOMIC[4]\",\n \"&TCC_EA_ATOMIC[5]\",\n \"&TCC_EA_ATOMIC[6]\",\n \"&TCC_EA_ATOMIC[7]\",\n \"&TCC_EA_ATOMIC[8]\",\n \"&TCC_EA_ATOMIC[9]\",\n \"&TCC_EA_ATOMIC[10]\",\n \"&TCC_EA_ATOMIC[11]\",\n \"&TCC_EA_ATOMIC[12]\",\n \"&TCC_EA_ATOMIC[13]\",\n \"&TCC_EA_ATOMIC[14]\",\n \"&TCC_EA_ATOMIC[15]\",\n \"&TCC_EA_ATOMIC[16]\",\n \"&TCC_EA_ATOMIC[17]\",\n \"&TCC_EA_ATOMIC[18]\",\n \"&TCC_EA_ATOMIC[19]\",\n \"&TCC_EA_ATOMIC[20]\",\n \"&TCC_EA_ATOMIC[21]\",\n \"&TCC_EA_ATOMIC[22]\",\n \"&TCC_EA_ATOMIC[23]\",\n \"&TCC_EA_ATOMIC[24]\",\n \"&TCC_EA_ATOMIC[25]\",\n \"&TCC_EA_ATOMIC[26]\",\n \"&TCC_EA_ATOMIC[27]\",\n \"&TCC_EA_ATOMIC[28]\",\n \"&TCC_EA_ATOMIC[29]\",\n \"&TCC_EA_ATOMIC[30]\",\n \"&TCC_EA_ATOMIC[31]\"\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n \"&TCC_EA_ATOMIC_LEVEL[0]\",\n \"&TCC_EA_ATOMIC_LEVEL[1]\",\n \"&TCC_EA_ATOMIC_LEVEL[2]\",\n \"&TCC_EA_ATOMIC_LEVEL[3]\",\n \"&TCC_EA_ATOMIC_LEVEL[4]\",\n \"&TCC_EA_ATOMIC_LEVEL[5]\",\n \"&TCC_EA_ATOMIC_LEVEL[6]\",\n \"&TCC_EA_ATOMIC_LEVEL[7]\",\n \"&TCC_EA_ATOMIC_LEVEL[8]\",\n \"&TCC_EA_ATOMIC_LEVEL[9]\",\n \"&TCC_EA_ATOMIC_LEVEL[10]\",\n \"&TCC_EA_ATOMIC_LEVEL[11]\",\n \"&TCC_EA_ATOMIC_LEVEL[12]\",\n \"&TCC_EA_ATOMIC_LEVEL[13]\",\n \"&TCC_EA_ATOMIC_LEVEL[14]\",\n \"&TCC_EA_ATOMIC_LEVEL[15]\",\n \"&TCC_EA_ATOMIC_LEVEL[16]\",\n \"&TCC_EA_ATOMIC_LEVEL[17]\",\n \"&TCC_EA_ATOMIC_LEVEL[18]\",\n \"&TCC_EA_ATOMIC_LEVEL[19]\",\n \"&TCC_EA_ATOMIC_LEVEL[20]\",\n \"&TCC_EA_ATOMIC_LEVEL[21]\",\n \"&TCC_EA_ATOMIC_LEVEL[22]\",\n \"&TCC_EA_ATOMIC_LEVEL[23]\",\n \"&TCC_EA_ATOMIC_LEVEL[24]\",\n \"&TCC_EA_ATOMIC_LEVEL[25]\",\n \"&TCC_EA_ATOMIC_LEVEL[26]\",\n \"&TCC_EA_ATOMIC_LEVEL[27]\",\n \"&TCC_EA_ATOMIC_LEVEL[28]\",\n \"&TCC_EA_ATOMIC_LEVEL[29]\",\n \"&TCC_EA_ATOMIC_LEVEL[30]\",\n \"&TCC_EA_ATOMIC_LEVEL[31]\"\n ]\n },\n {\n \"$add\":[\n \"&TCC_EA_ATOMIC[0]\",\n \"&TCC_EA_ATOMIC[1]\",\n \"&TCC_EA_ATOMIC[2]\",\n \"&TCC_EA_ATOMIC[3]\",\n \"&TCC_EA_ATOMIC[4]\",\n \"&TCC_EA_ATOMIC[5]\",\n \"&TCC_EA_ATOMIC[6]\",\n \"&TCC_EA_ATOMIC[7]\",\n \"&TCC_EA_ATOMIC[8]\",\n \"&TCC_EA_ATOMIC[9]\",\n \"&TCC_EA_ATOMIC[10]\",\n \"&TCC_EA_ATOMIC[11]\",\n \"&TCC_EA_ATOMIC[12]\",\n \"&TCC_EA_ATOMIC[13]\",\n \"&TCC_EA_ATOMIC[14]\",\n \"&TCC_EA_ATOMIC[15]\",\n \"&TCC_EA_ATOMIC[16]\",\n \"&TCC_EA_ATOMIC[17]\",\n \"&TCC_EA_ATOMIC[18]\",\n \"&TCC_EA_ATOMIC[19]\",\n \"&TCC_EA_ATOMIC[20]\",\n \"&TCC_EA_ATOMIC[21]\",\n \"&TCC_EA_ATOMIC[22]\",\n \"&TCC_EA_ATOMIC[23]\",\n \"&TCC_EA_ATOMIC[24]\",\n \"&TCC_EA_ATOMIC[25]\",\n \"&TCC_EA_ATOMIC[26]\",\n \"&TCC_EA_ATOMIC[27]\",\n \"&TCC_EA_ATOMIC[28]\",\n \"&TCC_EA_ATOMIC[29]\",\n \"&TCC_EA_ATOMIC[30]\",\n \"&TCC_EA_ATOMIC[31]\"\n ]\n }\n ]},\n null\n ]\n }\n },\n \"mean_ea_read_stall_io_credit\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_ea_read_stall_io_credit\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_ea_read_stall_io_credit\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_ea_read_stall_io_credit\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_ea_read_stall_gmi_credit\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_ea_read_stall_gmi_credit\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_ea_read_stall_gmi_credit\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_ea_read_stall_gmi_credit\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_ea_read_stall_dram_credit\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_ea_read_stall_dram_credit\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_ea_read_stall_dram_credit\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_ea_read_stall_dram_credit\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_ea_write_stall_io_credit\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_ea_write_stall_io_credit\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_ea_write_stall_io_credit\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_ea_write_stall_io_credit\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_ea_write_stall_gmi_credit\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_ea_write_stall_gmi_credit\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_ea_write_stall_gmi_credit\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_ea_write_stall_gmi_credit\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_ea_write_stall_dram_credit\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_ea_write_stall_dram_credit\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_ea_write_stall_dram_credit\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_ea_write_stall_dram_credit\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_ea_write_stall_too_many\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[0]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[1]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[2]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[3]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[4]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[5]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[6]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[7]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[8]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[9]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[10]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[11]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[12]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[13]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[14]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[15]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[16]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[17]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[18]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[19]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[20]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[21]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[22]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[23]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[24]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[25]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[26]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[27]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[28]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[29]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[30]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_ea_write_stall_too_many\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[0]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[1]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[2]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[3]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[4]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[5]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[6]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[7]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[8]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[9]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[10]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[11]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[12]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[13]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[14]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[15]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[16]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[17]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[18]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[19]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[20]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[21]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[22]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[23]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[24]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[25]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[26]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[27]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[28]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[29]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[30]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_ea_write_stall_too_many\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[0]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[1]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[2]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[3]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[4]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[5]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[6]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[7]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[8]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[9]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[10]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[11]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[12]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[13]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[14]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[15]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[16]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[17]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[18]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[19]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[20]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[21]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[22]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[23]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[24]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[25]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[26]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[27]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[28]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[29]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[30]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_ea_write_stall_too_many\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[0]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[1]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[2]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[3]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[4]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[5]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[6]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[7]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[8]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[9]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[10]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[11]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[12]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[13]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[14]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[15]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[16]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[17]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[18]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[19]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[20]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[21]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[22]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[23]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[24]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[25]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[26]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[27]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[28]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[29]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[30]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"L2 Cache Hit Rate\",\n \"Mean\": \"&mean_hit_rate\",\n \"Std Dev\": \"&stdDev_hit_rate\",\n \"Min\": \"&min_hit_rate\",\n \"Max\": \"&max_hit_rate\",\n \"Units\": \"pct\"\n },\n {\n \"Metric\": \"Req\",\n \"Mean\": \"&mean_req\",\n \"Std Dev\": \"&stdDev_req\",\n \"Min\": \"&min_req\",\n \"Max\": \"&max_req\",\n \"Units\": $normUnit\n },\n {\n \"Metric\": \"L1 - L2 Read Req\",\n \"Mean\": \"&mean_read_req\",\n \"Std Dev\": \"&stdDev_read_req\",\n \"Min\": \"&min_read_req\",\n \"Max\": \"&max_read_req\",\n \"Units\": $normUnit\n },\n {\n \"Metric\": \"L1 - L2 Write Req\",\n \"Mean\": \"&mean_write_req\",\n \"Std Dev\": \"&stdDev_write_req\",\n \"Min\": \"&min_write_req\",\n \"Max\": \"&max_write_req\",\n \"Units\": $normUnit\n },\n {\n \"Metric\": \"L1 - L2 Atomic Req\",\n \"Mean\": \"&mean_atomic_req\",\n \"Std Dev\": \"&stdDev_atomic_req\",\n \"Min\": \"&min_atomic_req\",\n \"Max\": \"&max_atomic_req\",\n \"Units\": $normUnit\n },\n {\n \"Metric\": \"L2 - EA Read Req\",\n \"Mean\": \"&mean_eaRead_req\",\n \"Std Dev\": \"&stdDev_eaRead_req\",\n \"Min\": \"&min_eaRead_req\",\n \"Max\": \"&max_eaRead_req\",\n \"Units\": $normUnit\n },\n {\n \"Metric\": \"L2 - EA Write Req\", \n \"Mean\": \"&mean_eaWrite_req\",\n \"Std Dev\": \"&stdDev_eaWrite_req\",\n \"Min\": \"&min_eaWrite_req\",\n \"Max\": \"&max_eaWrite_req\",\n \"Units\": $normUnit\n },\n {\n \"Metric\": \"L2 - EA Atomic Req\",\n \"Mean\": \"&mean_eaAtomic_req\",\n \"Std Dev\": \"&stdDev_eaAtomic_req\",\n \"Min\": \"&min_eaAtomic_req\",\n \"Max\": \"&max_eaAtomic_req\",\n \"Units\": $normUnit\n },\n {\n \"Metric\": \"L2 - EA Read Lat\",\n \"Mean\": \"&mean_eaRead_lat\",\n \"Std Dev\": \"&stdDev_eaRead_lat\",\n \"Min\": \"&min_eaRead_lat\",\n \"Max\": \"&max_eaRead_lat\",\n \"Units\": \"Cycles\"\n },\n {\n \"Metric\": \"L2 - EA Write Lat\",\n \"Mean\": \"&mean_eaWrite_lat\",\n \"Std Dev\": \"&stdDev_eaWrite_lat\",\n \"Min\": \"&min_eaWrite_lat\",\n \"Max\": \"&max_eaWrite_lat\",\n \"Units\": \"Cycles\"\n },\n {\n \"Metric\": \"L2 - EA Atomic Lat\",\n \"Mean\": \"&mean_eaAtomic_lat\",\n \"Std Dev\": \"&stdDev_eaAtomic_lat\",\n \"Min\": \"&min_eaAtomic_lat\",\n \"Max\": \"&max_eaAtomic_lat\",\n \"Units\": \"Cycles\"\n },\n {\n \"Metric\": \"L2 - EA Read Stall (IO)\",\n \"Mean\": \"&mean_ea_read_stall_io_credit\",\n \"Std Dev\": \"&stdDev_ea_read_stall_io_credit\",\n \"Min\": \"&min_ea_read_stall_io_credit\",\n \"Max\": \"&max_ea_read_stall_io_credit\",\n \"Units\": {\"$concat\": [\"Cycles \", $normUnit] }\n },\n {\n \"Metric\": \"L2 - EA Read Stall (GMI)\",\n \"Mean\": \"&mean_ea_read_stall_gmi_credit\",\n \"Std Dev\": \"&stdDev_ea_read_stall_gmi_credit\",\n \"Min\": \"&min_ea_read_stall_gmi_credit\",\n \"Max\": \"&max_ea_read_stall_gmi_credit\",\n \"Units\": {\"$concat\": [\"Cycles \", $normUnit] }\n },\n {\n \"Metric\": \"L2 - EA Read Stall (DRAM)\",\n \"Mean\": \"&mean_ea_read_stall_dram_credit\",\n \"Std Dev\": \"&stdDev_ea_read_stall_dram_credit\",\n \"Min\": \"&min_ea_read_stall_dram_credit\",\n \"Max\": \"&max_ea_read_stall_dram_credit\",\n \"Units\": {\"$concat\": [\"Cycles \", $normUnit] }\n },\n {\n \"Metric\": \"L2 - EA Write Stall (IO)\",\n \"Mean\": \"&mean_ea_write_stall_io_credit\",\n \"Std Dev\": \"&stdDev_ea_write_stall_io_credit\",\n \"Min\": \"&min_ea_write_stall_io_credit\",\n \"Max\": \"&max_ea_write_stall_io_credit\",\n \"Units\": {\"$concat\": [\"Cycles \", $normUnit] }\n },\n {\n \"Metric\": \"L2 - EA Write Stall (GMI)\",\n \"Mean\": \"&mean_ea_write_stall_gmi_credit\",\n \"Std Dev\": \"&stdDev_ea_write_stall_gmi_credit\",\n \"Min\": \"&min_ea_write_stall_gmi_credit\",\n \"Max\": \"&max_ea_write_stall_gmi_credit\",\n \"Units\": {\"$concat\": [\"Cycles \", $normUnit] }\n },\n {\n \"Metric\": \"L2 - EA Write Stall (DRAM)\",\n \"Mean\": \"&mean_ea_write_stall_dram_credit\",\n \"Std Dev\": \"&stdDev_ea_write_stall_dram_credit\",\n \"Min\": \"&min_ea_write_stall_dram_credit\",\n \"Max\": \"&max_ea_write_stall_dram_credit\",\n \"Units\": {\"$concat\": [\"Cycles \", $normUnit] }\n },\n {\n \"Metric\": \"L2 - EA Write Starve\",\n \"Mean\": \"&mean_ea_write_stall_too_many\",\n \"Std Dev\": \"&stdDev_ea_write_stall_too_many\",\n \"Min\": \"&min_ea_write_stall_too_many\",\n \"Max\": \"&max_ea_write_stall_too_many\",\n \"Units\": {\"$concat\": [\"Cycles \", $normUnit] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Aggregate Stats (All 32 channels)", - "transformations": [], - "type": "table" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLimitValue": 100, - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineValue": 105, - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": true, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "light", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:850", - "Col": 1, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Hit Rate", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "description": "", - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 25 - }, - "id": 87, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 Cache Hit Rate (Percent) (Channel 0 - 15) ", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLimitValue": 100, - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineValue": 105, - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": true, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "light", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:850", - "Col": 1, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Hit Rate", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "description": "", - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 25 - }, - "id": 92, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "Cache Hit Rate % (Channel 16 - 31) ", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 80, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:565", - "Col": 3, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Read Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 33 - }, - "id": 81, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L1 - L2 Read Requests(Channel 0-15) : $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:656", - "Col": 3, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Read Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 33 - }, - "id": 82, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L1 - L 2 Read Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 80, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:697", - "Col": 4, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Write Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 41 - }, - "id": 83, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L1 - L2 Write Requests (Channel 0-15): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 0, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:750", - "Col": 4, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Write Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 41 - }, - "id": 84, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L1 - L2 Write Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLimitValue": 100, - "HighLmitLineWidth": 1, - "HighSideMargin": 0, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "100%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 80, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineValue": 105, - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": true, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:791", - "Col": 5, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "AtomicReq", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 49 - }, - "id": 85, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L1 - L2 Atomic Requests (Channel 0-15): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLimitValue": 100, - "HighLmitLineWidth": 1, - "HighSideMargin": 0, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "100%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 80, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineValue": 105, - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": true, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:791", - "Col": 5, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "AtomicReq", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 49 - }, - "id": 91, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L1 - L2 Atomic Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 6, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 57 - }, - "id": 189, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Read Requests (Channel 0 - 15) : $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:341", - "Col": 6, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 57 - }, - "id": 195, - "maxDataPoints": 10, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Read Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 7, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 65 - }, - "id": 191, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Requests (Channel 0 - 15) : $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:341", - "Col": 7, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 65 - }, - "id": 197, - "maxDataPoints": 10, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 8, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA AtomicReq", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 73 - }, - "id": 193, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Atomic Request (Channel 0 - 15): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:341", - "Col": 8, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA AtomicReq", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 73 - }, - "id": 199, - "maxDataPoints": 10, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Atomic Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupColName": "", - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 9, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Lat - cycles", - "Selected": true - } - ], - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 81 - }, - "hideTimeOverride": false, - "id": 68, - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"b0_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[0]\", \"&TCC_MISS[0]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[0]\"]}, \n { \"$add\": [\"&TCC_HIT[0]\", \"&TCC_MISS[0]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b0_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[0]\"}, \"&denom\"] } \n },\n \"b0_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[0]\"}, \"&denom\"] } \n },\n \"b0_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[0]\"}, \"&denom\"] } \n },\n \"b0_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[0]\"}, \"&denom\"] } \n },\n \"b0_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[0]\"}, \"&denom\"] }\n },\n \"b0_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[0]\"}, \"&denom\"] } \n },\n \"b0_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[0]\"}, \"&denom\"] } \n },\n\n \"b0_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[0]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[0]\", \"&TCC_EA_RDREQ[0]\"]}, null] } },\n \"b0_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[0]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[0]\", \"&TCC_EA_WRREQ[0]\"]}, null] } },\n \"b0_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[0]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[0]\", \"&TCC_EA_ATOMIC[0]\"]}, null]}},\n\n \"b0_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[0]\"}, \"&denom\"] }},\n\n \n \"b1_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[1]\", \"&TCC_MISS[1]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[1]\"]}, \n { \"$add\": [\"&TCC_HIT[1]\", \"&TCC_MISS[1]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b1_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[1]\"}, \"&denom\"] } \n },\n \"b1_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[1]\"}, \"&denom\"] } \n },\n \"b1_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[1]\"}, \"&denom\"] } \n },\n \"b1_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[1]\"}, \"&denom\"] } \n },\n \"b1_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[1]\"}, \"&denom\"] }\n },\n \"b1_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[1]\"}, \"&denom\"] } \n },\n \"b1_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[1]\"}, \"&denom\"] } \n },\n \"b1_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[1]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[1]\", \"&TCC_EA_RDREQ[1]\"]}, null] } },\n \"b1_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[1]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[1]\", \"&TCC_EA_WRREQ[1]\"]}, null] } },\n \"b1_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[1]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[1]\", \"&TCC_EA_ATOMIC[1]\"]}, null]}},\n\n \"b1_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[1]\"}, \"&denom\"] }},\n\n\n \"b2_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[2]\", \"&TCC_MISS[2]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[2]\"]}, \n { \"$add\": [\"&TCC_HIT[2]\", \"&TCC_MISS[2]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b2_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[2]\"}, \"&denom\"] }\n },\n \"b2_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[2]\"}, \"&denom\"] } \n },\n \"b2_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[2]\"}, \"&denom\"] }\n },\n \"b2_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[2]\"}, \"&denom\"] }\n },\n \"b2_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[2]\"}, \"&denom\"] }\n },\n \"b2_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[2]\"}, \"&denom\"] }\n },\n \"b2_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[2]\"}, \"&denom\"] }\n },\n \"b2_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[2]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[2]\", \"&TCC_EA_RDREQ[2]\"]}, null] } },\n \"b2_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[2]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[2]\", \"&TCC_EA_WRREQ[2]\"]}, null] } },\n \"b2_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[2]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[2]\", \"&TCC_EA_ATOMIC[2]\"]}, null]}},\n\n \"b2_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[2]\"}, \"&denom\"] }},\n\n\n \n \"b3_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[3]\", \"&TCC_MISS[3]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[3]\"]}, \n { \"$add\": [\"&TCC_HIT[3]\", \"&TCC_MISS[3]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b3_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[3]\"}, \"&denom\"] } \n },\n \"b3_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[3]\"}, \"&denom\"] } \n },\n \"b3_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[3]\"}, \"&denom\"] }\n },\n \"b3_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[3]\"}, \"&denom\"] }\n },\n \"b3_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[3]\"}, \"&denom\"] }\n },\n \"b3_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[3]\"}, \"&denom\"] }\n },\n \"b3_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[3]\"}, \"&denom\"] } \n },\n \"b3_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[3]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[3]\", \"&TCC_EA_RDREQ[3]\"]}, null] } },\n \"b3_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[3]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[3]\", \"&TCC_EA_WRREQ[3]\"]}, null] } },\n \"b3_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[3]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[3]\", \"&TCC_EA_ATOMIC[3]\"]}, null]}},\n\n \"b3_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[3]\"}, \"&denom\"] }},\n\n\n \n \"b4_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[4]\", \"&TCC_MISS[4]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[4]\"]}, \n { \"$add\": [\"&TCC_HIT[4]\", \"&TCC_MISS[4]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b4_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[4]\"}, \"&denom\"] } \n },\n \"b4_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[4]\"}, \"&denom\"] } \n },\n \"b4_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[4]\"}, \"&denom\"] }\n },\n \"b4_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[4]\"}, \"&denom\"] } \n },\n \"b4_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[4]\"}, \"&denom\"] } \n },\n \"b4_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[4]\"}, \"&denom\"] } \n },\n \"b4_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[4]\"}, \"&denom\"] } \n },\n \"b4_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[4]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[4]\", \"&TCC_EA_RDREQ[4]\"]}, null] } },\n \"b4_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[4]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[4]\", \"&TCC_EA_WRREQ[4]\"]}, null] } },\n \"b4_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[4]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[4]\", \"&TCC_EA_ATOMIC[4]\"]}, null]}},\n\n \"b4_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[4]\"}, \"&denom\"] }},\n\n\n \n \"b5_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[5]\", \"&TCC_MISS[5]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[5]\"]}, \n { \"$add\": [\"&TCC_HIT[5]\", \"&TCC_MISS[5]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b5_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[5]\"}, \"&denom\"] } \n },\n \"b5_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[5]\"}, \"&denom\"] } \n },\n \"b5_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[5]\"}, \"&denom\"] } \n },\n \"b5_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[5]\"}, \"&denom\"] } \n },\n \"b5_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[5]\"}, \"&denom\"] } \n },\n \"b5_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[5]\"}, \"&denom\"] } \n },\n \"b5_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[5]\"}, \"&denom\"] } \n },\n \"b5_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[5]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[5]\", \"&TCC_EA_RDREQ[5]\"]}, null] } },\n \"b5_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[5]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[5]\", \"&TCC_EA_WRREQ[5]\"]}, null] } },\n \"b5_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[5]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[5]\", \"&TCC_EA_ATOMIC[5]\"]}, null]}},\n\n \"b5_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[5]\"}, \"&denom\"] }},\n\n\n \n \"b6_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[6]\", \"&TCC_MISS[6]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[6]\"]}, \n { \"$add\": [\"&TCC_HIT[6]\", \"&TCC_MISS[6]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b6_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[6]\"}, \"&denom\"] } \n },\n \"b6_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[6]\"}, \"&denom\"] } \n },\n \"b6_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[6]\"}, \"&denom\"] } \n },\n \"b6_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[6]\"}, \"&denom\"] } \n },\n \"b6_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[6]\"}, \"&denom\"] } \n },\n \"b6_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[6]\"}, \"&denom\"] }\n },\n \"b6_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[6]\"}, \"&denom\"] } \n },\n \"b6_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[6]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[6]\", \"&TCC_EA_RDREQ[6]\"]}, null] } },\n \"b6_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[6]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[6]\", \"&TCC_EA_WRREQ[6]\"]}, null] } },\n \"b6_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[6]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[6]\", \"&TCC_EA_ATOMIC[6]\"]}, null]}},\n\n \"b6_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[6]\"}, \"&denom\"] }},\n\n\n \n \"b7_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[7]\", \"&TCC_MISS[7]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[7]\"]}, \n { \"$add\": [\"&TCC_HIT[7]\", \"&TCC_MISS[7]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b7_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[7]\"}, \"&denom\"] } \n },\n \"b7_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[7]\"}, \"&denom\"] } \n },\n \"b7_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[7]\"}, \"&denom\"] } \n },\n \"b7_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[7]\"}, \"&denom\"] } \n },\n \"b7_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[7]\"}, \"&denom\"] } \n },\n \"b7_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[7]\"}, \"&denom\"] }\n },\n \"b7_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[7]\"}, \"&denom\"] } \n },\n \"b7_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[7]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[7]\", \"&TCC_EA_RDREQ[7]\"]}, null] } },\n \"b7_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[7]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[7]\", \"&TCC_EA_WRREQ[7]\"]}, null] } },\n \"b7_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[7]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[7]\", \"&TCC_EA_ATOMIC[7]\"]}, null]}},\n\n \"b7_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[7]\"}, \"&denom\"] }},\n\n\n \n \"b8_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[8]\", \"&TCC_MISS[8]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[8]\"]}, \n { \"$add\": [\"&TCC_HIT[8]\", \"&TCC_MISS[8]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b8_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[8]\"}, \"&denom\"] } \n },\n \"b8_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[8]\"}, \"&denom\"] } \n },\n \"b8_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[8]\"}, \"&denom\"] } \n },\n \"b8_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[8]\"}, \"&denom\"] } \n },\n \"b8_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[8]\"}, \"&denom\"] } \n },\n \"b8_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[8]\"}, \"&denom\"] } \n },\n \"b8_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[8]\"}, \"&denom\"] } \n },\n \"b8_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[8]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[8]\", \"&TCC_EA_RDREQ[8]\"]}, null] } },\n \"b8_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[8]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[8]\", \"&TCC_EA_WRREQ[8]\"]}, null] } },\n \"b8_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[8]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[8]\", \"&TCC_EA_ATOMIC[8]\"]}, null]}},\n\n \"b8_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[8]\"}, \"&denom\"] }},\n\n\n \n \"b9_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[9]\", \"&TCC_MISS[9]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[9]\"]}, \n { \"$add\": [\"&TCC_HIT[9]\", \"&TCC_MISS[9]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b9_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[9]\"}, \"&denom\"] } \n },\n \"b9_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[9]\"}, \"&denom\"] } \n },\n \"b9_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[9]\"}, \"&denom\"] } \n },\n \"b9_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[9]\"}, \"&denom\"] } \n },\n \"b9_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[9]\"}, \"&denom\"] } \n },\n \"b9_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[9]\"}, \"&denom\"] } \n },\n \"b9_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[9]\"}, \"&denom\"] } \n },\n \"b9_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[9]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[9]\", \"&TCC_EA_RDREQ[9]\"]}, null] } },\n \"b9_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[9]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[9]\", \"&TCC_EA_WRREQ[9]\"]}, null] } },\n \"b9_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[9]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[9]\", \"&TCC_EA_ATOMIC[9]\"]}, null]}},\n\n \"b9_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[9]\"}, \"&denom\"] }},\n\n\n \n \"b10_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[10]\", \"&TCC_MISS[10]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[10]\"]}, \n { \"$add\": [\"&TCC_HIT[10]\", \"&TCC_MISS[10]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b10_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[10]\"}, \"&denom\"] } \n },\n \"b10_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[10]\"}, \"&denom\"] } \n },\n \"b10_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[10]\"}, \"&denom\"] } \n },\n \"b10_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[10]\"}, \"&denom\"] } \n },\n \"b10_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[10]\"}, \"&denom\"] } \n },\n \"b10_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[10]\"}, \"&denom\"] } \n },\n \"b10_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[10]\"}, \"&denom\"] } \n },\n \"b10_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[10]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[10]\", \"&TCC_EA_RDREQ[10]\"]}, null] } },\n \"b10_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[10]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[10]\", \"&TCC_EA_WRREQ[10]\"]}, null] } },\n \"b10_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[10]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[10]\", \"&TCC_EA_ATOMIC[10]\"]}, null]}},\n\n \"b10_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[10]\"}, \"&denom\"] }},\n\n\n \n \"b11_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[11]\", \"&TCC_MISS[11]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[11]\"]}, \n { \"$add\": [\"&TCC_HIT[11]\", \"&TCC_MISS[11]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b11_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[11]\"}, \"&denom\"] } \n },\n \"b11_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[11]\"}, \"&denom\"] } \n },\n \"b11_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[11]\"}, \"&denom\"] } \n },\n \"b11_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[11]\"}, \"&denom\"] } \n },\n \"b11_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[11]\"}, \"&denom\"] } \n },\n \"b11_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[11]\"}, \"&denom\"] } \n },\n \"b11_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[11]\"}, \"&denom\"] } \n },\n \"b11_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[11]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[11]\", \"&TCC_EA_RDREQ[11]\"]}, null] } },\n \"b11_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[11]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[11]\", \"&TCC_EA_WRREQ[11]\"]}, null] } },\n \"b11_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[11]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[11]\", \"&TCC_EA_ATOMIC[11]\"]}, null]}},\n\n \"b11_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[11]\"}, \"&denom\"] }},\n\n\n \n \"b12_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[12]\", \"&TCC_MISS[12]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[12]\"]}, \n { \"$add\": [\"&TCC_HIT[12]\", \"&TCC_MISS[12]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b12_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[12]\"}, \"&denom\"] } \n },\n \"b12_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[12]\"}, \"&denom\"] } \n },\n \"b12_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[12]\"}, \"&denom\"] } \n },\n \"b12_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[12]\"}, \"&denom\"] } \n },\n \"b12_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[12]\"}, \"&denom\"] } \n },\n \"b12_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[12]\"}, \"&denom\"] } \n },\n \"b12_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[12]\"}, \"&denom\"] } \n },\n \"b12_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[12]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[12]\", \"&TCC_EA_RDREQ[12]\"]}, null] } },\n \"b12_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[12]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[12]\", \"&TCC_EA_WRREQ[12]\"]}, null] } },\n \"b12_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[12]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[12]\", \"&TCC_EA_ATOMIC[12]\"]}, null]}},\n\n \"b12_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[12]\"}, \"&denom\"] }},\n\n\n \n \"b13_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[13]\", \"&TCC_MISS[13]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[13]\"]}, \n { \"$add\": [\"&TCC_HIT[13]\", \"&TCC_MISS[13]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b13_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[13]\"}, \"&denom\"] } \n },\n \"b13_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[13]\"}, \"&denom\"] } \n },\n \"b13_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[13]\"}, \"&denom\"] } \n },\n \"b13_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[13]\"}, \"&denom\"] } \n },\n \"b13_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[13]\"}, \"&denom\"] } \n },\n \"b13_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[13]\"}, \"&denom\"] }\n },\n \"b13_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[13]\"}, \"&denom\"] } \n },\n \"b13_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[13]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[13]\", \"&TCC_EA_RDREQ[13]\"]}, null] } },\n \"b13_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[13]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[13]\", \"&TCC_EA_WRREQ[13]\"]}, null] } },\n \"b13_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[13]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[13]\", \"&TCC_EA_ATOMIC[13]\"]}, null]}},\n\n \"b13_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[13]\"}, \"&denom\"] }},\n\n\n \n \"b14_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[14]\", \"&TCC_MISS[14]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[14]\"]}, \n { \"$add\": [\"&TCC_HIT[14]\", \"&TCC_MISS[14]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b14_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[14]\"}, \"&denom\"] } \n },\n \"b14_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[14]\"}, \"&denom\"] } \n },\n \"b14_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[14]\"}, \"&denom\"] } \n },\n \"b14_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[14]\"}, \"&denom\"] } \n },\n \"b14_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[14]\"}, \"&denom\"] } \n },\n \"b14_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[14]\"}, \"&denom\"] } \n },\n \"b14_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[14]\"}, \"&denom\"] } \n },\n \"b14_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[14]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[14]\", \"&TCC_EA_RDREQ[14]\"]}, null] } },\n \"b14_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[14]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[14]\", \"&TCC_EA_WRREQ[14]\"]}, null] } },\n \"b14_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[14]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[14]\", \"&TCC_EA_ATOMIC[14]\"]}, null]}},\n\n \"b14_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[14]\"}, \"&denom\"] }},\n\n\n \n \"b15_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[15]\", \"&TCC_MISS[15]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[15]\"]}, \n { \"$add\": [\"&TCC_HIT[15]\", \"&TCC_MISS[15]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b15_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[15]\"}, \"&denom\"] } \n },\n \"b15_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[15]\"}, \"&denom\"] } \n },\n \"b15_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[15]\"}, \"&denom\"] } \n },\n \"b15_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[15]\"}, \"&denom\"] } \n },\n \"b15_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[15]\"}, \"&denom\"] } \n },\n \"b15_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[15]\"}, \"&denom\"] } \n },\n \"b15_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[15]\"}, \"&denom\"] }\n },\n \"b15_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[15]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[15]\", \"&TCC_EA_RDREQ[15]\"]}, null] } },\n \"b15_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[15]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[15]\", \"&TCC_EA_WRREQ[15]\"]}, null] } },\n \"b15_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[15]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[15]\", \"&TCC_EA_ATOMIC[15]\"]}, null]}},\n\n \"b15_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[15]\"}, \"&denom\"] }}\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Channel\": \"0\",\n \"Hit Rate\": \"&b0_hitRate\",\n \"Req\": \"&b0_req\",\n \"Read Req\": \"&b0_readReq\",\n \"Write Req\": \"&b0_writeReq\",\n \"AtomicReq\": \"&b0_atomicReq\",\n \"EA Read Req\": \"&b0_eaReadReq\",\n \"EA Write Req\": \"&b0_eaWriteReq\",\n \"EA AtomicReq\": \"&b0_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b0_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b0_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b0_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b0_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b0_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b0_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b0_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b0_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b0_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b0_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n },\n {\n \"Channel\": \"1\",\n \"Hit Rate\": \"&b1_hitRate\",\n \"Req\": \"&b1_req\",\n \"Read Req\": \"&b1_readReq\",\n \"Write Req\": \"&b1_writeReq\",\n \"AtomicReq\": \"&b1_atomicReq\",\n \"EA Read Req\": \"&b1_eaReadReq\",\n \"EA Write Req\": \"&b1_eaWriteReq\",\n \"EA AtomicReq\": \"&b1_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b1_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b1_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b1_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b1_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b1_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b1_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b1_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b1_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b1_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b1_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n },\n {\n \"Channel\": \"2\",\n \"Hit Rate\": \"&b2_hitRate\",\n \"Req\": \"&b2_req\",\n \"Read Req\": \"&b2_readReq\",\n \"Write Req\": \"&b2_writeReq\",\n \"AtomicReq\": \"&b2_atomicReq\",\n \"EA Read Req\": \"&b2_eaReadReq\",\n \"EA Write Req\": \"&b2_eaWriteReq\",\n \"EA AtomicReq\": \"&b2_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b2_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b2_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b2_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b2_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b2_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b2_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b2_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b2_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b2_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b2_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"3\",\n \"Hit Rate\": \"&b3_hitRate\",\n \"Req\": \"&b3_req\",\n \"Read Req\": \"&b3_readReq\",\n \"Write Req\": \"&b3_writeReq\",\n \"AtomicReq\": \"&b3_atomicReq\",\n \"EA Read Req\": \"&b3_eaReadReq\",\n \"EA Write Req\": \"&b3_eaWriteReq\",\n \"EA AtomicReq\": \"&b3_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b3_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b3_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b3_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b3_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b3_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b3_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b3_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b3_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b3_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b3_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"4\",\n \"Hit Rate\": \"&b4_hitRate\",\n \"Req\": \"&b4_req\",\n \"Read Req\": \"&b4_readReq\",\n \"Write Req\": \"&b4_writeReq\",\n \"AtomicReq\": \"&b4_atomicReq\",\n \"EA Read Req\": \"&b4_eaReadReq\",\n \"EA Write Req\": \"&b4_eaWriteReq\",\n \"EA AtomicReq\": \"&b4_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b4_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b4_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b4_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b4_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b4_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b4_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b4_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b4_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b4_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b4_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"5\",\n \"Hit Rate\": \"&b5_hitRate\",\n \"Req\": \"&b5_req\",\n \"Read Req\": \"&b5_readReq\",\n \"Write Req\": \"&b5_writeReq\",\n \"AtomicReq\": \"&b5_atomicReq\",\n \"EA Read Req\": \"&b5_eaReadReq\",\n \"EA Write Req\": \"&b5_eaWriteReq\",\n \"EA AtomicReq\": \"&b5_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b5_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b5_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b5_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b5_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b5_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b5_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b5_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b5_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b5_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b5_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"6\",\n \"Hit Rate\": \"&b6_hitRate\",\n \"Req\": \"&b6_req\",\n \"Read Req\": \"&b6_readReq\",\n \"Write Req\": \"&b6_writeReq\",\n \"AtomicReq\": \"&b6_atomicReq\",\n \"EA Read Req\": \"&b6_eaReadReq\",\n \"EA Write Req\": \"&b6_eaWriteReq\",\n \"EA AtomicReq\": \"&b6_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b6_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b6_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b6_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b6_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b6_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b6_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b6_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b6_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b6_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b6_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"7\",\n \"Hit Rate\": \"&b7_hitRate\",\n \"Req\": \"&b7_req\",\n \"Read Req\": \"&b7_readReq\",\n \"Write Req\": \"&b7_writeReq\",\n \"AtomicReq\": \"&b7_atomicReq\",\n \"EA Read Req\": \"&b7_eaReadReq\",\n \"EA Write Req\": \"&b7_eaWriteReq\",\n \"EA AtomicReq\": \"&b7_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b7_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b7_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b7_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b7_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b7_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b7_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b7_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b7_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b7_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b7_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"8\",\n \"Hit Rate\": \"&b8_hitRate\",\n \"Req\": \"&b8_req\",\n \"Read Req\": \"&b8_readReq\",\n \"Write Req\": \"&b8_writeReq\",\n \"AtomicReq\": \"&b8_atomicReq\",\n \"EA Read Req\": \"&b8_eaReadReq\",\n \"EA Write Req\": \"&b8_eaWriteReq\",\n \"EA AtomicReq\": \"&b8_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b8_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b8_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b8_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b8_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b8_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b8_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b8_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b8_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b8_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b8_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"9\",\n \"Hit Rate\": \"&b9_hitRate\",\n \"Req\": \"&b9_req\",\n \"Read Req\": \"&b9_readReq\",\n \"Write Req\": \"&b9_writeReq\",\n \"AtomicReq\": \"&b9_atomicReq\",\n \"EA Read Req\": \"&b9_eaReadReq\",\n \"EA Write Req\": \"&b9_eaWriteReq\",\n \"EA AtomicReq\": \"&b9_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b9_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b9_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b9_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b9_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b9_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b9_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b9_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b9_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b9_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b9_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"10\",\n \"Hit Rate\": \"&b10_hitRate\",\n \"Req\": \"&b10_req\",\n \"Read Req\": \"&b10_readReq\",\n \"Write Req\": \"&b10_writeReq\",\n \"AtomicReq\": \"&b10_atomicReq\",\n \"EA Read Req\": \"&b10_eaReadReq\",\n \"EA Write Req\": \"&b10_eaWriteReq\",\n \"EA AtomicReq\": \"&b10_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b10_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b10_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b10_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b10_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b10_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b10_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b10_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b10_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b10_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b10_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"11\",\n \"Hit Rate\": \"&b11_hitRate\",\n \"Req\": \"&b11_req\",\n \"Read Req\": \"&b11_readReq\",\n \"Write Req\": \"&b11_writeReq\",\n \"AtomicReq\": \"&b11_atomicReq\",\n \"EA Read Req\": \"&b11_eaReadReq\",\n \"EA Write Req\": \"&b11_eaWriteReq\",\n \"EA AtomicReq\": \"&b11_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b11_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b11_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b11_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b11_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b11_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b11_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b11_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b11_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b11_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b11_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"12\",\n \"Hit Rate\": \"&b12_hitRate\",\n \"Req\": \"&b12_req\",\n \"Read Req\": \"&b12_readReq\",\n \"Write Req\": \"&b12_writeReq\",\n \"AtomicReq\": \"&b12_atomicReq\",\n \"EA Read Req\": \"&b12_eaReadReq\",\n \"EA Write Req\": \"&b12_eaWriteReq\",\n \"EA AtomicReq\": \"&b12_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b12_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b12_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b12_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b12_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b12_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b12_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b12_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b12_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b12_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b12_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"13\",\n \"Hit Rate\": \"&b13_hitRate\",\n \"Req\": \"&b13_req\",\n \"Read Req\": \"&b13_readReq\",\n \"Write Req\": \"&b13_writeReq\",\n \"AtomicReq\": \"&b13_atomicReq\",\n \"EA Read Req\": \"&b13_eaReadReq\",\n \"EA Write Req\": \"&b13_eaWriteReq\",\n \"EA AtomicReq\": \"&b13_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b13_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b13_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b13_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b13_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b13_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b13_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b13_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b13_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b13_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b13_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n\n },\n {\n \"Channel\": \"14\",\n \"Hit Rate\": \"&b14_hitRate\",\n \"Req\": \"&b14_req\",\n \"Read Req\": \"&b14_readReq\",\n \"Write Req\": \"&b14_writeReq\",\n \"AtomicReq\": \"&b14_atomicReq\",\n \"EA Read Req\": \"&b14_eaReadReq\",\n \"EA Write Req\": \"&b14_eaWriteReq\",\n \"EA AtomicReq\": \"&b14_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b14_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b14_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b14_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b14_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b14_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b14_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b14_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b14_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b14_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b14_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n\n },\n {\n \"Channel\": \"15\",\n \"Hit Rate\": \"&b15_hitRate\",\n \"Req\": \"&b15_req\",\n \"Read Req\": \"&b15_readReq\",\n \"Write Req\": \"&b15_writeReq\",\n \"AtomicReq\": \"&b15_atomicReq\",\n \"EA Read Req\": \"&b15_eaReadReq\",\n \"EA Write Req\": \"&b15_eaWriteReq\",\n \"EA AtomicReq\": \"&b15_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b15_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b15_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b15_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b15_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b15_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b15_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b15_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b15_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b15_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b15_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"$array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"$array\"\n }}\n]);", - "type": "table" - } - ], - "title": "L2 - EA Read Latency (Channel 0 - 15) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:341", - "Col": 9, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Lat - cycles", - "Selected": true - } - ], - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 81 - }, - "id": 70, - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&EndNs\", \"&BeginNs\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"b16_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[16]\", \"&TCC_MISS[16]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[16]\"]}, \n { \"$add\": [\"&TCC_HIT[16]\", \"&TCC_MISS[16]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b16_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[16]\"}, \"&denom\"] } \n },\n \"b16_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[16]\"}, \"&denom\"] } \n },\n \"b16_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[16]\"}, \"&denom\"] } \n },\n \"b16_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[16]\"}, \"&denom\"] } \n },\n \"b16_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[16]\"}, \"&denom\"] }\n },\n \"b16_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[16]\"}, \"&denom\"] } \n },\n \"b16_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[16]\"}, \"&denom\"] } \n },\n\n \"b16_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[16]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[16]\", \"&TCC_EA_RDREQ[16]\"]}, null] } },\n \"b16_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[16]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[16]\", \"&TCC_EA_WRREQ[16]\"]}, null] } },\n \"b16_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[16]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[16]\", \"&TCC_EA_ATOMIC[16]\"]}, null]}},\n \"b16_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[16]\"}, \"&denom\"] }},\n\n \n \"b17_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[17]\", \"&TCC_MISS[17]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[17]\"]}, \n { \"$add\": [\"&TCC_HIT[17]\", \"&TCC_MISS[17]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b17_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[17]\"}, \"&denom\"] } \n },\n \"b17_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[17]\"}, \"&denom\"] } \n },\n \"b17_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[17]\"}, \"&denom\"] } \n },\n \"b17_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[17]\"}, \"&denom\"] } \n },\n \"b17_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[17]\"}, \"&denom\"] }\n },\n \"b17_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[17]\"}, \"&denom\"] } \n },\n \"b17_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[17]\"}, \"&denom\"] } \n },\n \"b17_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[17]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[17]\", \"&TCC_EA_RDREQ[17]\"]}, null] } },\n \"b17_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[17]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[17]\", \"&TCC_EA_WRREQ[17]\"]}, null] } },\n \"b17_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[17]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[17]\", \"&TCC_EA_ATOMIC[17]\"]}, null]}},\n \"b17_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[17]\"}, \"&denom\"] }},\n\n \n \"b18_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[18]\", \"&TCC_MISS[18]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[18]\"]}, \n { \"$add\": [\"&TCC_HIT[18]\", \"&TCC_MISS[18]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b18_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[18]\"}, \"&denom\"] }\n },\n \"b18_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[18]\"}, \"&denom\"] } \n },\n \"b18_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[18]\"}, \"&denom\"] }\n },\n \"b18_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[18]\"}, \"&denom\"] }\n },\n \"b18_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[18]\"}, \"&denom\"] }\n },\n \"b18_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[18]\"}, \"&denom\"] }\n },\n \"b18_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[18]\"}, \"&denom\"] }\n },\n \"b18_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[18]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[18]\", \"&TCC_EA_RDREQ[18]\"]}, null] } },\n \"b18_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[18]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[18]\", \"&TCC_EA_WRREQ[18]\"]}, null] } },\n \"b18_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[18]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[18]\", \"&TCC_EA_ATOMIC[18]\"]}, null]}},\n \"b18_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[18]\"}, \"&denom\"] }},\n\n \n \"b19_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[19]\", \"&TCC_MISS[19]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[19]\"]}, \n { \"$add\": [\"&TCC_HIT[19]\", \"&TCC_MISS[19]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b19_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[19]\"}, \"&denom\"] } \n },\n \"b19_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[19]\"}, \"&denom\"] } \n },\n \"b19_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[19]\"}, \"&denom\"] }\n },\n \"b19_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[19]\"}, \"&denom\"] }\n },\n \"b19_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[19]\"}, \"&denom\"] }\n },\n \"b19_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[19]\"}, \"&denom\"] }\n },\n \"b19_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[19]\"}, \"&denom\"] } \n },\n \"b19_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[19]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[19]\", \"&TCC_EA_RDREQ[19]\"]}, null] } },\n \"b19_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[19]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[19]\", \"&TCC_EA_WRREQ[19]\"]}, null] } },\n \"b19_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[19]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[19]\", \"&TCC_EA_ATOMIC[19]\"]}, null]}},\n \"b19_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[19]\"}, \"&denom\"] }},\n\n \n \"b20_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[20]\", \"&TCC_MISS[20]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[20]\"]}, \n { \"$add\": [\"&TCC_HIT[20]\", \"&TCC_MISS[20]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b20_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[20]\"}, \"&denom\"] } \n },\n \"b20_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[20]\"}, \"&denom\"] } \n },\n \"b20_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[20]\"}, \"&denom\"] }\n },\n \"b20_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[20]\"}, \"&denom\"] } \n },\n \"b20_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[20]\"}, \"&denom\"] } \n },\n \"b20_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[20]\"}, \"&denom\"] } \n },\n \"b20_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[20]\"}, \"&denom\"] } \n },\n \"b20_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[20]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[20]\", \"&TCC_EA_RDREQ[20]\"]}, null] } },\n \"b20_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[20]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[20]\", \"&TCC_EA_WRREQ[20]\"]}, null] } },\n \"b20_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[20]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[20]\", \"&TCC_EA_ATOMIC[20]\"]}, null]}},\n \"b20_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[20]\"}, \"&denom\"] }},\n\n \n\n \"b21_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[21]\", \"&TCC_MISS[21]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[21]\"]}, \n { \"$add\": [\"&TCC_HIT[21]\", \"&TCC_MISS[21]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b21_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[21]\"}, \"&denom\"] } \n },\n \"b21_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[21]\"}, \"&denom\"] } \n },\n \"b21_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[21]\"}, \"&denom\"] } \n },\n \"b21_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[21]\"}, \"&denom\"] } \n },\n \"b21_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[21]\"}, \"&denom\"] } \n },\n \"b21_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[21]\"}, \"&denom\"] } \n },\n \"b21_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[21]\"}, \"&denom\"] } \n },\n \"b21_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[21]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[21]\", \"&TCC_EA_RDREQ[21]\"]}, null] } },\n \"b21_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[21]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[21]\", \"&TCC_EA_WRREQ[21]\"]}, null] } },\n \"b21_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[21]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[21]\", \"&TCC_EA_ATOMIC[21]\"]}, null]}},\n \"b21_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[21]\"}, \"&denom\"] }},\n\n \n\n \"b22_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[22]\", \"&TCC_MISS[22]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[22]\"]}, \n { \"$add\": [\"&TCC_HIT[22]\", \"&TCC_MISS[22]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b22_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[22]\"}, \"&denom\"] } \n },\n \"b22_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[22]\"}, \"&denom\"] } \n },\n \"b22_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[22]\"}, \"&denom\"] } \n },\n \"b22_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[22]\"}, \"&denom\"] } \n },\n \"b22_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[22]\"}, \"&denom\"] } \n },\n \"b22_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[22]\"}, \"&denom\"] }\n },\n \"b22_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[22]\"}, \"&denom\"] } \n },\n \"b22_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[22]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[22]\", \"&TCC_EA_RDREQ[22]\"]}, null] } },\n \"b22_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[22]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[22]\", \"&TCC_EA_WRREQ[22]\"]}, null] } },\n \"b22_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[22]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[22]\", \"&TCC_EA_ATOMIC[22]\"]}, null]}},\n \"b22_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[22]\"}, \"&denom\"] }},\n\n \n\n \"b23_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[23]\", \"&TCC_MISS[23]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[23]\"]}, \n { \"$add\": [\"&TCC_HIT[23]\", \"&TCC_MISS[23]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b23_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[23]\"}, \"&denom\"] } \n },\n \"b23_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[23]\"}, \"&denom\"] } \n },\n \"b23_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[23]\"}, \"&denom\"] } \n },\n \"b23_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[23]\"}, \"&denom\"] } \n },\n \"b23_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[23]\"}, \"&denom\"] } \n },\n \"b23_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[23]\"}, \"&denom\"] }\n },\n \"b23_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[23]\"}, \"&denom\"] } \n },\n \"b23_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[23]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[23]\", \"&TCC_EA_RDREQ[23]\"]}, null] } },\n \"b23_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[23]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[23]\", \"&TCC_EA_WRREQ[23]\"]}, null] } },\n \"b23_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[23]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[23]\", \"&TCC_EA_ATOMIC[23]\"]}, null]}},\n \"b23_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[23]\"}, \"&denom\"] }},\n\n \n \"b24_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[24]\", \"&TCC_MISS[24]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[24]\"]}, \n { \"$add\": [\"&TCC_HIT[24]\", \"&TCC_MISS[24]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b24_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[24]\"}, \"&denom\"] } \n },\n \"b24_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[24]\"}, \"&denom\"] } \n },\n \"b24_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[24]\"}, \"&denom\"] } \n },\n \"b24_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[24]\"}, \"&denom\"] } \n },\n \"b24_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[24]\"}, \"&denom\"] } \n },\n \"b24_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[24]\"}, \"&denom\"] } \n },\n \"b24_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[24]\"}, \"&denom\"] } \n },\n \"b24_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[24]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[24]\", \"&TCC_EA_RDREQ[24]\"]}, null] } },\n \"b24_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[24]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[24]\", \"&TCC_EA_WRREQ[24]\"]}, null] } },\n \"b24_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[24]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[24]\", \"&TCC_EA_ATOMIC[24]\"]}, null]}},\n \"b24_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[24]\"}, \"&denom\"] }},\n\n \n \"b25_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[25]\", \"&TCC_MISS[25]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[25]\"]}, \n { \"$add\": [\"&TCC_HIT[25]\", \"&TCC_MISS[25]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b25_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[25]\"}, \"&denom\"] } \n },\n \"b25_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[25]\"}, \"&denom\"] } \n },\n \"b25_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[25]\"}, \"&denom\"] } \n },\n \"b25_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[25]\"}, \"&denom\"] } \n },\n \"b25_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[25]\"}, \"&denom\"] } \n },\n \"b25_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[25]\"}, \"&denom\"] } \n },\n \"b25_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[25]\"}, \"&denom\"] } \n },\n \"b25_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[25]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[25]\", \"&TCC_EA_RDREQ[25]\"]}, null] } },\n \"b25_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[25]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[25]\", \"&TCC_EA_WRREQ[25]\"]}, null] } },\n \"b25_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[25]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[25]\", \"&TCC_EA_ATOMIC[25]\"]}, null]}},\n \"b25_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[25]\"}, \"&denom\"] }},\n\n \n \"b26_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[26]\", \"&TCC_MISS[26]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[26]\"]}, \n { \"$add\": [\"&TCC_HIT[26]\", \"&TCC_MISS[26]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b26_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[26]\"}, \"&denom\"] } \n },\n \"b26_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[26]\"}, \"&denom\"] } \n },\n \"b26_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[26]\"}, \"&denom\"] } \n },\n \"b26_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[26]\"}, \"&denom\"] } \n },\n \"b26_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[26]\"}, \"&denom\"] } \n },\n \"b26_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[26]\"}, \"&denom\"] } \n },\n \"b26_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[26]\"}, \"&denom\"] } \n },\n \"b26_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[26]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[26]\", \"&TCC_EA_RDREQ[26]\"]}, null] } },\n \"b26_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[26]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[26]\", \"&TCC_EA_WRREQ[26]\"]}, null] } },\n \"b26_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[26]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[26]\", \"&TCC_EA_ATOMIC[26]\"]}, null]}},\n \"b26_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[26]\"}, \"&denom\"] }},\n\n \n \"b27_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[27]\", \"&TCC_MISS[27]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[27]\"]}, \n { \"$add\": [\"&TCC_HIT[27]\", \"&TCC_MISS[27]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b27_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[27]\"}, \"&denom\"] } \n },\n \"b27_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[27]\"}, \"&denom\"] } \n },\n \"b27_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[27]\"}, \"&denom\"] } \n },\n \"b27_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[27]\"}, \"&denom\"] } \n },\n \"b27_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[27]\"}, \"&denom\"] } \n },\n \"b27_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[27]\"}, \"&denom\"] } \n },\n \"b27_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[27]\"}, \"&denom\"] } \n },\n \"b27_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[27]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[27]\", \"&TCC_EA_RDREQ[27]\"]}, null] } },\n \"b27_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[27]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[27]\", \"&TCC_EA_WRREQ[27]\"]}, null] } },\n \"b27_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[27]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[27]\", \"&TCC_EA_ATOMIC[27]\"]}, null]}},\n \"b27_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[27]\"}, \"&denom\"] }},\n\n \n \"b28_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[28]\", \"&TCC_MISS[28]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[28]\"]}, \n { \"$add\": [\"&TCC_HIT[28]\", \"&TCC_MISS[28]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b28_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[28]\"}, \"&denom\"] } \n },\n \"b28_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[28]\"}, \"&denom\"] } \n },\n \"b28_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[28]\"}, \"&denom\"] } \n },\n \"b28_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[28]\"}, \"&denom\"] } \n },\n \"b28_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[28]\"}, \"&denom\"] } \n },\n \"b28_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[28]\"}, \"&denom\"] } \n },\n \"b28_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[28]\"}, \"&denom\"] } \n },\n \"b28_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[28]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[28]\", \"&TCC_EA_RDREQ[28]\"]}, null] } },\n \"b28_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[28]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[28]\", \"&TCC_EA_WRREQ[28]\"]}, null] } },\n \"b28_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[28]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[28]\", \"&TCC_EA_ATOMIC[28]\"]}, null]}},\n \"b28_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[28]\"}, \"&denom\"] }},\n\n \n \"b29_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[29]\", \"&TCC_MISS[29]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[29]\"]}, \n { \"$add\": [\"&TCC_HIT[29]\", \"&TCC_MISS[29]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b29_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[29]\"}, \"&denom\"] } \n },\n \"b29_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[29]\"}, \"&denom\"] } \n },\n \"b29_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[29]\"}, \"&denom\"] } \n },\n \"b29_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[29]\"}, \"&denom\"] } \n },\n \"b29_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[29]\"}, \"&denom\"] } \n },\n \"b29_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[29]\"}, \"&denom\"] }\n },\n \"b29_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[29]\"}, \"&denom\"] } \n },\n \"b29_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[29]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[29]\", \"&TCC_EA_RDREQ[29]\"]}, null] } },\n \"b29_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[29]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[29]\", \"&TCC_EA_WRREQ[29]\"]}, null] } },\n \"b29_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[29]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[29]\", \"&TCC_EA_ATOMIC[29]\"]}, null]}},\n \"b29_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[29]\"}, \"&denom\"] }},\n\n \n \"b30_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[30]\", \"&TCC_MISS[30]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[30]\"]}, \n { \"$add\": [\"&TCC_HIT[30]\", \"&TCC_MISS[30]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b30_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[30]\"}, \"&denom\"] } \n },\n \"b30_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[30]\"}, \"&denom\"] } \n },\n \"b30_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[30]\"}, \"&denom\"] } \n },\n \"b30_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[30]\"}, \"&denom\"] } \n },\n \"b30_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[30]\"}, \"&denom\"] } \n },\n \"b30_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[30]\"}, \"&denom\"] } \n },\n \"b30_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[30]\"}, \"&denom\"] } \n },\n \"b30_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[30]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[30]\", \"&TCC_EA_RDREQ[30]\"]}, null] } },\n \"b30_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[30]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[30]\", \"&TCC_EA_WRREQ[30]\"]}, null] } },\n \"b30_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[30]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[30]\", \"&TCC_EA_ATOMIC[30]\"]}, null]}},\n \"b30_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[30]\"}, \"&denom\"] }},\n\n \n \"b31_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[31]\", \"&TCC_MISS[31]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[31]\"]}, \n { \"$add\": [\"&TCC_HIT[31]\", \"&TCC_MISS[31]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b31_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[31]\"}, \"&denom\"] } \n },\n \"b31_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[31]\"}, \"&denom\"] } \n },\n \"b31_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[31]\"}, \"&denom\"] } \n },\n \"b31_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[31]\"}, \"&denom\"] } \n },\n \"b31_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[31]\"}, \"&denom\"] } \n },\n \"b31_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[31]\"}, \"&denom\"] } \n },\n \"b31_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[31]\"}, \"&denom\"] }\n },\n \"b31_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[31]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[31]\", \"&TCC_EA_RDREQ[31]\"]}, null] } },\n \"b31_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[31]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[31]\", \"&TCC_EA_WRREQ[31]\"]}, null] } },\n \"b31_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[31]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[31]\", \"&TCC_EA_ATOMIC[31]\"]}, null]}},\n \"b31_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[31]\"}, \"&denom\"] }}\n\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Channel\": \"16\",\n \"Hit Rate\": \"&b16_hitRate\",\n \"Req\": \"&b16_req\",\n \"Read Req\": \"&b16_readReq\",\n \"Write Req\": \"&b16_writeReq\",\n \"AtomicReq\": \"&b16_atomicReq\",\n \"EA Read Req\": \"&b16_eaReadReq\",\n \"EA Write Req\": \"&b16_eaWriteReq\",\n \"EA AtomicReq\": \"&b16_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b16_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b16_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b16_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b16_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b16_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b16_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b16_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b16_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b16_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b16_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"17\",\n \"Hit Rate\": \"&b17_hitRate\",\n \"Req\": \"&b17_req\",\n \"Read Req\": \"&b17_readReq\",\n \"Write Req\": \"&b17_writeReq\",\n \"AtomicReq\": \"&b17_atomicReq\",\n \"EA Read Req\": \"&b17_eaReadReq\",\n \"EA Write Req\": \"&b17_eaWriteReq\",\n \"EA AtomicReq\": \"&b17_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b17_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b17_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b17_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b17_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b17_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b17_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b17_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b17_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b17_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b17_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"18\",\n \"Hit Rate\": \"&b18_hitRate\",\n \"Req\": \"&b18_req\",\n \"Read Req\": \"&b18_readReq\",\n \"Write Req\": \"&b18_writeReq\",\n \"AtomicReq\": \"&b18_atomicReq\",\n \"EA Read Req\": \"&b18_eaReadReq\",\n \"EA Write Req\": \"&b18_eaWriteReq\",\n \"EA AtomicReq\": \"&b18_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b18_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b18_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b18_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b18_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b18_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b18_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b18_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b18_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b18_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b18_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"19\",\n \"Hit Rate\": \"&b19_hitRate\",\n \"Req\": \"&b19_req\",\n \"Read Req\": \"&b19_readReq\",\n \"Write Req\": \"&b19_writeReq\",\n \"AtomicReq\": \"&b19_atomicReq\",\n \"EA Read Req\": \"&b19_eaReadReq\",\n \"EA Write Req\": \"&b19_eaWriteReq\",\n \"EA AtomicReq\": \"&b19_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b19_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b19_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b19_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b19_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b19_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b19_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b19_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b19_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b19_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b19_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"20\",\n \"Hit Rate\": \"&b20_hitRate\",\n \"Req\": \"&b20_req\",\n \"Read Req\": \"&b20_readReq\",\n \"Write Req\": \"&b20_writeReq\",\n \"AtomicReq\": \"&b20_atomicReq\",\n \"EA Read Req\": \"&b20_eaReadReq\",\n \"EA Write Req\": \"&b20_eaWriteReq\",\n \"EA AtomicReq\": \"&b20_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b20_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b20_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b20_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b20_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b20_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b20_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b20_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b20_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b20_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b20_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"21\",\n \"Hit Rate\": \"&b21_hitRate\",\n \"Req\": \"&b21_req\",\n \"Read Req\": \"&b21_readReq\",\n \"Write Req\": \"&b21_writeReq\",\n \"AtomicReq\": \"&b21_atomicReq\",\n \"EA Read Req\": \"&b21_eaReadReq\",\n \"EA Write Req\": \"&b21_eaWriteReq\",\n \"EA AtomicReq\": \"&b21_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b21_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b21_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b21_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b21_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b21_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b21_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b21_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b21_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b21_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b21_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"22\",\n \"Hit Rate\": \"&b22_hitRate\",\n \"Req\": \"&b22_req\",\n \"Read Req\": \"&b22_readReq\",\n \"Write Req\": \"&b22_writeReq\",\n \"AtomicReq\": \"&b22_atomicReq\",\n \"EA Read Req\": \"&b22_eaReadReq\",\n \"EA Write Req\": \"&b22_eaWriteReq\",\n \"EA AtomicReq\": \"&b22_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b22_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b22_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b22_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b22_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b22_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b22_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b22_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b22_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b22_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b22_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"23\",\n \"Hit Rate\": \"&b23_hitRate\",\n \"Req\": \"&b23_req\",\n \"Read Req\": \"&b23_readReq\",\n \"Write Req\": \"&b23_writeReq\",\n \"AtomicReq\": \"&b23_atomicReq\",\n \"EA Read Req\": \"&b23_eaReadReq\",\n \"EA Write Req\": \"&b23_eaWriteReq\",\n \"EA AtomicReq\": \"&b23_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b23_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b23_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b23_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b23_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b23_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b23_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b23_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b23_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b23_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b23_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n\n },\n {\n \"Channel\": \"24\",\n \"Hit Rate\": \"&b24_hitRate\",\n \"Req\": \"&b24_req\",\n \"Read Req\": \"&b24_readReq\",\n \"Write Req\": \"&b24_writeReq\",\n \"AtomicReq\": \"&b24_atomicReq\",\n \"EA Read Req\": \"&b24_eaReadReq\",\n \"EA Write Req\": \"&b24_eaWriteReq\",\n \"EA AtomicReq\": \"&b24_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b24_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b24_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b24_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b24_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b24_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b24_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b24_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b24_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b24_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b24_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"25\",\n \"Hit Rate\": \"&b25_hitRate\",\n \"Req\": \"&b25_req\",\n \"Read Req\": \"&b25_readReq\",\n \"Write Req\": \"&b25_writeReq\",\n \"AtomicReq\": \"&b25_atomicReq\",\n \"EA Read Req\": \"&b25_eaReadReq\",\n \"EA Write Req\": \"&b25_eaWriteReq\",\n \"EA AtomicReq\": \"&b25_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b25_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b25_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b25_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b25_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b25_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b25_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b25_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b25_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b25_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b25_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"26\",\n \"Hit Rate\": \"&b26_hitRate\",\n \"Req\": \"&b26_req\",\n \"Read Req\": \"&b26_readReq\",\n \"Write Req\": \"&b26_writeReq\",\n \"AtomicReq\": \"&b26_atomicReq\",\n \"EA Read Req\": \"&b26_eaReadReq\",\n \"EA Write Req\": \"&b26_eaWriteReq\",\n \"EA AtomicReq\": \"&b26_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b26_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b26_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b26_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b26_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b26_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b26_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b26_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b26_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b26_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b26_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n\n },\n {\n \"Channel\": \"27\",\n \"Hit Rate\": \"&b27_hitRate\",\n \"Req\": \"&b27_req\",\n \"Read Req\": \"&b27_readReq\",\n \"Write Req\": \"&b27_writeReq\",\n \"AtomicReq\": \"&b27_atomicReq\",\n \"EA Read Req\": \"&b27_eaReadReq\",\n \"EA Write Req\": \"&b27_eaWriteReq\",\n \"EA AtomicReq\": \"&b27_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b27_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b27_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b27_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b27_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b27_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b27_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b27_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b27_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b27_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b27_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"28\",\n \"Hit Rate\": \"&b28_hitRate\",\n \"Req\": \"&b28_req\",\n \"Read Req\": \"&b28_readReq\",\n \"Write Req\": \"&b28_writeReq\",\n \"AtomicReq\": \"&b28_atomicReq\",\n \"EA Read Req\": \"&b28_eaReadReq\",\n \"EA Write Req\": \"&b28_eaWriteReq\",\n \"EA AtomicReq\": \"&b28_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b28_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b28_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b28_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b28_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b28_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b28_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b28_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b28_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b28_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b28_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"29\",\n \"Hit Rate\": \"&b29_hitRate\",\n \"Req\": \"&b29_req\",\n \"Read Req\": \"&b29_readReq\",\n \"Write Req\": \"&b29_writeReq\",\n \"AtomicReq\": \"&b29_atomicReq\",\n \"EA Read Req\": \"&b29_eaReadReq\",\n \"EA Write Req\": \"&b29_eaWriteReq\",\n \"EA AtomicReq\": \"&b29_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b29_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b29_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b29_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b29_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b29_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b29_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b29_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b29_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b29_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b29_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"30\",\n \"Hit Rate\": \"&b30_hitRate\",\n \"Req\": \"&b30_req\",\n \"Read Req\": \"&b30_readReq\",\n \"Write Req\": \"&b30_writeReq\",\n \"AtomicReq\": \"&b30_atomicReq\",\n \"EA Read Req\": \"&b30_eaReadReq\",\n \"EA Write Req\": \"&b30_eaWriteReq\",\n \"EA AtomicReq\": \"&b30_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b30_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b30_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b30_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b30_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b30_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b30_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b30_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b30_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b30_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b30_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"31\",\n \"Hit Rate\": \"&b31_hitRate\",\n \"Req\": \"&b31_req\",\n \"Read Req\": \"&b31_readReq\",\n \"Write Req\": \"&b31_writeReq\",\n \"AtomicReq\": \"&b31_atomicReq\",\n \"EA Read Req\": \"&b31_eaReadReq\",\n \"EA Write Req\": \"&b31_eaWriteReq\",\n \"EA AtomicReq\": \"&b31_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b31_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b31_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b31_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b31_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b31_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b31_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b31_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b31_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b31_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b31_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"$array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"$array\"\n }}\n]);", - "type": "table" - } - ], - "title": "L2 - EA Read Latency (Channel 16-31) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 10, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Lat - cycles", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 89 - }, - "id": 93, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Latency (Channel 0 - 15) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 10, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Lat - cycles", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 89 - }, - "id": 94, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Latency (Channel 16 - 31) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 11, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Atomic Lat - cycles", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 97 - }, - "id": 187, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Atomic Latency (Channel 0 - 15) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 11, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Atomic Lat - cycles", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 97 - }, - "id": 201, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Atomic Latency (Channel 16 - 31) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 12, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - IO", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 105 - }, - "id": 220, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - I/O (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 12, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - IO", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 105 - }, - "id": 227, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - I/O (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 13, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - GMI", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 113 - }, - "id": 221, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - GMI (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 13, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - GMI", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 113 - }, - "id": 228, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - GMI (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 14, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - DRAM", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 121 - }, - "id": 222, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - HBM (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 14, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - DRAM", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 121 - }, - "id": 229, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - HBM (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 15, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - IO", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 129 - }, - "id": 223, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - I/O (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 15, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - IO", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 129 - }, - "id": 230, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - I/O (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 16, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - GMI", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 137 - }, - "id": 225, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - GMI (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 16, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - GMI", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 137 - }, - "id": 231, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - GMI (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 17, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - DRAM", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 145 - }, - "id": 224, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - HBM (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 17, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - DRAM", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 145 - }, - "id": 232, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - HBM (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 18, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - Starve", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 153 - }, - "id": 226, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Starve (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 18, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - Starve", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 153 - }, - "id": 233, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Starve (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "L2 Cache (per Channel)", - "type": "row" - } - ], - "refresh": "", - "schemaVersion": 34, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "current": { - "selected": true, - "text": "\"per Wave\"", - "value": "\"per Wave\"" - }, - "hide": 0, - "includeAll": false, - "label": "Normalization", - "multi": false, - "name": "normUnit", - "options": [ - { - "selected": true, - "text": "\"per Wave\"", - "value": "\"per Wave\"" - }, - { - "selected": false, - "text": "\"per Cycle\"", - "value": "\"per Cycle\"" - }, - { - "selected": false, - "text": "\"per Sec\"", - "value": "\"per Sec\"" - }, - { - "selected": false, - "text": "\"per Kernel\"", - "value": "\"per Kernel\"" - } - ], - "query": "\"per Wave\",\n\"per Cycle\",\n\"per Sec\",\n\"per Kernel\"", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - }, - { - "current": { - "selected": false, - "text": "32", - "value": "32" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&L2Banks\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "L2 Channels", - "multi": false, - "name": "L2Banks", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&L2Banks\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "8", - "value": "8" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSE\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "#SEs", - "multi": false, - "name": "numSE", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSE\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "104", - "value": "104" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numCU\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "#CUs", - "multi": false, - "name": "numCU", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numCU\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "32", - "value": "32" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&maxWavesPerCU\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Max Waves/CU", - "multi": false, - "name": "maxWavesPerCU", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&maxWavesPerCU\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "1700", - "value": "1700" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&sclk\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "SCLK (MHz)", - "multi": false, - "name": "sclk", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&sclk\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "56", - "value": "56" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSQC\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "#SQC", - "multi": false, - "name": "numSQC", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSQC\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "1638.4", - "value": "1638.4" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&hbmBW\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "HBM BW (GB/s)", - "multi": false, - "name": "hbmBW", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&hbmBW\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": "rocprofiler-compute_asw_mixbench_mi200", - "value": "rocprofiler-compute_asw_mixbench_mi200" - }, - "definition": "workload_names.names.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "hide": 0, - "includeAll": false, - "label": "Workload", - "multi": false, - "name": "Workload1", - "options": [], - "query": "workload_names.names.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "435646", - "value": "435646" - }, - "definition": "$Workload1.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"myAvg\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }, 1000] }, $sclk] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": { \"$round\": [\"&myAvg\", 0] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Kernel Cycles", - "multi": false, - "name": "kernelBusyCycles", - "options": [], - "query": "$Workload1.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"myAvg\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [{ \"$subtract\": [\"&EndNs\", \"&BeginNs\"] }, 1000] }, $sclk] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": { \"$round\": [\"&myAvg\", 0] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "103", - "value": "103" - }, - "definition": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"theAvg\": {\n \"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&GRBM_GUI_ACTIVE\", 0]},\n {\"$divide\": [{ \"$multiply\": [4, \"&SQ_BUSY_CU_CYCLES\"] }, \"&GRBM_GUI_ACTIVE\"]},\n \"\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": {\"$toInt\": { \"$min\": [{ \"$add\": [{ \"$multiply\": [{ \"$divide\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU] },8] }, { \"$min\": [{ \"$mod\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU] }, 8] }] }, $numCU] }}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"$array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"$array\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Active CUs", - "multi": false, - "name": "numActiveCUs", - "options": [], - "query": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"theAvg\": {\n \"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&GRBM_GUI_ACTIVE\", 0]},\n {\"$divide\": [{ \"$multiply\": [4, \"&SQ_BUSY_CU_CYCLES\"] }, \"&GRBM_GUI_ACTIVE\"]},\n \"\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": {\"$toInt\": { \"$min\": [{ \"$add\": [{ \"$multiply\": [{ \"$divide\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU] },8] }, { \"$min\": [{ \"$mod\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU] }, 8] }] }, $numCU] }}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"$array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"$array\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "definition": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": \"&Index\"\n }},\n {\"$sort\": {\n \"_id\": 1\n }}\n]);", - "description": "Defaults to all DispatchIDs", - "hide": 2, - "includeAll": true, - "label": "Filtered Dispatch ID", - "multi": false, - "name": "DispatchIDFilter", - "options": [], - "query": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"gpu-id\": { \"$in\": [${gpuFilter:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": \"&Index\"\n }},\n {\"$sort\": {\n \"_id\": 1\n }}\n]);", - "refresh": 1, - "regex": "${DispatchID:text}", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": "", - "value": "" - }, - "description": "Desired DispatchID filters as regex ex. (1|18)", - "hide": 0, - "label": "Dispatch Filter", - "name": "DispatchID", - "options": [ - { - "selected": true, - "text": "", - "value": "" - } - ], - "query": "", - "skipUrlSync": false, - "type": "textbox" - }, - { - "current": { - "selected": false, - "text": "0", - "value": "0" - }, - "definition": "$Workload1.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&gpu-id\"\n }}\n]);", - "hide": 0, - "includeAll": false, - "label": "GCD", - "multi": false, - "name": "gpuFilter", - "options": [], - "query": "$Workload1.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&gpu-id\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 3, - "type": "query" - }, - { - "current": { - "selected": true, - "text": [ - "All" - ], - "value": [ - "$__all" - ] - }, - "definition": "$Workload1.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&KernelName\"\n }}\n]);", - "hide": 0, - "includeAll": true, - "label": "Kernels", - "multi": true, - "name": "KernelNameFilter", - "options": [], - "query": "$Workload1.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&KernelName\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": "rocprofiler-compute_asw_mixbench_mi200", - "value": "rocprofiler-compute_asw_mixbench_mi200" - }, - "definition": "workload_names.names.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "hide": 0, - "includeAll": false, - "label": "Baseline Workload", - "multi": false, - "name": "Workload2", - "options": [], - "query": "workload_names.names.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "103", - "value": "103" - }, - "definition": "$Workload2.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"theAvg\": {\n \"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&GRBM_GUI_ACTIVE\", 0]},\n {\"$divide\": [{ \"$multiply\": [4, \"&SQ_BUSY_CU_CYCLES\"] }, \"&GRBM_GUI_ACTIVE\"]},\n \"\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": {\"$toInt\": { \"$min\": [{ \"$add\": [{ \"$multiply\": [{ \"$divide\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU2] },8] }, { \"$min\": [{ \"$mod\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU2] }, 8] }] }, $numCU2] }}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline ActiveCUs", - "multi": false, - "name": "numActiveCUs2", - "options": [], - "query": "$Workload2.pmc_perf.aggregate([\n{\"$match\": {\n \"Index\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"theAvg\": {\n \"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&GRBM_GUI_ACTIVE\", 0]},\n {\"$divide\": [{ \"$multiply\": [4, \"&SQ_BUSY_CU_CYCLES\"] }, \"&GRBM_GUI_ACTIVE\"]},\n \"\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": {\"$toInt\": { \"$min\": [{ \"$add\": [{ \"$multiply\": [{ \"$divide\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU2] },8] }, { \"$min\": [{ \"$mod\": [{ \"$round\": [\"$theAvg\", 0] }, $maxWavesPerCU2] }, 8] }] }, $numCU2] }}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "definition": "$Workload2.pmc_perf.aggregate([\n {\"$match\": {\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}}\n }},\n {\"$group\": {\n \"_id\": \"&Index\"\n }},\n {\"$sort\": {\n \"_id\": 1\n }}\n]);", - "description": "Defaults to all DispatchIDs", - "hide": 2, - "includeAll": true, - "label": "Baseline Dispatch IDs", - "multi": false, - "name": "DispatchIDFilter2", - "options": [], - "query": "$Workload2.pmc_perf.aggregate([\n {\"$match\": {\n \"gpu-id\": { \"$in\": [${gpuFilter2:raw}] },\n \"KernelName\": { \"$in\": ${KernelNameFilter2:json}}\n }},\n {\"$group\": {\n \"_id\": \"&Index\"\n }},\n {\"$sort\": {\n \"_id\": 1\n }}\n]);", - "refresh": 1, - "regex": "${DispatchID2:text}", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": "", - "value": "" - }, - "description": "Desired DispatchID filters as regex ex. (1|18)", - "hide": 0, - "label": "Baseline Dispatch Filter", - "name": "DispatchID2", - "options": [ - { - "selected": true, - "text": "", - "value": "" - } - ], - "query": "", - "skipUrlSync": false, - "type": "textbox" - }, - { - "current": { - "selected": false, - "text": "0", - "value": "0" - }, - "definition": "$Workload2.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&gpu-id\"\n }}\n]);", - "hide": 0, - "includeAll": false, - "label": "Baseline GCD", - "multi": false, - "name": "gpuFilter2", - "options": [], - "query": "$Workload2.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&gpu-id\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": [ - "All" - ], - "value": [ - "$__all" - ] - }, - "definition": "$Workload2.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&KernelName\"\n }}\n]);", - "hide": 0, - "includeAll": true, - "label": "Baseline Kernels", - "multi": true, - "name": "KernelNameFilter2", - "options": [], - "query": "$Workload2.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&KernelName\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": [ - "System Info" - ], - "value": [ - "System Info" - ] - }, - "hide": 0, - "includeAll": false, - "label": "Comparison Panels", - "multi": true, - "name": "select", - "options": [ - { - "selected": true, - "text": "System Info", - "value": "System Info" - }, - { - "selected": false, - "text": "System Speed-of-Light", - "value": "System Speed-of-Light" - }, - { - "selected": false, - "text": "Roofline", - "value": "Roofline" - }, - { - "selected": false, - "text": "Command Processor", - "value": "Command Processor" - }, - { - "selected": false, - "text": "Shader Processor Input", - "value": "Shader Processor Input" - }, - { - "selected": false, - "text": "Wavefront", - "value": "Wavefront" - }, - { - "selected": false, - "text": "Compute Pipeline", - "value": "Compute Pipeline" - }, - { - "selected": false, - "text": "Instruction Mix", - "value": "Instruction Mix" - }, - { - "selected": false, - "text": "Local Data Share", - "value": "Local Data Share" - }, - { - "selected": false, - "text": "Instruction Cache", - "value": "Instruction Cache" - }, - { - "selected": false, - "text": "Scalar L1D Cache", - "value": "Scalar L1D Cache" - }, - { - "selected": false, - "text": "Texture Addr and Data", - "value": "Texture Addr and Data" - }, - { - "selected": false, - "text": "Vector L1D Cache", - "value": "Vector L1D Cache" - }, - { - "selected": false, - "text": "L2 Cache", - "value": "L2 Cache" - } - ], - "query": "System Info, \nSystem Speed-of-Light, \nRoofline,\nCommand Processor, \nShader Processor Input, \nWavefront,\nCompute Pipeline, \nInstruction Mix,\nLocal Data Share, \nInstruction Cache, \nScalar L1D Cache, \nTexture Addr and Data, \nVector L1D Cache,\nL2 Cache", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - }, - { - "current": { - "selected": false, - "text": "32", - "value": "32" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&L2Banks\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline L2 Channels", - "multi": false, - "name": "L2Banks2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&L2Banks\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "8", - "value": "8" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSE\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline #SEs", - "multi": false, - "name": "numSE2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSE\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "104", - "value": "104" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numCU\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline #CUs", - "multi": false, - "name": "numCU2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numCU\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "32", - "value": "32" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&maxWavesPerCU\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline Max Waves/CU", - "multi": false, - "name": "maxWavesPerCU2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&maxWavesPerCU\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "1700", - "value": "1700" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&sclk\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline SCLK (MHz)", - "multi": false, - "name": "sclk2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&sclk\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "56", - "value": "56" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSQC\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline #SQC", - "multi": false, - "name": "numSQC2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&numSQC\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "1638.4", - "value": "1638.4" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&hbmBW\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline HBM BW (GB/s)", - "multi": false, - "name": "hbmBW2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&hbmBW\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "mi200", - "value": "mi200" - }, - "definition": "${Workload1}.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "SOC", - "multi": false, - "name": "soc", - "options": [], - "query": "${Workload1}.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": "5", - "value": "5" - }, - "hide": 0, - "includeAll": false, - "multi": false, - "name": "TopN", - "options": [ - { - "selected": false, - "text": "1", - "value": "1" - }, - { - "selected": true, - "text": "5", - "value": "5" - }, - { - "selected": false, - "text": "10", - "value": "10" - }, - { - "selected": false, - "text": "15", - "value": "15" - }, - { - "selected": false, - "text": "20", - "value": "20" - }, - { - "selected": false, - "text": "50", - "value": "50" - }, - { - "selected": false, - "text": "100", - "value": "100" - } - ], - "query": "1,5,10,15,20,50,100", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - } - ] - }, - "time": { - "from": "2021-11-04T14:21:39.749Z", - "to": "2021-11-08T14:21:39.749Z" - }, - "timepicker": {}, - "timezone": "", - "title": "rocprofiler-compute_v1.0.8_pub", - "uid": "MIPerf_v1_0_0630202211210", - "version": 4, - "weekStart": "" -} diff --git a/projects/rocprofiler-compute/grafana/dashboards/RocProfCompute_v2.0.0_pub.json b/projects/rocprofiler-compute/grafana/dashboards/RocProfCompute_v2.0.0_pub.json deleted file mode 100644 index 77261f04c8..0000000000 --- a/projects/rocprofiler-compute/grafana/dashboards/RocProfCompute_v2.0.0_pub.json +++ /dev/null @@ -1,13415 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 0, - "id": 12, - "iteration": 1710183556815, - "links": [], - "liveNow": false, - "panels": [ - { - "collapsed": true, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 217, - "panels": [ - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [] - }, - "gridPos": { - "h": 23, - "w": 13, - "x": 0, - "y": 1 - }, - "id": 159, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.sysinfo.aggregate([\n {\"$project\": {\n \"_id\": 0,\n \"timestamp\":1,\n \"command\": 1,\n \"hostname\": 1,\n \"cpu_model\": 1,\n \"linux_distro\": 1,\n \"linux_kernel_version\": 1,\n \"rocm_version\": 1,\n \"gpu_model\": 1,\n \"gpu_arch\": 1,\n \"se_per_gpu\": 1,\n \"sqc_per_gpu\": 1,\n \"cu_per_gpu\": 1,\n \"simd_per_cu\": 1,\n \"waveSize\": 1,\n \"max_waves_per_cu\": 1,\n \"workgroup_max_size\":1,\n \"gpu_l1\":1,\n \"gpu_l2\":1,\n \"lds_banks_per_cu\": 1,\n \"max_sclk\":1,\n \"max_mclk\":1,\n \"cur_sclk\": 1,\n \"cur_mclk\":1,\n \"hbm_bw\":1\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\":\"Date\",\n \"Value\": \"×tamp\"\n },\n {\n \"Metric\":\"App Command\",\n \"Value\": \"&command\"\n },\n {\n \"Metric\":\"Host Name\",\n \"Value\": \"&hostname\"\n },\n {\n \"Metric\":\"Host CPU\",\n \"Value\": \"&cpu_model\"\n },\n {\n \"Metric\":\"Host Distro\",\n \"Value\": \"&linux_distro\"\n },\n {\n \"Metric\":\"Host Kernel\",\n \"Value\": \"&linux_kernel_version\"\n },\n {\n \"Metric\":\"ROCm Version\",\n \"Value\": \"&rocm_version\"\n },\n {\n \"Metric\":\"GFX SoC\",\n \"Value\": \"&gpu_model\"\n },\n {\n \"Metric\":\"GFX ID\",\n \"Value\": \"&gpu_arch\"\n },\n {\n \"Metric\":\"Total SEs\",\n \"Value\":\"&se_per_gpu\"\n },\n {\n \"Metric\":\"Total SQCs\",\n \"Value\":\"&sqc_per_gpu\"\n },\n {\n\n \"Metric\":\"Total CUs\",\n \"Value\":\"&cu_per_gpu\"\n },\n {\n \"Metric\":\"SIMDs/CU\",\n \"Value\": \"&simd_per_cu\"\n },\n {\n \"Metric\":\"Max Wavefronts Occupancy Per CU\",\n \"Value\":\"&max_waves_per_cu\"\n },\n {\n \"Metric\":\"Max Workgroup Size\",\n \"Value\":\"&workgroup_max_size\"\n },\n {\n \"Metric\":\"L1Cache per CU (KB)\",\n \"Value\":\"&gpu_l1\"\n },\n {\n \"Metric\":\"L2Cache (KB)\",\n \"Value\":\"&gpu_l2\"\n },\n {\n \"Metric\":\"L2Cache Channels\",\n \"Value\":\"&lds_banks_per_cu\"\n },\n {\n \"Metric\":\"Sys Clock (Max) - MHz\",\n \"Value\":\"&max_sclk\"\n \n },\n {\n \"Metric\":\"Memory Clock (Max) - MHz\",\n \"Value\":\"&max_mclk\"\n },\n {\n \"Metric\":\"Sys Clock (Cur) - MHz\",\n \"Value\":\"&cur_sclk\"\n \n },\n {\n \"Metric\":\"Memory Clock (Cur) - MHz\",\n \"Value\":\"&cur_mclk\"\n },\n {\n \"Metric\":\"HBM Bandwidth - GB/s\",\n \"Value\":\"&hbm_bw\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.sysinfo.aggregate([\n {\"$match\": {\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(System Info)\"}}\n }},\n\n {\"$project\": {\n \"_id\": 0,\n \"timestamp\":1,\n \"command\": 1,\n \"hostname\": 1,\n \"cpu_model\": 1,\n \"linux_distro\": 1,\n \"linux_kernel_version\": 1,\n \"rocm_version\": 1,\n \"gpu_model\": 1,\n \"gpu_arch\": 1,\n \"se_per_gpu\": 1,\n \"sqc_per_gpu\": 1,\n \"cu_per_gpu\": 1,\n \"simd_per_cu\": 1,\n \"waveSize\": 1,\n \"max_waves_per_cu\": 1,\n \"workgroup_max_size\":1,\n \"gpu_l1\":1,\n \"gpu_l2\":1,\n \"lds_banks_per_cu\": 1,\n \"max_sclk\":1,\n \"max_mclk\":1,\n \"cur_sclk\": 1,\n \"cur_mclk\":1,\n \"hbm_bw\":1\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\":\"Date\",\n \"Value\": \"×tamp\"\n },\n {\n \"Metric\":\"App Command\",\n \"Value\": \"&command\"\n },\n {\n \"Metric\":\"Host Name\",\n \"Value\": \"&hostname\"\n },\n {\n \"Metric\":\"Host CPU\",\n \"Value\": \"&cpu_model\"\n },\n {\n \"Metric\":\"Host Distro\",\n \"Value\": \"&linux_distro\"\n },\n {\n \"Metric\":\"Host Kernel\",\n \"Value\": \"&linux_kernel_version\"\n },\n {\n \"Metric\":\"ROCm Version\",\n \"Value\": \"&rocm_version\"\n },\n {\n \"Metric\":\"GFX SoC\",\n \"Value\": \"&gpu_model\"\n },\n {\n \"Metric\":\"GFX ID\",\n \"Value\": \"&gpu_arch\"\n },\n {\n \"Metric\":\"Total SEs\",\n \"Value\":\"&se_per_gpu\"\n },\n {\n \"Metric\":\"Total SQCs\",\n \"Value\":\"&sqc_per_gpu\"\n },\n {\n\n \"Metric\":\"Total CUs\",\n \"Value\":\"&cu_per_gpu\"\n },\n {\n \"Metric\":\"SIMDs/CU\",\n \"Value\": \"&simd_per_cu\"\n },\n {\n \"Metric\":\"Max Wavefronts Occupancy Per CU\",\n \"Value\":\"&max_waves_per_cu\"\n },\n {\n \"Metric\":\"Max Workgroup Size\",\n \"Value\":\"&workgroup_max_size\"\n },\n {\n \"Metric\":\"L1Cache per CU (KB)\",\n \"Value\":\"&gpu_l1\"\n },\n {\n \"Metric\":\"L2Cache (KB)\",\n \"Value\":\"&gpu_l2\"\n },\n {\n \"Metric\":\"L2Cache Channels\",\n \"Value\":\"&lds_banks_per_cu\"\n },\n {\n \"Metric\":\"Sys Clock (Max) - MHz\",\n \"Value\":\"&max_sclk\"\n \n },\n {\n \"Metric\":\"Memory Clock (Max) - MHz\",\n \"Value\":\"&max_mclk\"\n },\n {\n \"Metric\":\"Sys Clock (Cur) - MHz\",\n \"Value\":\"&cur_sclk\"\n \n },\n {\n \"Metric\":\"Memory Clock (Cur) - MHz\",\n \"Value\":\"&cur_mclk\"\n },\n {\n \"Metric\":\"HBM Bandwidth - GB/s\",\n \"Value\":\"&hbm_bw\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "System Info", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true - }, - "indexByName": {}, - "renameByName": { - "Value 1": "Current", - "Value 2": "Baseline" - } - } - } - ], - "type": "table" - } - ], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "System Info", - "type": "row" - }, - { - "collapsed": false, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 1 - }, - "id": 108, - "panels": [], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "System Speed-of-Light", - "type": "row" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto", - "filterable": false - }, - "decimals": 0, - "links": [], - "mappings": [ - { - "options": { - "match": "false", - "result": { - "index": 0 - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text", - "value": null - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Percent of Peak - PoP" - }, - "properties": [ - { - "id": "unit", - "value": "percent" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "transparent", - "value": null - }, - { - "color": "orange", - "value": 50 - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - { - "id": "custom.displayMode", - "value": "color-background" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.displayMode", - "value": "color-text" - }, - { - "id": "custom.width", - "value": 252 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit 1" - }, - "properties": [ - { - "id": "custom.displayMode", - "value": "color-background" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 137 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 110 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 125 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg" - }, - "properties": [ - { - "id": "custom.width", - "value": 161 - } - ] - } - ] - }, - "gridPos": { - "h": 29, - "w": 15, - "x": 0, - "y": 2 - }, - "id": 110, - "interval": "2h", - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"valu_flops_val\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }] }] }\n ]}\n ,{ \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }]\n }},\n \n \"valu_intOps_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] }] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] }\n },\n \n \"mfma_flops_f16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] } },\n \"mfma_flops_bf16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] } },\n \"mfma_flops_f32_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] } },\n \"mfma_flops_f64_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] } },\n \"mfma_flops_i8_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] } },\n \n \n \"salu_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu] }] }\n },\n \n \"valu_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu] }] }\n },\n \n \"mfma_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu, 4] }] }\n },\n\n \n \"lds_bconf\": {\n \"$avg\": {\"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n } \n },\n \n \n \"lds_bw\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$lds_banks_per_cu\"}\n ]}, \n {\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"]}\n ]}\n },\n \n \"lds_bw_pop\": {\n \"$avg\": {\"$divide\": [\n {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$lds_banks_per_cu\"}\n ]}, \n {\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"]}\n ]}, \n {\"$multiply\": [$sclk, $cu_per_gpu, 0.00128]}\n ]}\n },\n \n \"unpredthreads_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \n \"ipcIssue_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\", \"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"eaWriteLat_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\" , 0]},\n { \"$divide\": [\"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\"] },\n null \n ]\n }\n },\n \"eaReadLat_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\" , 0]},\n { \"$divide\": [\"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\"] },\n null \n ]\n }\n },\n \"eaWriteBW_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64] }, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] }\n }, \n \"eaReadBW_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32] }, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] }] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] }\n },\n \"l2_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }, 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }] },\n null \n ]\n }\n },\n \"vecl1_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]},\n { \"$subtract\": [100, { \"$divide\": [{ \"$multiply\": [100, { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }] }, \"&TCP_TOTAL_CACHE_ACCESSES_sum\"] }] },\n null\n ]\n }\n },\n \"vecl1_BW_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] } ] }\n },\n \"l1k_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\"]} , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\"]}] },\n null\n ]\n }\n },\n \"l1i_hitRate_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\"]}] }\n },\n \"l1i_BW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQC_ICACHE_REQ\",{ \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] } ] }, 64] }\n },\n \"l1k_BW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQC_DCACHE_REQ\", { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] } ] }, 64] }\n }\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"VALU FLOPs\",\n \"Value\": \"&valu_flops_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $cu_per_gpu, 64, 2 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&valu_flops_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $cu_per_gpu, 64, 2 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"VALU IOPs\",\n \"Value\": \"&valu_intOps_val\",\n \"Unit\": \"GIOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $cu_per_gpu, 64, 2 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&valu_intOps_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $cu_per_gpu, 64, 2 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (BF16)\",\n \"Value\": \"&mfma_flops_bf16_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $cu_per_gpu, 512 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_bf16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $cu_per_gpu, 512 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F16)\",\n \"Value\": \"&mfma_flops_f16_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $cu_per_gpu, 1024 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $cu_per_gpu, 1024 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F32)\",\n \"Value\": \"&mfma_flops_f32_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $cu_per_gpu, 256 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f32_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $cu_per_gpu, 256 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F64)\",\n \"Value\": \"&mfma_flops_f64_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $cu_per_gpu, 256 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f64_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $cu_per_gpu, 256 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA IOPs (Int8)\",\n \"Value\": \"&mfma_flops_i8_val\",\n \"Unit\": \"GIOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk, $cu_per_gpu, 1024 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_i8_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $cu_per_gpu, 1024 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"Active CUs\",\n \"Value\": $numActiveCUs,\n \"Unit\": \"CUs\",\n \"peak\": $cu_per_gpu,\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, $numActiveCUs] }, $cu_per_gpu]}\n },\n \n {\n \"Metric\": \"SALU Util\",\n \"Value\": \"&salu_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&salu_val\"\n },\n {\n \"Metric\": \"VALU Util\",\n \"Value\": \"&valu_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&valu_val\"\n },\n {\n \"Metric\": \"MFMA Util\",\n \"Value\": \"&mfma_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&mfma_val\"\n },\n {\n \"Metric\": \"VALU Active Threads/Wave\",\n \"Value\": \"&unpredthreads_val\",\n \"Unit\": \"Threads\",\n \"peak\": 64,\n \"Percent of Peak - PoP\": { \"$multiply\": [\"&unpredthreads_val\", 1.5625]}\n },\n {\n \"Metric\": \"IPC - Issue\",\n \"Value\": \"&ipcIssue_val\",\n \"Unit\": \"Instr/cycle\",\n \"peak\": 5,\n \"Percent of Peak - PoP\": {\"$divide\": [{ \"$multiply\": [100, \"&ipcIssue_val\"] }, 5] }\n },\n {\n \"Metric\": \"LDS BW\",\n \"Value\": \"&lds_bw\",\n \"Unit\": \"GB/sec\",\n \"peak\": {\"$multiply\": [$sclk, $cu_per_gpu, 0.128]},\n \"Percent of Peak - PoP\": \"&lds_bw_pop\"\n },\n {\n \"Metric\": \"LDS Bank Conflict\",\n \"Value\": \"&lds_bconf\",\n \"Unit\": \"Conflicts/access\",\n \"peak\": \"32\",\n \"Percent of Peak - PoP\": {\"$divide\": [{ \"$multiply\": [100, \"&lds_bconf\"] }, 32] }\n },\n {\n \"Metric\": \"Instr Cache Hit Rate\",\n \"Value\": \"&l1i_hitRate_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l1i_hitRate_val\"\n }, \n {\n \"Metric\": \"Instr Cache BW\",\n \"Value\": \"&l1i_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $sqc_per_gpu]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&l1i_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $sqc_per_gpu]}] }\n },\n {\n \"Metric\": \"Scalar L1D Cache Hit Rate\",\n \"Value\": \"&l1k_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l1k_cacheHits_val\"\n },\n {\n \"Metric\": \"Scalar L1D Cache BW\",\n \"Value\": \"&l1k_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $sqc_per_gpu]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&l1k_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $sqc_per_gpu]}] }\n },\n\n {\n \"Metric\": \"Vector L1D Cache Hit Rate\",\n \"Value\": \"&vecl1_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&vecl1_cacheHits_val\"\n },\n {\n \"Metric\": \"Vector L1D Cache BW\",\n \"Value\": \"&vecl1_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $cu_per_gpu]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&vecl1_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $cu_per_gpu]}] }\n },\n {\n \"Metric\": \"L2 Cache Hit Rate\",\n \"Value\": \"&l2_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l2_cacheHits_val\"\n },\n {\n \"Metric\": \"L2-Fabric Read BW\",\n \"Value\": \"&eaReadBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": \"$hbmBW\",\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&eaReadBW_val\"] }, $hbmBW] }\n },\n {\n \"Metric\": \"L2-Fabric Write BW\",\n \"Value\": \"&eaWriteBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": \"$hbmBW\",\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&eaWriteBW_val\"] }, $hbmBW] }\n },\n {\n \"Metric\": \"L2-Fabric Read Latency\",\n \"Value\": \"&eaReadLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n },\n {\n \"Metric\": \"L2-Fabric Write Latency\",\n \"Value\": \"&eaWriteLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_LEVEL_WAVES\",\n \"pipeline\": [\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"waveOcc_val\": {\n \"$avg\": { \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\"] }\n },\n \"waveOcc_pop\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\"] },{ \"$multiply\": [$max_waves_per_cu, $cu_per_gpu] }] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave Occupancy\",\n \"Value\": \"&waveOcc_val\",\n \"Unit\": \"Wavefronts\",\n \"peak\": { \"$multiply\": [$max_waves_per_cu, $cu_per_gpu] },\n \"Percent of Peak - PoP\": { \"$multiply\": [100, \"&waveOcc_pop\"] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n ]\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_IFETCH_LEVEL\",\n \"pipeline\": [\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"instrFetchBW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQ_IFETCH\", { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] }, 32] }\n },\n \"instrFetchLat_val\": {\n \"$avg\": { \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\"] }\n }\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Instr Fetch BW\",\n \"Value\": \"&instrFetchBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 32] }, $sqc_per_gpu]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&instrFetchBW_val\"]}, { \"$multiply\": [$sqc_per_gpu, { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 32] }] }] }\n },\n {\n \"Metric\": \"Instr Fetch Latency\",\n \"Value\": \"&instrFetchLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n ]\n }}\n\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"System Speed-of-Light\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"valu_flops_val\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }] }] }\n ]}\n ,{ \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }]\n }},\n \n \"valu_intOps_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] }] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] }\n },\n \n \"mfma_flops_f16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] } },\n \"mfma_flops_bf16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] } },\n \"mfma_flops_f32_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] } },\n \"mfma_flops_f64_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] } },\n \"mfma_flops_i8_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] } },\n \n \n \"salu_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2] }] }\n },\n \n \"valu_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2] }] }\n },\n \n \"mfma_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2, 4] }] }\n },\n \n \"lds_bconf\": {\n \"$avg\": {\"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n } \n },\n \n \"lds_bw\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$lds_banks_per_cu2\"}\n ]}, \n {\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"]}\n ]}\n },\n \n \"lds_bw_pop\": {\n \"$avg\": {\"$divide\": [\n {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$lds_banks_per_cu2\"}\n ]}, \n {\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"]}\n ]}, \n {\"$multiply\": [$sclk2, $cu_per_gpu2, 0.00128]}\n ]}\n },\n \n \"unpredthreads_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \n \"ipcIssue_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\", \"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"eaWriteLat_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\" , 0]},\n { \"$divide\": [\"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\"] },\n null \n ]\n }\n },\n \"eaReadLat_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\" , 0]},\n { \"$divide\": [\"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\"] },\n null \n ]\n }\n },\n \"eaWriteBW_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64] }, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] }\n }, \n \"eaReadBW_val\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32] }, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] }] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] }\n },\n \"l2_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }, 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }] },\n null \n ]\n }\n },\n \"vecl1_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]},\n { \"$subtract\": [100, { \"$divide\": [{ \"$multiply\": [100, { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }] }, \"&TCP_TOTAL_CACHE_ACCESSES_sum\"] }] },\n null\n ]\n }\n },\n \"vecl1_BW_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] } ] }\n },\n \"l1k_cacheHits_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\"]} , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\"]}] },\n null\n ]\n }\n },\n \"l1i_hitRate_val\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\"]}] }\n },\n \"l1i_BW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQC_ICACHE_REQ\",{ \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] } ] }, 64] }\n },\n \"l1k_BW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQC_DCACHE_REQ\", { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] } ] }, 64] }\n }\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"VALU FLOPs\",\n \"Value\": \"&valu_flops_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $cu_per_gpu2, 64, 2 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&valu_flops_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $cu_per_gpu2, 64, 2 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"VALU IOPs\",\n \"Value\": \"&valu_intOps_val\",\n \"Unit\": \"GIOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $cu_per_gpu2, 64, 2 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&valu_intOps_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $cu_per_gpu2, 64, 2 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (BF16)\",\n \"Value\": \"&mfma_flops_bf16_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $cu_per_gpu2, 512 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_bf16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $cu_per_gpu2, 512 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F16)\",\n \"Value\": \"&mfma_flops_f16_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $cu_per_gpu2, 1024 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $cu_per_gpu2, 1024 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F32)\",\n \"Value\": \"&mfma_flops_f32_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $cu_per_gpu2, 256 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f32_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $cu_per_gpu2, 256 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA FLOPs (F64)\",\n \"Value\": \"&mfma_flops_f64_val\",\n \"Unit\": \"GFLOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $cu_per_gpu2, 256 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f64_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $cu_per_gpu2, 256 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"MFMA IOPs (Int8)\",\n \"Value\": \"&mfma_flops_i8_val\",\n \"Unit\": \"GIOP\",\n \"peak\": { \"$divide\": [{ \"$multiply\": [$sclk2, $cu_per_gpu2, 1024 ]}, 1000] },\n \"Percent of Peak - PoP\": {\n \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_i8_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $cu_per_gpu2, 1024 ]}, 1000] }]\n }\n },\n {\n \"Metric\": \"Active CUs\",\n \"Value\": $numActiveCUs2,\n \"Unit\": \"CUs\",\n \"peak\": $cu_per_gpu2,\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, $numActiveCUs2] }, $cu_per_gpu2]}\n },\n \n {\n \"Metric\": \"SALU Util\",\n \"Value\": \"&salu_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&salu_val\"\n },\n {\n \"Metric\": \"VALU Util\",\n \"Value\": \"&valu_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&valu_val\"\n },\n {\n \"Metric\": \"MFMA Util\",\n \"Value\": \"&mfma_val\",\n \"Unit\": \"pct\",\n \"peak\": 100,\n \"Percent of Peak - PoP\": \"&mfma_val\"\n },\n {\n \"Metric\": \"VALU Active Threads/Wave\",\n \"Value\": \"&unpredthreads_val\",\n \"Unit\": \"Threads\",\n \"peak\": 64,\n \"Percent of Peak - PoP\": { \"$multiply\": [\"&unpredthreads_val\", 1.5625]}\n },\n {\n \"Metric\": \"IPC - Issue\",\n \"Value\": \"&ipcIssue_val\",\n \"Unit\": \"Instr/cycle\",\n \"peak\": 5,\n \"Percent of Peak - PoP\": {\"$divide\": [{ \"$multiply\": [100, \"&ipcIssue_val\"] }, 5] }\n },\n {\n \"Metric\": \"LDS BW\",\n \"Value\": \"&lds_bw\",\n \"Unit\": \"GB/sec\",\n \"peak\": {\"$multiply\": [$sclk2, $cu_per_gpu2, 0.128]},\n \"Percent of Peak - PoP\": \"&lds_bw_pop\"\n },\n {\n \"Metric\": \"LDS Bank Conflict\",\n \"Value\": \"&lds_bconf\",\n \"Unit\": \"Conflicts/access\",\n \"peak\": \"32\",\n \"Percent of Peak - PoP\": {\"$divide\": [{ \"$multiply\": [100, \"&lds_bconf\"] }, 32] }\n },\n {\n \"Metric\": \"Instr Cache Hit Rate\",\n \"Value\": \"&l1i_hitRate_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l1i_hitRate_val\"\n }, \n {\n \"Metric\": \"Instr Cache BW\",\n \"Value\": \"&l1i_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $sqc_per_gpu2]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&l1i_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $sqc_per_gpu2]}] }\n },\n {\n \"Metric\": \"Scalar L1D Cache Hit Rate\",\n \"Value\": \"&l1k_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l1k_cacheHits_val\"\n },\n {\n \"Metric\": \"Scalar L1D Cache BW\",\n \"Value\": \"&l1k_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $sqc_per_gpu2]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&l1k_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $sqc_per_gpu2]}] }\n },\n\n {\n \"Metric\": \"Vector L1D Cache Hit Rate\",\n \"Value\": \"&vecl1_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&vecl1_cacheHits_val\"\n },\n {\n \"Metric\": \"Vector L1D Cache BW\",\n \"Value\": \"&vecl1_BW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $cu_per_gpu2]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&vecl1_BW_val\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $cu_per_gpu2]}] }\n },\n {\n \"Metric\": \"L2 Cache Hit Rate\",\n \"Value\": \"&l2_cacheHits_val\",\n \"Unit\": \"pct\",\n \"peak\": \"100\",\n \"Percent of Peak - PoP\": \"&l2_cacheHits_val\"\n }, \n {\n \"Metric\": \"L2-Fabric Read BW\",\n \"Value\": \"&eaReadBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": \"$hbmBW2\",\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&eaReadBW_val\"] }, $hbmBW2] }\n },\n {\n \"Metric\": \"L2-Fabric Write BW\",\n \"Value\": \"&eaWriteBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": \"$hbmBW2\",\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&eaWriteBW_val\"] }, $hbmBW2] }\n },\n {\n \"Metric\": \"L2-Fabric Read Latency\",\n \"Value\": \"&eaReadLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n },\n {\n \"Metric\": \"L2-Fabric Write Latency\",\n \"Value\": \"&eaWriteLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n }\n \n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_LEVEL_WAVES\",\n \"pipeline\": [\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"System Speed-of-Light\"}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"waveOcc_val\": {\n \"$avg\": { \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\"] }\n },\n \"waveOcc_pop\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\"] },{ \"$multiply\": [$max_waves_per_cu2, $cu_per_gpu2] }] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave Occupancy\",\n \"Value\": \"&waveOcc_val\",\n \"Unit\": \"Wavefronts\",\n \"peak\": { \"$multiply\": [$max_waves_per_cu2, $cu_per_gpu2] },\n \"Percent of Peak - PoP\": { \"$multiply\": [100, \"&waveOcc_pop\"] }\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n ]\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_IFETCH_LEVEL\",\n \"pipeline\": [\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"System Speed-of-Light\"}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"instrFetchBW_val\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [\"&SQ_IFETCH\", { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] }, 32] }\n },\n \"instrFetchLat_val\": {\n \"$avg\": { \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\"] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Instr Fetch BW\",\n \"Value\": \"&instrFetchBW_val\",\n \"Unit\": \"GB/s\",\n \"peak\": { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 32] }, $sqc_per_gpu2]},\n \"Percent of Peak - PoP\": { \"$divide\": [{ \"$multiply\": [100, \"&instrFetchBW_val\"]}, { \"$multiply\": [$sqc_per_gpu2, { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 32] }] }] }\n },\n {\n \"Metric\": \"Instr Fetch Latency\",\n \"Value\": \"&instrFetchLat_val\",\n \"Unit\": \"Cycles\",\n \"peak\": \"\",\n \"Percent of Peak - PoP\": \"\"\n\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]\n }}\n\n ]);", - "type": "table" - } - ], - "title": "Speed of Light", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Metric 1": 0, - "Metric 2": 7, - "Percent of Peak - PoP 1": 5, - "Percent of Peak - PoP 2": 6, - "Unit 1": 8, - "Unit 2": 9, - "Value 1": 1, - "Value 2": 2, - "peak 1": 3, - "peak 2": 4 - }, - "renameByName": { - "Percent of Peak - PoP": "Pct-of-Peak", - "Percent of Peak - PoP 1": "Pct-of-Peak (Current)", - "Percent of Peak - PoP 2": "Pct-of-Peak (Baseline)", - "Unit": "", - "Value": "Avg", - "Value 1": "Avg (Current)", - "Value 2": "Avg (Baseline)", - "peak": "Theoretical Max", - "peak 1": "Theoretical Max (Current)", - "peak 2": "Theoretical Max (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Dispatch ID" - }, - "properties": [ - { - "id": "custom.width", - "value": 126 - } - ] - } - ] - }, - "gridPos": { - "h": 29, - "w": 4, - "x": 16, - "y": 2 - }, - "id": 175, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Dispatch ID\": \"&Dispatch_ID\",\n \"Kernel Name\": \"&Kernel_Name\"\n }},\n {\"$sort\": {\n \"Dispatch ID\": 1\n }}\n],\n{ allowDiskUse: true }\n);", - "type": "table" - } - ], - "title": "Dispatch IDs - Current", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": {}, - "renameByName": { - "_id": "Dispatch ID" - } - } - } - ], - "type": "table" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Dispatch ID" - }, - "properties": [ - { - "id": "custom.width", - "value": 127 - } - ] - } - ] - }, - "gridPos": { - "h": 29, - "w": 4, - "x": 20, - "y": 2 - }, - "id": 215, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "tlh8EwUnk" - }, - "rawQuery": true, - "refId": "A", - "target": "$Workload2.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Dispatch ID\": \"&Dispatch_ID\",\n \"Kernel Name\": \"&Kernel_Name\"\n }},\n {\"$sort\": {\n \"Dispatch ID\": 1\n }}\n]);", - "type": "table" - } - ], - "title": "Dispatch IDs - Baseline", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": {}, - "renameByName": { - "_id": "Dispatch ID" - } - } - } - ], - "type": "table" - }, - { - "collapsed": false, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 31 - }, - "id": 36, - "panels": [], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Kernel Statistics", - "type": "row" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "fillOpacity": 80, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineWidth": 1 - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "µs" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 24, - "x": 0, - "y": 32 - }, - "id": 157, - "options": { - "bucketOffset": 0, - "legend": { - "calcs": [], - "displayMode": "hidden", - "placement": "bottom" - } - }, - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "u5Z2zJhnk" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n{\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"elapsedTime1\": {\n \"$divide\": [{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"]}, 1000]\n }\n }},\n\n {\"$project\": {\n \"_id\": 0,\n \"elapsedTime1\": 1\n }}\n]);", - "type": "table" - } - ], - "title": "Kernel Time Histogram", - "transparent": true, - "type": "histogram" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "transparent", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "TotalDuration" - }, - "properties": [ - { - "id": "unit", - "value": "ns" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg Duration" - }, - "properties": [ - { - "id": "unit", - "value": "ns" - }, - { - "id": "custom.width", - "value": 107 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "LDS" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 110 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L1 Cache" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 95 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2 Cache" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 123 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "HBM BW " - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Calls" - }, - "properties": [ - { - "id": "custom.width", - "value": 69 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Name" - }, - "properties": [ - { - "id": "custom.width", - "value": 165 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Total Duration" - }, - "properties": [ - { - "id": "custom.width", - "value": 126 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F16)" - }, - "properties": [ - { - "id": "custom.width", - "value": 143 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (BF16)" - }, - "properties": [ - { - "id": "custom.width", - "value": 155 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F32)" - }, - "properties": [ - { - "id": "custom.width", - "value": 146 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F64)" - }, - "properties": [ - { - "id": "custom.width", - "value": 146 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Throughput" - }, - "properties": [ - { - "id": "unit", - "value": "gflops" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Total FLOPs" - }, - "properties": [ - { - "id": "decimals", - "value": 0 - }, - { - "id": "custom.width", - "value": 141 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "VALU FLOPs" - }, - "properties": [ - { - "id": "decimals", - "value": 0 - }, - { - "id": "custom.width", - "value": 130 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (HBM)" - }, - "properties": [ - { - "id": "custom.width", - "value": 89 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (L2 Cache)" - }, - "properties": [ - { - "id": "custom.width", - "value": 103 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (L1 Cache)" - }, - "properties": [ - { - "id": "custom.width", - "value": 114 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Performance" - }, - "properties": [ - { - "id": "custom.width", - "value": 144 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Peak FLOPs" - }, - "properties": [ - { - "id": "unit", - "value": "gflops" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "HBM" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - } - ] - } - ] - }, - "gridPos": { - "h": 12, - "w": 24, - "x": 0, - "y": 41 - }, - "id": 213, - "interval": "2h", - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [ - { - "desc": true, - "displayName": "L1 Cache (Bytes)" - } - ] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "HV80ot2nz" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n { \"$group\": { \n \"_id\": \"&Kernel_Name\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&End_Timestamp\", \"&Start_Timestamp\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&End_Timestamp\", \"&Start_Timestamp\"]}},\n\n \"Throughput\": {\n \"$avg\": { \"$divide\": [\n \n {\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]},\n {\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"]}\n ]}\n },\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"LDS_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 128 ]} \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n },\n \"hbm_bw\": {\n \"$avg\": {\n \"$divide\": [\n {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n },\n {\"$subtract\":[\"&End_Timestamp\", \"&Start_Timestamp\"]}\n ]\n\n }\n }\n\n }},\n \n {\"$sort\": { \"TotalDuration\": -1 }},\n \n { \"$limit\": $TopN },\n\n {\"$addFields\": {\n \"ai_L1\": { \"$cond\": [\n {\"$ne\": [\"&L1cache_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"]},\n \"\"\n ]},\n \"ai_L2\": { \"$cond\": [\n {\"$ne\": [\"&L2cache_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"]},\n \"\"\n ]},\n \"ai_hbm\": { \"$cond\": [\n {\"$ne\": [\"&hbm_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"]},\n \"\"\n ]}\n }}\n]);", - "type": "table" - } - ], - "title": "Top Kernels", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "AvgDuration": 5, - "Calls": 1, - "L1cache_data": 16, - "L2cache_data": 17, - "LDS_data": 15, - "Throughput": 2, - "TotalDuration": 4, - "_id": 0, - "ai_L1": 6, - "ai_L2": 7, - "ai_hbm": 8, - "hbm_bw": 3, - "hbm_data": 18, - "mfma_flops_bf16": 12, - "mfma_flops_f16": 11, - "mfma_flops_f32": 13, - "mfma_flops_f64": 14, - "total_flops": 9, - "valu_flops": 10 - }, - "renameByName": { - "AvgDuration": "Avg Duration", - "Calls": "", - "L1cache_data": "Vector L1D Cache", - "L2cache_data": "L2 Cache", - "LDS_data": "LDS", - "Throughput": "Performance", - "TotalDuration": "Total Duration", - "_id": "Name", - "ai_L1": "AI (Vector L1D Cache)", - "ai_L2": "AI (L2 Cache)", - "ai_hbm": "AI (HBM)", - "hbm_bw": "HBM BW ", - "hbm_data": "HBM", - "mfma_flops_bf16": "MFMA FLOPs (BF16)", - "mfma_flops_f16": "MFMA FLOPs (F16)", - "mfma_flops_f32": "MFMA FLOPs (F32)", - "mfma_flops_f64": "MFMA FLOPs (F64)", - "peak_flops": "Peak FLOPs", - "total_flops": "Total FLOPs", - "valu_flops": "VALU FLOPs" - } - } - } - ], - "type": "table" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "transparent", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "TotalDuration" - }, - "properties": [ - { - "id": "unit", - "value": "ns" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg Duration" - }, - "properties": [ - { - "id": "unit", - "value": "ns" - }, - { - "id": "custom.width", - "value": 138 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "LDS " - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 110 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L1 Cache" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 95 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2 Cache" - }, - "properties": [ - { - "id": "unit", - "value": "decbytes" - }, - { - "id": "custom.width", - "value": 87 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "HBM BW " - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Calls" - }, - "properties": [ - { - "id": "custom.width", - "value": 69 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Name" - }, - "properties": [ - { - "id": "custom.width", - "value": 165 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Total Duration" - }, - "properties": [ - { - "id": "custom.width", - "value": 153 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F16)" - }, - "properties": [ - { - "id": "custom.width", - "value": 143 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (BF16)" - }, - "properties": [ - { - "id": "custom.width", - "value": 155 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F32)" - }, - "properties": [ - { - "id": "custom.width", - "value": 146 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "MFMA FLOPs (F64)" - }, - "properties": [ - { - "id": "custom.width", - "value": 146 - }, - { - "id": "decimals", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Throughput" - }, - "properties": [ - { - "id": "unit", - "value": "gflops" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Total FLOPs" - }, - "properties": [ - { - "id": "decimals", - "value": 0 - }, - { - "id": "custom.width", - "value": 141 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "VALU FLOPs" - }, - "properties": [ - { - "id": "decimals", - "value": 0 - }, - { - "id": "custom.width", - "value": 130 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (HBM)" - }, - "properties": [ - { - "id": "custom.width", - "value": 89 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (L2 Cache)" - }, - "properties": [ - { - "id": "custom.width", - "value": 103 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "AI (L1 Cache)" - }, - "properties": [ - { - "id": "custom.width", - "value": 114 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "LDS (Bytes)" - }, - "properties": [ - { - "id": "custom.width", - "value": 98 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "HBM" - }, - "properties": [ - { - "id": "custom.width", - "value": 124 - }, - { - "id": "unit", - "value": "decbytes" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Dispatch" - }, - "properties": [ - { - "id": "custom.width", - "value": 108 - } - ] - } - ] - }, - "gridPos": { - "h": 12, - "w": 24, - "x": 0, - "y": 53 - }, - "id": 251, - "interval": "2h", - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "HV80ot2nz" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n { \"$group\": { \n \"_id\": \"&Dispatch_ID\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&End_Timestamp\", \"&Start_Timestamp\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&End_Timestamp\", \"&Start_Timestamp\"]}},\n\n \"Throughput\": {\n \"$avg\": { \"$divide\": [\n \n {\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]},\n {\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"]}\n ]}\n },\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"LDS_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 128]\n } \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n },\n\n \"hbm_bw\": {\n \"$avg\": {\n \"$divide\": [\n {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n },\n {\"$subtract\":[\"&End_Timestamp\", \"&Start_Timestamp\"]}\n ]\n\n }\n }\n\n }},\n \n {\"$sort\": { \"TotalDuration\": -1 }},\n { \"$limit\": $TopN },\n\n {\"$addFields\": {\n \"ai_L1\": { \"$cond\": [\n {\"$ne\": [\"&L1cache_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"]},\n \"\"\n ]},\n \"ai_L2\": { \"$cond\": [\n {\"$ne\": [\"&L2cache_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"]},\n \"\"\n ]},\n \"ai_hbm\": { \"$cond\": [\n {\"$ne\": [\"&hbm_data\", 0]},\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"]},\n \"\"\n ]}\n\n }}\n]);", - "type": "table" - } - ], - "title": "Top Dispatches", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "AvgDuration": 5, - "Calls": 1, - "L1cache_data": 16, - "L2cache_data": 17, - "LDS_data": 15, - "Throughput": 2, - "TotalDuration": 4, - "_id": 0, - "ai_L1": 6, - "ai_L2": 7, - "ai_hbm": 8, - "hbm_bw": 3, - "hbm_data": 18, - "mfma_flops_bf16": 12, - "mfma_flops_f16": 11, - "mfma_flops_f32": 13, - "mfma_flops_f64": 14, - "peak_flops": 19, - "total_flops": 9, - "valu_flops": 10 - }, - "renameByName": { - "AvgDuration": "Avg Duration", - "Calls": "", - "L1cache_data": "Vector L1D Cache", - "L2cache_data": "L2 Cache", - "LDS_data": "LDS ", - "Throughput": "Performance", - "TotalDuration": "Total Duration", - "_id": "Dispatch", - "ai_L1": "AI (Vector L1D Cache)", - "ai_L2": "AI (L2 Cache)", - "ai_hbm": "AI (HBM)", - "hbm_bw": "HBM BW ", - "hbm_data": "HBM", - "mfma_flops_bf16": "MFMA FLOPs (BF16)", - "mfma_flops_f16": "MFMA FLOPs (F16)", - "mfma_flops_f32": "MFMA FLOPs (F32)", - "mfma_flops_f64": "MFMA FLOPs (F64)", - "total_flops": "Total FLOPs", - "valu_flops": "VALU FLOPs" - } - } - } - ], - "type": "table" - }, - { - "collapsed": false, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 65 - }, - "id": 40, - "panels": [], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Memory Chart Analysis", - "type": "row" - }, - { - "description": "All transaction units default to Billion, when per-sec norm is used", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 13, - "w": 24, - "x": 0, - "y": 66 - }, - "id": 285, - "options": { - "addAllIDs": false, - "captureMappings": false, - "eventAutoComplete": true, - "eventSource": "options.animateLogo(svgmap, data);\r\nconsole.log(\"Starting render\");\r\nlet buff = data.series[0].fields[2].values.buffer;\r\nlet valueCount = buff.length;\r\nconsole.log(\"The buff is \", valueCount, \" long\");\r\n\r\nsvgmap.wave_life_.text(buff[0]);\r\nsvgmap.active_cu_.text(buff[1]);\r\nsvgmap.salu_.text(buff[2]);\r\nsvgmap.smem_.text(buff[3]);\r\nsvgmap.valu_.text(buff[4]);\r\nsvgmap.mfma_.text(buff[5]);\r\nsvgmap.vmem_.text(buff[6]);\r\nsvgmap.lds_.text(buff[7]);\r\nsvgmap.gws_.text(buff[8]);\r\nsvgmap.br_.text(buff[9]);\r\nsvgmap.vgpr_.text(buff[10]);\r\nsvgmap.sgpr_.text(buff[11]);\r\nsvgmap.lds_alloc_.text(buff[12]);\r\nsvgmap.scratch_alloc_.text(buff[13]);\r\nsvgmap.wavefronts_.text(buff[14]);\r\nsvgmap.workgroups_.text(buff[15]);\r\nsvgmap.lds_req_.text(buff[16]);\r\nsvgmap.il1_fetch_.text(buff[17]);\r\nsvgmap.il1_hit_.text(buff[18]);\r\nsvgmap.il1_l2_rd_.text(buff[19]);\r\nsvgmap.sl1_rd_.text(buff[20]);\r\nsvgmap.sl1_hit_.text(buff[21]);\r\nsvgmap.sl1_l2_rd_.text(buff[22]);\r\nsvgmap.sl1_l2_wr_.text(buff[23]);\r\nsvgmap.sl1_l2_atom_.text(buff[24]);\r\nsvgmap.vl1_rd_.text(buff[25]);\r\nsvgmap.vl1_wr_.text(buff[26]);\r\nsvgmap.vl1_atom_.text(buff[27]);\r\nsvgmap.vl1_hit_.text(buff[28]);\r\nsvgmap.vl1_lat_.text(buff[29]);\r\nsvgmap.vl1_l2_rd_.text(buff[30]);\r\nsvgmap.vl1_l2_wr_.text(buff[31]);\r\nsvgmap.vl1_l2_atom_.text(buff[32]);\r\nsvgmap.l2_rd_.text(buff[33]);\r\nsvgmap.l2_wr_.text(buff[34])\r\nsvgmap.l2_atom_.text(buff[35]);\r\nsvgmap.l2_hit_.text(buff[36]);\r\nsvgmap.l2_rd_lat_.text(buff[37]);\r\nsvgmap.l2_wr_lat_.text(buff[38]);\r\nsvgmap.fabric_rd_lat_.text(buff[39]);\r\nsvgmap.fabric_wr_lat_.text(buff[40]);\r\nsvgmap.fabric_atom_lat_.text(buff[41]);\r\nsvgmap.l2_fabric_rd_.text(buff[42]);\r\nsvgmap.l2_fabric_wr_.text(buff[43]);\r\nsvgmap.l2_fabric_atom_.text(buff[44]);\r\nsvgmap.hbm_rd_.text(buff[45]);\r\nsvgmap.hbm_wr_.text(buff[46]);\r\nsvgmap.lds_util_.text(buff[47]);\r\nsvgmap.vl1_coales_.text(buff[48]);\r\nsvgmap.vl1_stall_.text(buff[49]);\r\nsvgmap.wave_occ_.text(buff[50]);\r\nsvgmap.lds_lat_.text(buff[51]);\r\nsvgmap.il1_lat_.text(buff[52]);\r\nsvgmap.sl1_lat_.text(buff[53]);\r\nsvgmap.gds_req_.text(buff[54]);", - "initAutoComplete": true, - "initSource": "options.animateLogo = (svgmap, data) => {\r\n \r\n}\r\n ", - "svgMappings": [ - { - "mappedName": "wave_life_", - "svgId": "wave_life" - }, - { - "mappedName": "wave_occ_", - "svgId": "wave_occ" - }, - { - "mappedName": "salu_", - "svgId": "salu" - }, - { - "mappedName": "smem_", - "svgId": "smem" - }, - { - "mappedName": "valu_", - "svgId": "valu" - }, - { - "mappedName": "mfma_", - "svgId": "mfma" - }, - { - "mappedName": "vmem_", - "svgId": "vmem" - }, - { - "mappedName": "lds_", - "svgId": "lds" - }, - { - "mappedName": "gws_", - "svgId": "gws" - }, - { - "mappedName": "br_", - "svgId": "br" - }, - { - "mappedName": "active_cu_", - "svgId": "active_cu" - }, - { - "mappedName": "vgpr_", - "svgId": "vgpr" - }, - { - "mappedName": "sgpr_", - "svgId": "sgpr" - }, - { - "mappedName": "lds_alloc_", - "svgId": "lds_alloc" - }, - { - "mappedName": "scratch_alloc_", - "svgId": "scratch_alloc" - }, - { - "mappedName": "wavefronts_", - "svgId": "wavefronts" - }, - { - "mappedName": "workgroups_", - "svgId": "workgroups" - }, - { - "mappedName": "lds_req_", - "svgId": "lds_req" - }, - { - "mappedName": "vl1_wr_", - "svgId": "vl1_wr" - }, - { - "mappedName": "vl1_atom_", - "svgId": "vl1_atom" - }, - { - "mappedName": "sl1_rd_", - "svgId": "sl1_rd" - }, - { - "mappedName": "il1_fetch_", - "svgId": "il1_fetch" - }, - { - "mappedName": "lds_lat_", - "svgId": "lds_lat" - }, - { - "mappedName": "lds_bw_", - "svgId": "lds_bw" - }, - { - "mappedName": "lds_util_", - "svgId": "lds_util" - }, - { - "mappedName": "vl1_hit_", - "svgId": "vl1_hit" - }, - { - "mappedName": "vl1_lat_", - "svgId": "vl1_lat" - }, - { - "mappedName": "vl1_coales_", - "svgId": "vl1_coales" - }, - { - "mappedName": "vl1_stall_", - "svgId": "vl1_stall" - }, - { - "mappedName": "sl1_hit_", - "svgId": "sl1_hit" - }, - { - "mappedName": "sl1_lat_", - "svgId": "sl1_lat" - }, - { - "mappedName": "il1_hit_", - "svgId": "il1_hit" - }, - { - "mappedName": "il1_lat_", - "svgId": "il1_lat" - }, - { - "mappedName": "sl1_l2_rd_", - "svgId": "sl1_l2_rd" - }, - { - "mappedName": "sl1_l2_wr_", - "svgId": "sl1_l2_wr" - }, - { - "mappedName": "sl1_l2_atom_", - "svgId": "sl1_l2_atom" - }, - { - "mappedName": "il1_l2_rd_", - "svgId": "il1_l2_rd" - }, - { - "mappedName": "sl1_l2_rd_", - "svgId": "sl1_l2_rd" - }, - { - "mappedName": "sl1_l2_wr_", - "svgId": "sl1_l2_wr" - }, - { - "mappedName": "sl1_l2_atom_", - "svgId": "sl1_l2_atom" - }, - { - "mappedName": "l2_rd_", - "svgId": "l2_rd" - }, - { - "mappedName": "l2_wr_", - "svgId": "l2_wr" - }, - { - "mappedName": "l2_atom_", - "svgId": "l2_atom" - }, - { - "mappedName": "l2_hit_", - "svgId": "l2_hit" - }, - { - "mappedName": "l2_rd_lat_", - "svgId": "l2_rd_lat" - }, - { - "mappedName": "l2_wr_lat_", - "svgId": "l2_wr_lat" - }, - { - "mappedName": "l2_fabric_rd_", - "svgId": "l2_fabric_rd" - }, - { - "mappedName": "l2_fabric_wr_", - "svgId": "l2_fabric_wr" - }, - { - "mappedName": "l2_fabric_atom_", - "svgId": "l2_fabric_atom" - }, - { - "mappedName": "fabric_rd_lat_", - "svgId": "fabric_rd_lat" - }, - { - "mappedName": "fabric_wr_lat_", - "svgId": "fabric_wr_lat" - }, - { - "mappedName": "fabric_atom_lat_", - "svgId": "fabric_atom_lat" - }, - { - "mappedName": "fabric_hbm_rd_", - "svgId": "fabric_hbm_rd" - }, - { - "mappedName": "fabric_hbm_wr_", - "svgId": "fabric_hbm_wr" - }, - { - "mappedName": "vl1_rd_", - "svgId": "vl1_rd" - }, - { - "mappedName": "vl1_l2_rd_", - "svgId": "vl1_l2_rd" - }, - { - "mappedName": "vl1_l2_wr_", - "svgId": "vl1_l2_wr" - }, - { - "mappedName": "vl1_l2_atom_", - "svgId": "vl1_l2_atom" - }, - { - "mappedName": "hbm_rd_", - "svgId": "hbm_rd" - }, - { - "mappedName": "hbm_wr_", - "svgId": "hbm_wr" - } - ], - "svgSource": "\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Wave Occupancy\r\n \r\n Wave Life\r\n \r\n \r\n \r\n xGMI /\r\n PCIe\r\n \r\n GMI\r\n \r\n HBM\r\n \r\n Fabric\r\n \r\n \r\n SALU:\r\n 00000\r\n \r\n \r\n SMEM:\r\n 00000\r\n \r\n \r\n VALU:\r\n 00000\r\n \r\n \r\n MFMA:\r\n 00000\r\n \r\n \r\n VMEM:\r\n 00000\r\n \r\n \r\n LDS:\r\n 00000\r\n \r\n \r\n GWS:\r\n 00000\r\n \r\n \r\n Br:\r\n 00000\r\n \r\n \r\n cycles\r\n Rd:\r\n 00000\r\n \r\n \r\n cycles\r\n Wr:\r\n 00000\r\n \r\n \r\n cycles\r\n Atomic:\r\n 00000\r\n \r\n \r\n Rd:\r\n 00000\r\n \r\n \r\n Wr:\r\n \r\n \r\n 00000\r\n \r\n \r\n Atomic:\r\n 00000\r\n \r\n \r\n cycles\r\n Lat:\r\n 00000\r\n \r\n \r\n %\r\n Hit:\r\n 00000\r\n \r\n \r\n cycles\r\n Lat:\r\n 00000\r\n \r\n \r\n %\r\n Hit:\r\n 00000\r\n \r\n \r\n cycles\r\n Lat:\r\n 00000\r\n 00000\r\n Rd:\r\n 00000\r\n Wr:\r\n 00000\r\n Req:\r\n 00000\r\n 00000\r\n 00000\r\n Rd:\r\n Wr:\r\n Atomic:\r\n per-GCD\r\n cycles\r\n \r\n \r\n %\r\n Hit:\r\n 00000\r\n \r\n \r\n cycles\r\n Rd:\r\n 00000\r\n \r\n \r\n cycles\r\n Wr:\r\n 00000\r\n Wave 0 Instr buff\r\n Wave N-1 Instr buff\r\n Active CUs\r\n \r\n \r\n %\r\n Hit:\r\n 00000\r\n \r\n \r\n cycles\r\n Lat:\r\n 00000\r\n \r\n \r\n %\r\n Util:\r\n 00000\r\n \r\n \r\n %\r\n Coales:\r\n 00000\r\n Exec\r\n Instr Buff\r\n Instr Dispatch\r\n LDS\r\n Vector L1 Cache\r\n Scalar L1D Cache\r\n Instr L1 Cache\r\n L2 Cache\r\n 00000\r\n Req:\r\n \r\n \r\n %\r\n Stall:\r\n 00000\r\n 00000\r\n Fetch:\r\n 0000000\r\n 00000\r\n 000/000\r\n \r\n Latency\r\n \r\n LDS Alloc:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 00000\r\n \r\n Scratch Alloc:\r\n \r\n 00000\r\n \r\n Wavefronts:\r\n \r\n 00000\r\n \r\n Workgroups:\r\n \r\n 00000\r\n \r\n VGPRs:\r\n \r\n 00000\r\n \r\n SGPRs:\r\n \r\n 00000\r\n \r\n \r\n 00000\r\n Rd:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 00000\r\n 00000\r\n 00000\r\n Rd:\r\n Wr:\r\n Atomic:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 00000\r\n 00000\r\n 00000\r\n Rd:\r\n Wr:\r\n Atomic:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 00000\r\n 00000\r\n 00000\r\n Rd:\r\n Wr:\r\n Atomic:\r\n \r\n \r\n \r\n Latency\r\n \r\n \r\n \r\n \r\n Text is not SVG - cannot display\r\n \r\n \r\n" - }, - "pluginVersion": "8.4.0", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "rawQuery": true, - "refId": "pmc_perf", - "target": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"wave_life\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [\"&SQ_WAVES\", 0] },\n { \"$multiply\": [4, { \"$divide\": [\"&SQ_WAVE_CYCLES\", \"&SQ_WAVES\"] }] },\n null\n ]\n }\n },\n \"salu\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SALU\", \"&denom\" ] }\n },\n \"smem\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SMEM\", \"&denom\" ] }\n },\n \"valu\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_VALU\", \"&denom\"] }\n },\n \"mfma\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_MFMA\", \"&denom\"] }\n },\n \"vmem\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_VMEM\", \"&denom\"] }\n },\n \"lds_instr\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_LDS\", \"&denom\"] }\n },\n \"gws\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_GDS\", \"&denom\"] }\n },\n \"br\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_BRANCH\", \"&denom\"] }\n },\n \"vgpr\": {\n \"$avg\": \"&Arch_VGPR\"\n },\n \"sgpr\": {\n \"$avg\": \"&SGPR\"\n },\n \"lds_alloc\": {\n \"$avg\": \"&LDS_Per_Workgroup\"\n },\n \"scratch_alloc\": {\n \"$avg\": \"&Scratch_Per_Workitem\"\n },\n \"wavefronts\": {\n \"$avg\": \"&SPI_CSN_WAVE\"\n },\n \"workgroups\": {\n \"$avg\": \"&SPI_CSN_NUM_THREADGROUPS\"\n },\n \"lds_req\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_LDS\", \"&denom\"] }\n }, \n \"lds_util\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [ 100, \"&SQ_LDS_IDX_ACTIVE\" ]}, \n {\"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu]}\n ]}\n },\n \"vl1_rd\": {\n \"$avg\": { \"$divide\": [\"&TCP_TOTAL_READ_sum\", \"&denom\"] }\n },\n \"vl1_wr\": {\n \"$avg\": { \"$divide\": [\"&TCP_TOTAL_WRITE_sum\", \"&denom\"] }\n },\n \"vl1_atom\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"] }\n },\n \"il1_fetch\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n \"il1_hit\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_REQ\"] }\n },\n \"il1_l2_req\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_INST_REQ\", \"&denom\"] }\n },\n \"sl1_rd\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n \"sl1_hit\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQC_DCACHE_REQ\", 0]},\n { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_REQ\"] },\n \"\"\n ]\n }\n},\n \"sl1_l2_rd\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n \"sl1_l2_wr\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n \"sl1_l2_atom\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n \"vl1_hit\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0] },\n { \"$subtract\": [100, { \"$divide\": [{ \"$multiply\": [100, { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }] }, \"&TCP_TOTAL_CACHE_ACCESSES_sum\"] }] },\n null\n ]\n }\n },\n \"vl1_lat\": {\n \"$avg\": { \n \"$cond\": [\n { \"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0] },\n { \"$divide\": [\"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\"] },\n null\n ]\n }\n },\n \"vl1_coales\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_TOTAL_ACCESSES_sum\", 0] },\n { \"$divide\": [{\"$multiply\": [\"&TA_TOTAL_WAVEFRONTS_sum\", 64, 100]}, {\"$multiply\": [\"&TCP_TOTAL_ACCESSES_sum\", 4]}] },\n 0\n ]\n }\n },\n \"vl1_stall\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n \"\"\n ]\n }},\n \"vl1_l2_rd\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_READ_REQ_sum\", \"&denom\"] }\n },\n \"vl1_l2_wr\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"vl1_l2_atom\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }\n },\n \"l2_rd\": {\n \"$avg\": { \"$divide\": [\"&TCC_READ_sum\", \"&denom\"] }\n },\n \"l2_wr\": {\n \"$avg\": { \"$divide\": [\"&TCC_WRITE_sum\", \"&denom\"] }\n },\n \"l2_atom\": {\n \"$avg\": { \"$divide\": [\"&TCC_ATOMIC_sum\", \"&denom\"] }\n },\n \"l2_hit\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [{ \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }, 0] },\n { \"$divide\": [{ \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [\"&TCC_HIT_sum\", \"&TCC_MISS_sum\"] }] },\n null\n ]\n }\n },\n \"l2_rd_lat\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [{ \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }, 0] },\n { \"$divide\": [\"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }] },\n null\n ]\n }\n },\n \"l2_wr_lat\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [{ \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 0] },\n { \"$divide\": [\"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }] },\n null\n ]\n }\n },\n \"fabric_rd_lat\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [\"&TCC_EA_RDREQ_sum\", 0] },\n { \"$divide\": [\"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\"] },\n null\n ]\n }\n },\n \"fabric_wr_lat\": { \n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [\"&TCC_EA_WRREQ_sum\", 0] },\n { \"$divide\": [\"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\"] },\n null\n ]\n }\n },\n \"fabric_atom_lat\": {\n \"$avg\": {\n \"$cond\": [\n { \"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0] },\n { \"$divide\": [\"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\"] },\n null\n ]\n }\n },\n \"l2_fabric_rd\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_RDREQ_sum\", \"&denom\"] }\n },\n \"l2_fabric_wr\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_WRREQ_sum\", \"&denom\"] }\n },\n \"l2_fabric_atom\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_ATOMIC_sum\", \"&denom\"] }\n },\n \"hbm_rd\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\"] }\n },\n \"hbm_wr\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\"] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave Life\",\n \"Alias\": \"wave_life_\",\n \"Value\": { \"$round\": [\"&wave_life\", 0] }\n },\n {\n \"Metric\": \"Active CUs\",\n \"Alias\": \"active_cu_\",\n \"Value\": {\"$concat\": [\"$numActiveCUs\", \"/\", \"$cu_per_gpu\"]}\n },\n {\n \"Metric\": \"SALU\",\n \"Alias\": \"salu_\",\n \"Value\": { \"$round\": [\"&salu\", 0] }\n },\n {\n \"Metric\": \"SMEM\",\n \"Alias\": \"smem_\",\n \"Value\": { \"$round\": [\"&smem\", 0] }\n },\n {\n \"Metric\": \"VALU\",\n \"Alias\": \"valu_\",\n \"Value\": { \"$round\": [\"&valu\", 0] }\n },\n {\n \"Metric\": \"MFMA\",\n \"Alias\": \"mfma_\",\n \"Value\": { \"$round\": [\"&mfma\", 0] }\n },\n {\n \"Metric\": \"VMEM\",\n \"Alias\": \"vmem_\",\n \"Value\": { \"$round\": [\"&vmem\", 0] }\n },\n {\n \"Metric\": \"LDS\",\n \"Alias\": \"lds_\",\n \"Value\": { \"$round\": [\"&lds_instr\", 0] }\n },\n {\n \"Metric\": \"GWS\",\n \"Alias\": \"gws_\",\n \"Value\": { \"$round\": [\"&gws\", 0] }\n },\n {\n \"Metric\": \"BR\",\n \"Alias\": \"br_\",\n \"Value\": { \"$round\": [\"&br\", 0] }\n },\n {\n \"Metric\": \"VGPR\",\n \"Alias\": \"vgpr_\",\n \"Value\": { \"$round\": [\"&vgpr\", 0] }\n },\n {\n \"Metric\": \"SGPR\",\n \"Alias\": \"sgpr_\",\n \"Value\": { \"$round\": [\"&sgpr\", 0] }\n },\n {\n \"Metric\": \"LDS Allocation\",\n \"Alias\": \"lds_alloc_\",\n \"Value\": { \"$round\": [\"&lds_alloc\", 0] }\n },\n {\n \"Metric\": \"Scratch Allocation\",\n \"Alias\": \"scratch_alloc_\",\n \"Value\": { \"$round\": [\"&scratch_alloc\", 0] }\n },\n {\n \"Metric\": \"Wavefronts\",\n \"Alias\": \"wavefronts_\",\n \"Value\": { \"$round\": [\"&wavefronts\", 0] }\n },\n {\n \"Metric\": \"Workgroups\",\n \"Alias\": \"workgroups_\",\n \"Value\": { \"$round\": [\"&workgroups\", 0] }\n },\n {\n \"Metric\": \"LDS Req\",\n \"Alias\": \"lds_req_\",\n \"Value\": { \"$round\": [\"&lds_req\", 0] }\n },\n {\n \"Metric\": \"IL1 Fetch\",\n \"Alias\": \"il1_fetch_\",\n \"Value\": { \"$round\": [\"&il1_fetch\", 0] }\n },\n {\n \"Metric\": \"IL1 Hit\",\n \"Alias\": \"il1_hit_\",\n \"Value\": { \"$round\": [{ \"$multiply\": [\"&il1_hit\", 100] }, 0] }\n },\n {\n \"Metric\": \"IL1_L2 Rd\",\n \"Alias\": \"il1_l2_req_\",\n \"Value\": { \"$round\": [\"&il1_l2_req\", 0] }\n },\n {\n \"Metric\": \"vL1D Rd\",\n \"Alias\": \"sl1_rd_\",\n \"Value\": { \"$round\": [\"&sl1_rd\", 0] }\n },\n {\n \"Metric\": \"vL1D Hit\",\n \"Alias\": \"sl1_hit_\",\n \"Value\": { \"$round\": [{ \"$multiply\": [\"&sl1_hit\", 100] }, 0] }\n },\n {\n \"Metric\": \"vL1D_L2 Rd\",\n \"Alias\": \"sl1_l2_rd_\",\n \"Value\": { \"$round\": [\"&sl1_l2_rd\", 0] }\n },\n {\n \"Metric\": \"vL1D_L2 Wr\",\n \"Alias\": \"sl1_l2_wr_\",\n \"Value\": { \"$round\": [\"&sl1_l2_wr\", 0] }\n },\n {\n \"Metric\": \"vL1D_L2 Atomic\",\n \"Alias\": \"sl1_l2_atom_\",\n \"Value\": { \"$round\": [\"&sl1_l2_atom\", 0] }\n },\n {\n \"Metric\": \"VL1 Rd\",\n \"Alias\": \"vl1_rd_\",\n \"Value\": { \"$round\": [\"&vl1_rd\", 0] }\n },\n {\n \"Metric\": \"VL1 Wr\",\n \"Alias\": \"vl1_wr_\",\n \"Value\": { \"$round\": [\"&vl1_wr\", 0] }\n },\n {\n \"Metric\": \"VL1 Atomic\",\n \"Alias\": \"vl1_atom_\",\n \"Value\": { \"$round\": [\"&vl1_atom\", 0] }\n },\n {\n \"Metric\": \"VL1 Hit\",\n \"Alias\": \"vl1_hit_\",\n \"Value\": { \"$round\": [\"&vl1_hit\", 0] }\n },\n {\n \"Metric\": \"VL1 Lat\",\n \"Alias\": \"vl1_lat_\",\n \"Value\": { \"$round\": [\"&vl1_lat\", 0] }\n },\n {\n \"Metric\": \"VL1_L2 Rd\",\n \"Alias\": \"vl1_l2_rd_\",\n \"Value\": { \"$round\": [\"&vl1_l2_rd\", 0] }\n },\n {\n \"Metric\": \"VL1_L2 Wr\",\n \"Alias\": \"vl1_l2_wr_\",\n \"Value\": { \"$round\": [\"&vl1_l2_wr\", 0] }\n },\n {\n \"Metric\": \"vL1_L2 Atomic\",\n \"Alias\": \"vl1_l2_atom_\",\n \"Value\": { \"$round\": [\"&vl1_l2_atom\", 0] }\n },\n {\n \"Metric\": \"L2 Rd\",\n \"Alias\": \"l2_rd_\",\n \"Value\": { \"$round\": [\"&l2_rd\", 0] }\n },\n {\n \"Metric\": \"L2 Wr\",\n \"Alias\": \"l2_wr_\",\n \"Value\": { \"$round\": [\"&l2_wr\", 0] }\n },\n {\n \"Metric\": \"L2 Atomic\",\n \"Alias\": \"l2_atom_\",\n \"Value\": { \"$round\": [\"&l2_atom\", 0] }\n },\n {\n \"Metric\": \"L2 Hit\",\n \"Alias\": \"l2_hit_\",\n \"Value\": { \"$round\": [\"&l2_hit\", 0] }\n },\n {\n \"Metric\": \"L2 Rd Lat\",\n \"Alias\": \"l2_rd_lat_\",\n \"Value\": { \"$round\": [\"&l2_rd_lat\", 0] }\n },\n {\n \"Metric\": \"L2 Wr Lat\",\n \"Alias\": \"l2_wr_lat_\",\n \"Value\": { \"$round\": [\"&l2_wr_lat\", 0] }\n },\n {\n \"Metric\": \"Fabric Rd Lat\",\n \"Alias\": \"fabric_rd_lat_\",\n \"Value\": { \"$round\": [\"&fabric_rd_lat\", 0] }\n },\n {\n \"Metric\": \"Fabric Wr Lat\",\n \"Alias\": \"fabric_wr_lat_\",\n \"Value\": { \"$round\": [\"&fabric_wr_lat\", 0] }\n },\n {\n \"Metric\": \"Fabric Atomic Lat\",\n \"Alias\": \"fabric_atom_lat_\",\n \"Value\": { \"$round\": [\"&fabric_atom_lat\", 0] }\n },\n {\n \"Metric\": \"Fabric_L2 Rd\",\n \"Alias\": \"l2_fabric_rd_\",\n \"Value\": { \"$round\": [\"&l2_fabric_rd\", 0] }\n },\n {\n \"Metric\": \"Fabric_L2 Wr\",\n \"Alias\": \"l2_fabric_wr_\",\n \"Value\": { \"$round\": [\"&l2_fabric_wr\", 0] }\n },\n {\n \"Metric\": \"Fabric_l2 Atomic\",\n \"Alias\": \"l2_fabric_atom_\",\n \"Value\": { \"$round\": [\"&l2_fabric_atom\", 0] }\n },\n {\n \"Metric\": \"HBM Rd\",\n \"Alias\": \"hbm_rd_\",\n \"Value\": { \"$round\": [\"&hbm_rd\", 0] }\n },\n {\n \"Metric\": \"HBM Wr\",\n \"Alias\": \"hbm_wr_\",\n \"Value\": { \"$round\": [\"&hbm_wr\", 0] }\n },\n {\n \"Metric\": \"LDS Util\",\n \"Alias\": \"lds_util_\",\n \"Value\": { \"$round\": [\"&lds_util\", 0] }\n },\n {\n \"Metric\": \"VL1 Coalesce\",\n \"Alias\": \"vl1_coales_\",\n \"Value\": { \"$round\": [\"&vl1_coales\", 0]}\n },\n {\n \"Metric\": \"VL1 Stall\",\n \"Alias\": \"vl1_stall_\",\n \"Value\": { \"$round\": [\"&vl1_stall\", 0]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"$array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"$array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_LEVEL_WAVES", - "target": "$Workload1.SQ_LEVEL_WAVES.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"wave_occ\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\",\"&GRBM_GUI_ACTIVE\"] }, $numActiveCUs]}\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave Occupancy\",\n \"Alias\": \"wave_occ_\",\n \"Value\":{ \"$round\": [\"&wave_occ\", 0] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_LDS", - "target": "$Workload1.SQ_INST_LEVEL_LDS.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"lds_lat\": {\n \"$avg\": { \n \"$cond\": [\n { \"$ne\": [\"&SQ_INSTS_LDS\", 0] },\n { \"$divide\": [\"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\"] },\n null\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"LDS Lat\",\n \"Alias\": \"lds_lat_\",\n \"Value\":{ \"$round\": [\"&LDS_Per_Workgroup\", 0] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQC_ICACHE_INFLIGHT", - "target": "$Workload1.pmc_perf.aggregate([\n\t{\"$match\": {\n\t\t\"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \t\t\"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \t\t\"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n \t}},\n\t{\"$lookup\": {\n\t\t\"from\": \"SQ_IFETCH_LEVEL\",\n\t\t\"localField\": \"Dispatch_ID\",\n\t\t\"foreignField\": \"Dispatch_ID\",\n\t\t\"as\": \"SQ_IFETCH_LEVEL\",\n\t\t\"pipeline\": [\n\t\t\t{\"$match\": {\n\t\t\t\t\"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \t\t\t\t\"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \t\t\t\t\"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n \t\t\t}},\n\t\t\t{\"$project\":{\n\t\t\t\t\"_id\": 0,\n\t\t\t\t\"SQ_ACCUM_PREV_HIRES\": 1\n\t\t\t}}\n\t\t]\n\t}},\n\t{\"$unwind\":{\n\t\t\"path\": \"&SQ_IFETCH_LEVEL\"\n\t}},\n\t{\"$group\":{\n\t\t\"_id\": null,\n\t\t\"il1_lat\": {\n\t\t\t\"$avg\":{\n\t\t\t\t\"$cond\":[\n\t\t\t\t\t\t{\"$ne\":[\"&SQC_ICACHE_REQ\",0]},\n\t\t\t\t\t\t{\"$divide\":[\"&SQ_IFETCH_LEVEL.SQ_ACCUM_PREV_HIRES\",\"&SQC_ICACHE_REQ\"]},\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t}\n\t\t} \n\t}},\n\t{\"$set\": {\n \t\t\"array\": [\n \t\t{\n \t\t\t\"Metric\": \"IL1 Lat\",\n \t\t\t\"Alias\": \"il1_lat_\",\n \t\t\t\"Value\": { \"$round\": [\"&il1_lat\", 0] }\n \t\t}\n \t\t]\n\t}},\n \t{\"$unwind\": {\n \t\t\"path\": \"&array\"\n \t}},\n \t{\"$replaceRoot\": {\n \t\t\"newRoot\": \"&array\"\n \t}}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQC_DCACHE_INFLIGHT_LEVEL", - "target": "$Workload1.pmc_perf.aggregate([\n\t{\"$match\": {\n\t\t\"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \t\t\"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \t\t\"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n \t}},\n\t{\"$lookup\": {\n\t\t\"from\": \"SQ_IFETCH_LEVEL\",\n\t\t\"localField\": \"Dispatch_ID\",\n\t\t\"foreignField\": \"Dispatch_ID\",\n\t\t\"as\": \"SQ_IFETCH_LEVEL\",\n\t\t\"pipeline\": [\n\t\t\t{\"$match\": {\n\t\t\t\t\"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \t\t\t\t\"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \t\t\t\t\"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n \t\t\t}},\n\t\t\t{\"$project\":{\n\t\t\t\t\"_id\": 0,\n\t\t\t\t\"SQ_ACCUM_PREV_HIRES\": 1\n\t\t\t}}\n\t\t]\n\t}},\n\t{\"$unwind\":{\n\t\t\"path\": \"&SQ_IFETCH_LEVEL\"\n\t}},\n\t{\"$group\":{\n\t\t\"_id\": null,\n\t\t\"sl1_lat\": {\n\t\t\t\"$avg\":{\n\t\t\t\t\"$cond\":[\n\t\t\t\t\t\t{\"$ne\":[\"&SQC_DCACHE_REQ\",0]},\n\t\t\t\t\t\t{\"$divide\":[\"&SQ_IFETCH_LEVEL.SQ_ACCUM_PREV_HIRES\",\"&SQC_DCACHE_REQ\"]},\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t}\n\t\t} \n\t}},\n\t{\"$set\": {\n \t\t\"array\": [\n \t\t{\n \t\t\t\"Metric\": \"vL1D Lat\",\n \t\t\t\"Alias\": \"sl1_lat_\",\n \t\t\t\"Value\": { \"$round\": [\"&sl1_lat\", 0] }\n \t\t}\n \t\t]\n\t}},\n \t{\"$unwind\": {\n \t\t\"path\": \"&array\"\n \t}},\n \t{\"$replaceRoot\": {\n \t\t\"newRoot\": \"&array\"\n \t}}\n]);", - "type": "table" - } - ], - "title": "Memory Chart (Normalization: $normUnit\")", - "transformations": [ - { - "id": "convertFieldType", - "options": { - "conversions": [ - { - "destinationType": "string", - "targetField": "Value" - } - ], - "fields": {} - } - }, - { - "id": "merge", - "options": {} - } - ], - "type": "amd-custom-svg" - }, - { - "collapsed": false, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 79 - }, - "id": 241, - "panels": [], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Roofline Analysis", - "type": "row" - }, - { - "gridPos": { - "h": 28, - "w": 24, - "x": 0, - "y": 80 - }, - "id": 253, - "pconfig": { - "fixScale": "", - "layout": { - "dragmode": "zoom", - "font": { - "family": "\"Open Sans\", Helvetica, Arial, sans-serif" - }, - "hovermode": "closest", - "legend": { - "orientation": "v" - }, - "showlegend": true, - "xaxis": { - "range": [ - -2, - 3.8 - ], - "rangemode": "between", - "showgrid": true, - "title": "Arithmetic Intensity (FLOP/Byte)", - "type": "log", - "zeroline": false - }, - "yaxis": { - "rangemode": "normal", - "showgrid": true, - "title": "Performance (GFLOP/sec)", - "type": "log", - "zeroline": false - }, - "zaxis": { - "rangemode": "normal", - "showgrid": true, - "type": "linear", - "zeroline": false - } - }, - "loadFromCDN": false, - "settings": { - "displayModeBar": false, - "type": "scatter" - }, - "showAnnotations": true, - "traces": [ - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "xrange", - "y": "roofline_hbm" - }, - "name": "HBM-VLAU", - "settings": { - "color_option": "ramp", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#33B5E5", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 15, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "circle" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "xrange", - "y": "roofline_L2" - }, - "name": "L2-VALU", - "settings": { - "color_option": "ramp", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#33B5E5", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 15, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "circle" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "xrange", - "y": "roofline_L1" - }, - "name": "vL1D-VALU", - "settings": { - "color_option": "ramp", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#33B5E5", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 15, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "circle" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "LDSBw_peak", - "x": "xrange", - "y": "roofline_LDS" - }, - "name": "LDS-VALU", - "settings": { - "color_option": "ramp", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#33B5E5", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 15, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "circle" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "cur_ai_hbm", - "y": "cur_perf" - }, - "name": "Cur - HBM", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#F2495C", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "square" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "cur_ai_L2", - "y": "cur_perf" - }, - "name": "Cur - L2", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#5794F2", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "diamond" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "cur_ai_L1", - "y": "cur_perf" - }, - "name": "Cur - vL1D", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "base_ai_hbm", - "y": "base_perf" - }, - "name": "Baseline - HBM", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#F2495C", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "square-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "base_ai_L2", - "y": "base_perf" - }, - "name": "Baseline - L2", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#5794F2", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "diamond-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "base_ai_L1", - "y": "base_perf" - }, - "name": "Baseline - vL1D", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "xrange", - "y": "roofline_hbm_MFMA" - }, - "name": "HBM-MFMA", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "xrange", - "y": "roofline_L2_MFMA" - }, - "name": "L2-MFMA", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "xrange", - "y": "roofline_L1_MFMA" - }, - "name": "vL1D-MFMA", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "LDSBw_peak", - "x": "xrange", - "y": "roofline_LDS_MFMA" - }, - "name": "LDS-MFMA", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - } - ] - }, - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "rawQuery": true, - "refId": "HBM-VALU", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&FP32Flops\", \"&FP64Flops\"]\n },\n \"then\": \"&FP64Flops\",\n \"else\": \"&FP32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_hbm\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&hbm_bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&hbm_bw\"] },\n \"else\": \"$high_flop\"\n }\n },\n \"hbmBw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&hbm_bw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "HBM-MFMA", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&MFMAF32Flops\", \"&MFMAF64Flops\"]\n },\n \"then\": \"&MFMAF64Flops\",\n \"else\": \"&MFMAF32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_hbm_MFMA\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&hbm_bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&hbm_bw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L2-VALU", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&FP32Flops\", \"&FP64Flops\"]\n },\n \"then\": \"&FP64Flops\",\n \"else\": \"&FP32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L2\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L2Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L2Bw\"] },\n \"else\": \"$high_flop\"\n }\n },\n\n \"L2Bw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&L2Bw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L1-VALU", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&FP32Flops\", \"&FP64Flops\"]\n },\n \"then\": \"&FP64Flops\",\n \"else\": \"&FP32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L1\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L1Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L1Bw\"] },\n \"else\": \"&high_flop\"\n }\n },\n\n \"L1Bw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&L1Bw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "LDS", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&FP32Flops\", \"&FP64Flops\"]\n },\n \"then\": \"&FP64Flops\",\n \"else\": \"&FP32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_LDS\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&LDSBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&LDSBw\"] },\n \"else\": \"$high_flop\"\n }\n },\n\n \"LDSBw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&LDSBw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "Cur Workload", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n { \"$group\": { \n \"_id\": \"&Kernel_Name\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&End_Timestamp\", \"&Start_Timestamp\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&End_Timestamp\", \"&Start_Timestamp\"]}},\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"lds_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$lds_banks_per_cu\"}\n ]\n } \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n }\n\n\n }},\n {\"$sort\": { \"TotalDuration\": -1 }},\n { \"$limit\": 10 },\n {\"$project\": {\n \"_id\": 0,\n \"Kernel\": \"&Kernel_Name\",\n \"cur_ai_L1\": {\n \"$cond\": [\n { \"$ne\": [\"&L1cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"] },\n 0\n ]\n },\n \"cur_ai_L2\": {\n \"$cond\": [\n { \"$ne\": [\"&L2cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"] },\n 0\n ]\n },\n \"cur_ai_hbm\": {\n \"$cond\": [\n { \"$ne\": [\"&hbm_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"] },\n 0\n ]\n },\n \"cur_perf\": { \n \"$cond\": [\n { \"$ne\": [\"&AvgDuration\", 0] },\n { \"$divide\": [\"&total_flops\", \"&AvgDuration\"] },\n 0\n ]\n }\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "Baseline Workload", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Roofline)\"}}\n }},\n { \"$group\": { \n \"_id\": \"&Kernel_Name\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&End_Timestamp\", \"&Start_Timestamp\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&End_Timestamp\", \"&Start_Timestamp\"]}},\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"lds_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$lds_banks_per_cu\"}\n ]\n } \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n }\n\n\n }},\n {\"$sort\": { \"TotalDuration\": -1 }},\n { \"$limit\": 10 },\n {\"$project\": {\n \"_id\": 0,\n \"Kernel\": \"&Kernel_Name\",\n \"base_ai_L1\": {\n \"$cond\": [\n { \"$ne\": [\"&L1cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"] },\n 0\n ]\n },\n \"base_ai_L2\": {\n \"$cond\": [\n { \"$ne\": [\"&L2cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"] },\n 0\n ]\n },\n \"base_ai_hbm\": {\n \"$cond\": [\n { \"$ne\": [\"&hbm_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"] },\n 0\n ]\n },\n \"base_perf\": { \n \"$cond\": [\n { \"$ne\": [\"&AvgDuration\", 0] },\n { \"$divide\": [\"&total_flops\", \"&AvgDuration\"] },\n 0\n ]\n }\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L2-MFMA", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&MFMAF32Flops\", \"&MFMAF64Flops\"]\n },\n \"then\": \"&MFMAF64Flops\",\n \"else\": \"&MFMAF32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L2_MFMA\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L2Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L2Bw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L1-MFMA", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&MFMAF32Flops\", \"&MFMAF64Flops\"]\n },\n \"then\": \"&MFMAF64Flops\",\n \"else\": \"&MFMAF32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L1_MFMA\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L1Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L1Bw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "jYrBWHfnz" - }, - "hide": false, - "rawQuery": true, - "refId": "LDS-MFMA", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [\"&MFMAF32Flops\", \"&MFMAF64Flops\"]\n },\n \"then\": \"&MFMAF64Flops\",\n \"else\": \"&MFMAF32Flops\"\n }\n }\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_LDS_MFMA\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&LDSBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&LDSBw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - } - ], - "title": "Empirical Roofline FP32/FP64 (MI200)", - "type": "natel-plotly-panel", - "version": 1 - }, - { - "gridPos": { - "h": 28, - "w": 24, - "x": 0, - "y": 108 - }, - "id": 312, - "pconfig": { - "fixScale": "", - "layout": { - "dragmode": "zoom", - "font": { - "family": "\"Open Sans\", Helvetica, Arial, sans-serif" - }, - "hovermode": "closest", - "legend": { - "orientation": "v" - }, - "showlegend": true, - "xaxis": { - "range": [ - -2, - 3.8 - ], - "rangemode": "between", - "showgrid": true, - "title": "Arithmetic Intensity (FLOP/Byte)", - "type": "log", - "zeroline": false - }, - "yaxis": { - "rangemode": "normal", - "showgrid": true, - "title": "Performance (GFLOP/sec)", - "type": "log", - "zeroline": false - }, - "zaxis": { - "rangemode": "normal", - "showgrid": true, - "type": "linear", - "zeroline": false - } - }, - "loadFromCDN": false, - "settings": { - "displayModeBar": false, - "type": "scatter" - }, - "showAnnotations": true, - "traces": [ - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "cur_ai_hbm", - "y": "cur_perf" - }, - "name": "Cur - HBM", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#F2495C", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "square" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "cur_ai_L2", - "y": "cur_perf" - }, - "name": "Cur - L2", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#5794F2", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "diamond" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "cur_ai_L1", - "y": "cur_perf" - }, - "name": "Cur - vL1D", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "base_ai_hbm", - "y": "base_perf" - }, - "name": "Baseline - HBM", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#F2495C", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "square-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "base_ai_L2", - "y": "base_perf" - }, - "name": "Baseline - L2", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#5794F2", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "diamond-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "base_ai_L1", - "y": "base_perf" - }, - "name": "Baseline - vL1D", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": false, - "markers": true - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "xrange", - "y": "roofline_hbm_MFMA_fp16" - }, - "name": "HBM-MFMA-FP16", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "xrange", - "y": "roofline_L2_MFMA_fp16" - }, - "name": "L2-MFMA-FP16", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "xrange", - "y": "roofline_L1_MFMA_fp16" - }, - "name": "vL1D-MFMA-FP16", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "LDSBw_peak", - "x": "xrange", - "y": "roofline_LDS_MFMA_fp16" - }, - "name": "LDS-MFMA-FP16", - "settings": { - "color_option": "solid", - "line": { - "color": "#005f81", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "hbmBw_peak", - "x": "xrange", - "y": "roofline_hbm_MFMA_i8" - }, - "name": "HBM-MFMA-I8", - "settings": { - "color_option": "solid", - "line": { - "color": "#FA6400", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L2Bw_peak", - "x": "xrange", - "y": "roofline_L2_MFMA_i8" - }, - "name": "L2-MFMA-I8", - "settings": { - "color_option": "solid", - "line": { - "color": "#FA6400", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "L1Bw_peak", - "x": "xrange", - "y": "roofline_L1_MFMA_i8" - }, - "name": "vL1D-MFMA-I8", - "settings": { - "color_option": "solid", - "line": { - "color": "#FA6400", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - }, - { - "mapping": { - "color": "n", - "text": "LDSBw_peak", - "x": "xrange", - "y": "roofline_LDS_MFMA_i8" - }, - "name": "LDS-MFMA-I8", - "settings": { - "color_option": "solid", - "line": { - "color": "#FA6400", - "dash": "solid", - "shape": "linear", - "width": 2 - }, - "marker": { - "color": "#B877D9", - "colorscale": "YlOrRd", - "line": { - "color": "#DDD", - "width": 0 - }, - "showscale": false, - "size": 12, - "sizemin": 3, - "sizemode": "diameter", - "sizeref": 0.2, - "symbol": "star-open" - } - }, - "show": { - "line": true, - "lines": true, - "markers": false - } - } - ] - }, - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "HBM-MFMA-FP16", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAF16Flops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_hbm_MFMA_fp16\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&hbm_bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&hbm_bw\"] },\n \"else\": \"$high_flop\"\n }\n },\n \"hbmBw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&hbm_bw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "HBM-MFMA-I8", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAI8Ops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_hbm_MFMA_i8\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&hbm_bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&hbm_bw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "Cur Workload", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n { \"$group\": { \n \"_id\": \"&Kernel_Name\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&End_Timestamp\", \"&Start_Timestamp\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&End_Timestamp\", \"&Start_Timestamp\"]}},\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"lds_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$lds_banks_per_cu\"}\n ]\n } \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n }\n\n\n }},\n {\"$sort\": { \"TotalDuration\": -1 }},\n { \"$limit\": 10 },\n {\"$project\": {\n \"_id\": 0,\n \"Kernel\": \"&Kernel_Name\",\n \"cur_ai_L1\": {\n \"$cond\": [\n { \"$ne\": [\"&L1cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"] },\n 0\n ]\n },\n \"cur_ai_L2\": {\n \"$cond\": [\n { \"$ne\": [\"&L2cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"] },\n 0\n ]\n },\n \"cur_ai_hbm\": {\n \"$cond\": [\n { \"$ne\": [\"&hbm_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"] },\n 0\n ]\n },\n \"cur_perf\": { \n \"$cond\": [\n { \"$ne\": [\"&AvgDuration\", 0] },\n { \"$divide\": [\"&total_flops\", \"&AvgDuration\"] },\n 0\n ]\n }\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "Baseline Workload", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Roofline)\"}}\n }},\n { \"$group\": { \n \"_id\": \"&Kernel_Name\", \n \"Calls\": { \"$sum\": 1} ,\n \"TotalDuration\": { \"$sum\": {\"$subtract\":[\"&End_Timestamp\", \"&Start_Timestamp\"]}},\n \"AvgDuration\": { \"$avg\": {\"$subtract\":[\"&End_Timestamp\", \"&Start_Timestamp\"]}},\n\n \"total_flops\": {\n \"$avg\":{\"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] },\n { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }\n ]}\n },\n\n \"valu_flops\": {\n \"$avg\": { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }, \"&SQ_INSTS_VALU_TRANS_F16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }, \"&SQ_INSTS_VALU_TRANS_F32\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }, \"&SQ_INSTS_VALU_TRANS_F64\"] }] }\n ]}\n },\n \n \"mfma_flops_f16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] } },\n \"mfma_flops_bf16\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] } },\n \"mfma_flops_f32\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] } },\n \"mfma_flops_f64\": { \"$avg\": { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] } },\n\n\n \"lds_data\": {\n \"$avg\": { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$lds_banks_per_cu\"}\n ]\n } \n },\n\n \"L1cache_data\": {\n \"$avg\": { \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64] } \n },\n\n \"L2cache_data\": {\n \"$avg\": {\n \"$multiply\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \n \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, 64]}\n },\n\n \"hbm_data\": {\n \"$avg\": {\n \"$add\": [ { \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] },\n { \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]},\n { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] }\n ]\n }\n }\n\n\n }},\n {\"$sort\": { \"TotalDuration\": -1 }},\n { \"$limit\": 10 },\n {\"$project\": {\n \"_id\": 0,\n \"Kernel\": \"&Kernel_Name\",\n \"base_ai_L1\": {\n \"$cond\": [\n { \"$ne\": [\"&L1cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L1cache_data\"] },\n 0\n ]\n },\n \"base_ai_L2\": {\n \"$cond\": [\n { \"$ne\": [\"&L2cache_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&L2cache_data\"] },\n 0\n ]\n },\n \"base_ai_hbm\": {\n \"$cond\": [\n { \"$ne\": [\"&hbm_data\", 0] },\n {\"$divide\": [\"&total_flops\", \"&hbm_data\"] },\n 0\n ]\n },\n \"base_perf\": { \n \"$cond\": [\n { \"$ne\": [\"&AvgDuration\", 0] },\n { \"$divide\": [\"&total_flops\", \"&AvgDuration\"] },\n 0\n ]\n }\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L2-MFMA-FP16", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAF16Flops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L2_MFMA_fp16\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L2Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L2Bw\"] },\n \"else\": \"$high_flop\"\n }\n },\n \"L2Bw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&L2Bw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L2-MFMA-I8", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAI8Ops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L2_MFMA_i8\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L2Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L2Bw\"] },\n \"else\": \"$high_flop\"\n }\n }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L1-MFMA-FP16", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAF16Flops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L1_MFMA_fp16\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L1Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L1Bw\"] },\n \"else\": \"$high_flop\"\n }\n },\n \"L1Bw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&L1Bw\", 1] },0, 32]}, \" GB/s\"] }\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "LJKvMZank" - }, - "hide": false, - "rawQuery": true, - "refId": "L1-MFMA-I8", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAI8Ops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_L1_MFMA_i8\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&L1Bw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&L1Bw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "jYrBWHfnz" - }, - "hide": false, - "rawQuery": true, - "refId": "LDS-MFMA-FP16", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAF16Flops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_LDS_MFMA_fp16\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&LDSBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&LDSBw\"] },\n \"else\": \"$high_flop\"\n }\n },\n \"LDSBw_peak\": { \"$concat\": [{\"$substr\":[{ \"$round\":[\"&LDSBw\", 1] },0, 32]}, \" GB/s\"] }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "jYrBWHfnz" - }, - "hide": false, - "rawQuery": true, - "refId": "LDS-MFMA-I8", - "target": "${Workload1}.roofline.aggregate([\n {\"$match\": {\n \"device\": { \"$in\": [${gpuFilter:raw}] }\n }},\n { \"$addFields\": {\n \"xaxis\": {\"$range\": [0, 50000]}\n }},\n { \"$addFields\": {\n \"high_flop\": \"&MFMAI8Ops\"\n }},\n { \"$addFields\": {\n \"cte\": {\n \"$map\": {\n \"input\": \"$xaxis\",\n \"as\": \"n\",\n \"in\": {\n \"xrange\": {\"$multiply\": [0.1, \"$$n\"]},\n \"roofline_LDS_MFMA_i8\": {\n \"$cond\": {\n \"if\": {\n \"$lt\": [ {\"$multiply\": [0.1, \"$$n\", \"&LDSBw\"]}, \"$high_flop\" ]\n },\n \"then\": { \"$multiply\": [0.1, \"$$n\", \"&LDSBw\"] },\n \"else\": \"$high_flop\"\n }\n }\n\n } \n }}\n }},\n \n {\"$unwind\": \"$cte\"\n },\n {\"$replaceRoot\": {\n \"newRoot\": \"$cte\"\n }}\n]);", - "type": "table" - } - ], - "title": "Empirical Roofline FP16/INT8 (MI200)", - "type": "natel-plotly-panel", - "version": 1 - }, - { - "collapsed": false, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 136 - }, - "id": 2, - "panels": [], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Command Processor (CPC/CPF)", - "type": "row" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 115 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 118 - } - ] - } - ] - }, - "gridPos": { - "h": 13, - "w": 13, - "x": 0, - "y": 137 - }, - "id": 6, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1 \n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"gpuBusy_avg\": {\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\": {\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\": {\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n\n \"cpfBusy_avg\": {\"$avg\": \"&CPF_CPF_STAT_BUSY\"},\n \"cpfBusy_min\": {\"$min\": \"&CPF_CPF_STAT_BUSY\"},\n \"cpfBusy_max\": {\"$max\": \"&CPF_CPF_STAT_BUSY\"},\n\n \"cpfUtil_avg\": {\"$avg\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n \"cpfUtil_min\": {\"$min\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n \"cpfUtil_max\": {\"$max\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n\n \"cpfStall_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n \"cpfStall_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n \"cpfStall_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n\n \"l2CacheBusy_avg\": {\"$avg\": \"&CPF_CPF_TCIU_BUSY\"},\n \"l2CacheBusy_min\": {\"$min\": \"&CPF_CPF_TCIU_BUSY\"},\n \"l2CacheBusy_max\": {\"$max\": \"&CPF_CPF_TCIU_BUSY\"},\n\n \"l2CacheUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheStall_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n \"l2CacheStall_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n \"l2CacheStall_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n\n \"utcL1Stall_avg\": {\"$avg\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_min\": {\"$min\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_max\": {\"$max\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"}\n\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy Cycles\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"CPF Busy\",\n \"Avg\": \"&cpfBusy_avg\",\n \"Min\": \"&cpfBusy_min\",\n \"Max\": \"&cpfBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"CPF Util\",\n \"Avg\": \"&cpfUtil_avg\",\n \"Min\": \"&cpfUtil_min\",\n \"Max\": \"&cpfUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPF Stall\",\n \"Avg\": \"&cpfStall_avg\",\n \"Min\": \"&cpfStall_min\",\n \"Max\": \"&cpfStall_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"L2Cache Intf Busy\",\n \"Avg\": \"&l2CacheBusy_avg\",\n \"Min\": \"&l2CacheBusy_min\",\n \"Max\": \"&l2CacheBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"L2Cache Intf Util\",\n \"Avg\": \"&l2CacheUtil_avg\",\n \"Min\": \"&l2CacheUtil_min\",\n \"Max\": \"&l2CacheUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"L2Cache Intf Stall\",\n \"Avg\": \"&l2CacheStall_avg\",\n \"Min\": \"&l2CacheStall_min\",\n \"Max\": \"&l2CacheStall_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"UTCL1 Stall\",\n \"Avg\": \"&utcL1Stall_avg\",\n \"Min\": \"&utcL1Stall_min\",\n \"Max\": \"&utcL1Stall_max\", \n \"Unit\": \"Cycles/Kernel\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Command Processor)\"}}\n }},\n\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1 \n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"gpuBusy_avg\": {\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\": {\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\": {\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n \"cpfBusy_avg\": {\"$avg\": \"&CPF_CPF_STAT_BUSY\"},\n \"cpfBusy_min\": {\"$min\": \"&CPF_CPF_STAT_BUSY\"},\n \"cpfBusy_max\": {\"$max\": \"&CPF_CPF_STAT_BUSY\"},\n\n \"cpfUtil_avg\": {\"$avg\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n \"cpfUtil_min\": {\"$min\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n \"cpfUtil_max\": {\"$max\": {\n \"$cond\":[\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }, 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_BUSY\"] }, { \"$add\": [\"&CPF_CPF_STAT_BUSY\", \"&CPF_CPF_STAT_IDLE\"] }]},\n null\n ]\n }},\n\n \"cpfStall_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n \"cpfStall_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n \"cpfStall_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_STAT_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_STAT_STALL\"] }, \"&CPF_CPF_STAT_BUSY\"] } ,\n null\n ]\n }},\n\n \"l2CacheBusy_avg\": {\"$avg\": \"&CPF_CPF_TCIU_BUSY\"},\n \"l2CacheBusy_min\": {\"$min\": \"&CPF_CPF_TCIU_BUSY\"},\n \"l2CacheBusy_max\": {\"$max\": \"&CPF_CPF_TCIU_BUSY\"},\n\n \"l2CacheUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_BUSY\"] }, { \"$add\": [\"&CPF_CPF_TCIU_BUSY\", \"&CPF_CPF_TCIU_IDLE\"] }]},\n null\n ]\n }},\n \"l2CacheStall_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n \"l2CacheStall_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n \"l2CacheStall_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPF_CPF_TCIU_BUSY\", 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&CPF_CPF_TCIU_STALL\"] }, \"&CPF_CPF_TCIU_BUSY\"] },\n null\n ]\n }},\n\n \"utcL1Stall_avg\": {\"$avg\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_min\": {\"$min\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_max\": {\"$max\": \"&CPF_CMP_UTCL1_STALL_ON_TRANSLATION\"}\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy Cycles\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"CPF Busy\",\n \"Avg\": \"&cpfBusy_avg\",\n \"Min\": \"&cpfBusy_min\",\n \"Max\": \"&cpfBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"CPF Util\",\n \"Avg\": \"&cpfUtil_avg\",\n \"Min\": \"&cpfUtil_min\",\n \"Max\": \"&cpfUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPF Stall\",\n \"Avg\": \"&cpfStall_avg\",\n \"Min\": \"&cpfStall_min\",\n \"Max\": \"&cpfStall_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"L2Cache Intf Busy\",\n \"Avg\": \"&l2CacheBusy_avg\",\n \"Min\": \"&l2CacheBusy_min\",\n \"Max\": \"&l2CacheBusy_max\", \n \"Unit\": \"Cycles/Kernel\"\n },\n {\n \"Metric\": \"L2Cache Intf Util\",\n \"Avg\": \"&l2CacheUtil_avg\",\n \"Min\": \"&l2CacheUtil_min\",\n \"Max\": \"&l2CacheUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"L2Cache Intf Stall\",\n \"Avg\": \"&l2CacheStall_avg\",\n \"Min\": \"&l2CacheStall_min\",\n \"Max\": \"&l2CacheStall_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"UTCL1 Stall\",\n \"Avg\": \"&utcL1Stall_avg\",\n \"Min\": \"&utcL1Stall_min\",\n \"Max\": \"&utcL1Stall_max\", \n \"Unit\": \"Cycles/Kernel\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Command Processor Fetcher", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 83 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 171 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 148 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 180 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 118 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baselin)" - }, - "properties": [ - { - "id": "custom.width", - "value": 139 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 138 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 147 - } - ] - } - ] - }, - "gridPos": { - "h": 13, - "w": 11, - "x": 13, - "y": 137 - }, - "id": 4, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \n \"gpuBusy_avg\": {\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\": {\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\": {\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n\n \"cpcBusy_avg\": {\"$avg\": \"&CPC_CPC_STAT_BUSY\"},\n \"cpcBusy_min\": {\"$min\": \"&CPC_CPC_STAT_BUSY\"},\n \"cpcBusy_max\": {\"$max\": \"&CPC_CPC_STAT_BUSY\"},\n\n \"cpcUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n \"cpcUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n \"cpcUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n\n \"cpcStall_avg\": {\"$avg\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStall_min\": {\"$min\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStall_max\": {\"$max\": \"&CPC_CPC_STAT_STALL\"},\n\n \"cpcStallCycles_avg\": {\"$avg\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStallCycles_min\": {\"$min\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStallCycles_max\": {\"$max\": \"&CPC_CPC_STAT_STALL\"},\n\n \"cpcStallRate_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"cpcStallRate_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"cpcStallRate_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n\n \"cpcPacketDecoding_avg\":{\"$avg\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n \"cpcPacketDecoding_min\":{\"$min\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n \"cpcPacketDecoding_max\":{\"$max\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n\n \"spiBusy_avg\":{\"$avg\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n \"spiBusy_min\":{\"$min\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n \"spiBusy_max\":{\"$max\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n\n \"spiUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"spiUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"spiUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n\n \"l2CacheBusy_avg\":{\"$avg\": \"&CPC_CPC_TCIU_BUSY\"},\n \"l2CacheBusy_min\":{\"$min\": \"&CPC_CPC_TCIU_BUSY\"},\n \"l2CacheBusy_max\":{\"$max\": \"&CPC_CPC_TCIU_BUSY\"},\n\n \"l2CacheUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n \"l2CacheUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n \"l2CacheUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n\n \"utcL1Stall_avg\":{\"$avg\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_min\":{\"$min\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_max\":{\"$max\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n\n \"utcL2Busy_avg\":{\"$avg\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n \"utcL2Busy_min\":{\"$min\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n \"utcL2Busy_max\":{\"$max\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n\n \"utcL2Util_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }},\n \"utcL2Util_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }},\n \"utcL2Util_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }}\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy Cycles\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Busy Cycles\",\n \"Avg\": \"&cpcBusy_avg\",\n \"Min\": \"&cpcBusy_min\",\n \"Max\": \"&cpcBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Util\",\n \"Avg\": \"&cpcUtil_avg\",\n \"Min\": \"&cpcUtil_min\",\n \"Max\": \"&cpcUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPC Stall Cycles\",\n \"Avg\": \"&cpcStallCycles_avg\",\n \"Min\": \"&cpcStallCycles_min\",\n \"Max\": \"&cpcStallCycles_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Stall Rate\",\n \"Avg\": \"&cpcStallRate_avg\",\n \"Min\": \"&cpcStallRate_min\",\n \"Max\": \"&cpcStallRate_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPC Packet Decoding\",\n \"Avg\": \"&cpcPacketDecoding_avg\",\n \"Min\": \"&cpcPacketDecoding_min\",\n \"Max\": \"&cpcPacketDecoding_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Intf Busy Cycles\",\n \"Avg\": \"&spiBusy_avg\",\n \"Min\": \"&spiBusy_min\",\n \"Max\": \"&spiBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Intf Util\",\n \"Avg\": \"&spiUtil_avg\",\n \"Min\": \"&spiUtil_min\",\n \"Max\": \"&spiUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"L2Cache Intf Util\",\n \"Avg\": \"&l2CacheUtil_avg\",\n \"Min\": \"&l2CacheUtil_min\",\n \"Max\": \"&l2CacheUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"UTCL1 Stall Cycles\",\n \"Avg\": \"&utcL1Stall_avg\",\n \"Min\": \"&utcL1Stall_min\",\n \"Max\": \"&utcL1Stall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"UTCL2 Intf Busy Cycles\",\n \"Avg\": \"&utcL2Busy_avg\",\n \"Min\": \"&utcL2Busy_min\",\n \"Max\": \"&utcL2Busy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"UTCL2 Intf Util\",\n \"Avg\": \"&utcL2Util_avg\",\n \"Min\": \"&utcL2Util_min\",\n \"Max\": \"&utcL2Util_max\", \n \"Unit\": \"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Command Processor)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \n \"gpuBusy_avg\": {\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\": {\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\": {\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n \"cpcBusy_avg\": {\"$avg\": \"&CPC_CPC_STAT_BUSY\"},\n \"cpcBusy_min\": {\"$min\": \"&CPC_CPC_STAT_BUSY\"},\n \"cpcBusy_max\": {\"$max\": \"&CPC_CPC_STAT_BUSY\"},\n\n \"cpcUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n \"cpcUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n \"cpcUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_BUSY\"] }, { \"$add\": [\"&CPC_CPC_STAT_BUSY\", \"&CPC_CPC_STAT_IDLE\"] }]} ,\n null\n ]\n }},\n\n \"cpcStall_avg\": {\"$avg\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStall_min\": {\"$min\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStall_max\": {\"$max\": \"&CPC_CPC_STAT_STALL\"},\n\n \"cpcStallCycles_avg\": {\"$avg\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStallCycles_min\": {\"$min\": \"&CPC_CPC_STAT_STALL\"},\n \"cpcStallCycles_max\": {\"$max\": \"&CPC_CPC_STAT_STALL\"},\n\n \"cpcStallRate_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"cpcStallRate_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"cpcStallRate_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_STAT_STALL\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n\n \"cpcPacketDecoding_avg\":{\"$avg\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n \"cpcPacketDecoding_min\":{\"$min\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n \"cpcPacketDecoding_max\":{\"$max\": \"&CPC_ME1_BUSY_FOR_PACKET_DECODE\"},\n\n \"spiBusy_avg\":{\"$avg\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n \"spiBusy_min\":{\"$min\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n \"spiBusy_max\":{\"$max\": \"&CPC_ME1_DC0_SPI_BUSY\"},\n\n \"spiUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"spiUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n \"spiUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [\"&CPC_CPC_STAT_BUSY\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_ME1_DC0_SPI_BUSY\"] }, \"&CPC_CPC_STAT_BUSY\"]} ,\n null\n ]\n }},\n\n \"l2CacheBusy_avg\":{\"$avg\": \"&CPC_CPC_TCIU_BUSY\"},\n \"l2CacheBusy_min\":{\"$min\": \"&CPC_CPC_TCIU_BUSY\"},\n \"l2CacheBusy_max\":{\"$max\": \"&CPC_CPC_TCIU_BUSY\"},\n\n \"l2CacheUtil_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n \"l2CacheUtil_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n \"l2CacheUtil_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_TCIU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_TCIU_BUSY\", \"&CPC_CPC_TCIU_IDLE\"] }]} ,\n null\n ]\n }},\n\n \"utcL1Stall_avg\":{\"$avg\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_min\":{\"$min\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n \"utcL1Stall_max\":{\"$max\": \"&CPC_UTCL1_STALL_ON_TRANSLATION\"},\n\n \"utcL2Busy_avg\":{\"$avg\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n \"utcL2Busy_min\":{\"$min\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n \"utcL2Busy_max\":{\"$max\": \"&CPC_CPC_UTCL2IU_BUSY\"},\n\n \"utcL2Util_avg\": {\"$avg\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }},\n \"utcL2Util_min\": {\"$min\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }},\n \"utcL2Util_max\": {\"$max\":{\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }, 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&CPC_CPC_UTCL2IU_BUSY\"] }, { \"$add\": [\"&CPC_CPC_UTCL2IU_BUSY\", \"&CPC_CPC_UTCL2IU_IDLE\"] }]} ,\n null\n ]\n }}\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy Cycles\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Busy Cycles\",\n \"Avg\": \"&cpcBusy_avg\",\n \"Min\": \"&cpcBusy_min\",\n \"Max\": \"&cpcBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Util\",\n \"Avg\": \"&cpcUtil_avg\",\n \"Min\": \"&cpcUtil_min\",\n \"Max\": \"&cpcUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPC Stall Cycles\",\n \"Avg\": \"&cpcStallCycles_avg\",\n \"Min\": \"&cpcStallCycles_min\",\n \"Max\": \"&cpcStallCycles_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CPC Stall Rate\",\n \"Avg\": \"&cpcStallRate_avg\",\n \"Min\": \"&cpcStallRate_min\",\n \"Max\": \"&cpcStallRate_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"CPC Packet Decoding\",\n \"Avg\": \"&cpcPacketDecoding_avg\",\n \"Min\": \"&cpcPacketDecoding_min\",\n \"Max\": \"&cpcPacketDecoding_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Intf Busy Cycles\",\n \"Avg\": \"&spiBusy_avg\",\n \"Min\": \"&spiBusy_min\",\n \"Max\": \"&spiBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Intf Util\",\n \"Avg\": \"&spiUtil_avg\",\n \"Min\": \"&spiUtil_min\",\n \"Max\": \"&spiUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"L2Cache Intf Util\",\n \"Avg\": \"&l2CacheUtil_avg\",\n \"Min\": \"&l2CacheUtil_min\",\n \"Max\": \"&l2CacheUtil_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"UTCL1 Stall Cycles\",\n \"Avg\": \"&utcL1Stall_avg\",\n \"Min\": \"&utcL1Stall_min\",\n \"Max\": \"&utcL1Stall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"UTCL2 Intf Busy Cycles\",\n \"Avg\": \"&utcL2Busy_avg\",\n \"Min\": \"&utcL2Busy_min\",\n \"Max\": \"&utcL2Busy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"UTCL2 Intf Util\",\n \"Avg\": \"&utcL2Util_avg\",\n \"Min\": \"&utcL2Util_min\",\n \"Max\": \"&utcL2Util_max\", \n \"Unit\": \"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Command Processor Compute", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Metric 1": "", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "collapsed": false, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 150 - }, - "id": 102, - "panels": [], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Shader Processor Input (SPI)", - "type": "row" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 101 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg 1" - }, - "properties": [ - { - "id": "custom.width", - "value": 121 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min 1" - }, - "properties": [ - { - "id": "custom.width", - "value": 96 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max 1" - }, - "properties": [ - { - "id": "custom.width", - "value": 145 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg 2" - }, - "properties": [ - { - "id": "custom.width", - "value": 97 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min 2" - }, - "properties": [ - { - "id": "custom.width", - "value": 128 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 130 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 123 - } - ] - } - ] - }, - "gridPos": { - "h": 15, - "w": 12, - "x": 0, - "y": 151 - }, - "id": 106, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"csBusy_avg\":{\"$avg\": \"&SPI_CSN_BUSY\"},\n \"csBusy_min\":{\"$min\": \"&SPI_CSN_BUSY\"},\n \"csBusy_max\":{\"$max\": \"&SPI_CSN_BUSY\"},\n\n \"gpuBusy_avg\":{\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\":{\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\":{\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n \"spiBusy_avg\":{\"$avg\": \"&GRBM_SPI_BUSY\"},\n \"spiBusy_min\":{\"$min\": \"&GRBM_SPI_BUSY\"},\n \"spiBusy_max\":{\"$max\": \"&GRBM_SPI_BUSY\"},\n\n \"sqBusy_avg\":{\"$avg\": \"&SQ_BUSY_CYCLES\"},\n \"sqBusy_min\":{\"$min\": \"&SQ_BUSY_CYCLES\"},\n \"sqBusy_max\":{\"$max\": \"&SQ_BUSY_CYCLES\"},\n\n \"dispatchedWorkgroups_avg\":{\"$avg\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n \"dispatchedWorkgroups_min\":{\"$min\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n \"dispatchedWorkgroups_max\":{\"$max\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n\n \"dispatchedWavefronts_avg\":{\"$avg\": \"&SPI_CSN_WAVE\"},\n \"dispatchedWavefronts_min\":{\"$min\": \"&SPI_CSN_WAVE\"},\n \"dispatchedWavefronts_max\":{\"$max\": \"&SPI_CSN_WAVE\"},\n\n\n \"waveAllocFail_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC\"},\n \"waveAllocFail_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC\"},\n \"waveAllocFail_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC\"},\n\n \"waveAllocFailCS_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveAllocFailCS_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveAllocFailCS_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"}\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Busy\",\n \"Avg\": \"&csBusy_avg\",\n \"Min\": \"&csBusy_min\",\n \"Max\": \"&csBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Busy\",\n \"Avg\": \"&spiBusy_avg\",\n \"Min\": \"&spiBusy_min\",\n \"Max\": \"&spiBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SQ Busy\",\n \"Avg\": \"&sqBusy_avg\",\n \"Min\": \"&sqBusy_min\",\n \"Max\": \"&sqBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Dispatched Workgroups\",\n \"Avg\": \"&dispatchedWorkgroups_avg\",\n \"Min\": \"&dispatchedWorkgroups_min\",\n \"Max\": \"&dispatchedWorkgroups_max\", \n \"Unit\": \"Workgroups\"\n },\n {\n \"Metric\": \"Dispatched Wavefronts\",\n \"Avg\": \"&dispatchedWavefronts_avg\",\n \"Min\": \"&dispatchedWavefronts_min\",\n \"Max\": \"&dispatchedWavefronts_max\", \n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Wave Alloc Failed\",\n \"Avg\": \"&waveAllocFail_avg\",\n \"Min\": \"&waveAllocFail_min\",\n \"Max\": \"&waveAllocFail_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Wave Alloc Failed - CS\",\n \"Avg\": \"&waveAllocFailCS_avg\",\n \"Min\": \"&waveAllocFailCS_min\",\n \"Max\": \"&waveAllocFailCS_max\", \n \"Unit\": \"Cycles\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Shader Processor Input)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"csBusy_avg\":{\"$avg\": \"&SPI_CSN_BUSY\"},\n \"csBusy_min\":{\"$min\": \"&SPI_CSN_BUSY\"},\n \"csBusy_max\":{\"$max\": \"&SPI_CSN_BUSY\"},\n\n \"gpuBusy_avg\":{\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_min\":{\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"gpuBusy_max\":{\"$max\": \"&GRBM_GUI_ACTIVE\"},\n\n \"spiBusy_avg\":{\"$avg\": \"&GRBM_SPI_BUSY\"},\n \"spiBusy_min\":{\"$min\": \"&GRBM_SPI_BUSY\"},\n \"spiBusy_max\":{\"$max\": \"&GRBM_SPI_BUSY\"},\n\n \"sqBusy_avg\":{\"$avg\": \"&SQ_BUSY_CYCLES\"},\n \"sqBusy_min\":{\"$min\": \"&SQ_BUSY_CYCLES\"},\n \"sqBusy_max\":{\"$max\": \"&SQ_BUSY_CYCLES\"},\n\n \"dispatchedWorkgroups_avg\":{\"$avg\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n \"dispatchedWorkgroups_min\":{\"$min\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n \"dispatchedWorkgroups_max\":{\"$max\": \"&SPI_CSN_NUM_THREADGROUPS\"},\n\n \"dispatchedWavefronts_avg\":{\"$avg\": \"&SPI_CSN_WAVE\"},\n \"dispatchedWavefronts_min\":{\"$min\": \"&SPI_CSN_WAVE\"},\n \"dispatchedWavefronts_max\":{\"$max\": \"&SPI_CSN_WAVE\"},\n\n \"waveAllocFail_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC\"},\n \"waveAllocFail_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC\"},\n \"waveAllocFail_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC\"},\n\n \"waveAllocFailCS_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveAllocFailCS_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveAllocFailCS_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"}\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"GPU Busy\",\n \"Avg\": \"&gpuBusy_avg\",\n \"Min\": \"&gpuBusy_min\",\n \"Max\": \"&gpuBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Busy\",\n \"Avg\": \"&csBusy_avg\",\n \"Min\": \"&csBusy_min\",\n \"Max\": \"&csBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SPI Busy\",\n \"Avg\": \"&spiBusy_avg\",\n \"Min\": \"&spiBusy_min\",\n \"Max\": \"&spiBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"SQ Busy\",\n \"Avg\": \"&sqBusy_avg\",\n \"Min\": \"&sqBusy_min\",\n \"Max\": \"&sqBusy_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Dispatched Workgroups\",\n \"Avg\": \"&dispatchedWorkgroups_avg\",\n \"Min\": \"&dispatchedWorkgroups_min\",\n \"Max\": \"&dispatchedWorkgroups_max\", \n \"Unit\": \"Workgroups\"\n },\n {\n \"Metric\": \"Dispatched Wavefronts\",\n \"Avg\": \"&dispatchedWavefronts_avg\",\n \"Min\": \"&dispatchedWavefronts_min\",\n \"Max\": \"&dispatchedWavefronts_max\", \n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Wave Alloc Failed\",\n \"Avg\": \"&waveAllocFail_avg\",\n \"Min\": \"&waveAllocFail_min\",\n \"Max\": \"&waveAllocFail_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Wave Alloc Failed - CS\",\n \"Avg\": \"&waveAllocFailCS_avg\",\n \"Min\": \"&waveAllocFailCS_min\",\n \"Max\": \"&waveAllocFailCS_max\", \n \"Unit\": \"Cycles\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "SPI Stats", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)", - "Unit 1": "" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 117 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 110 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 121 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 285 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 102 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 122 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 242 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 121 - } - ] - } - ] - }, - "gridPos": { - "h": 15, - "w": 12, - "x": 12, - "y": 151 - }, - "id": 104, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"waveReqFailCS_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveReqFailCS_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveReqFailCS_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n\n \"csStall_avg\":{\"$avg\": \"&SPI_RA_RES_STALL_CSN\"},\n \"csStall_min\":{\"$min\": \"&SPI_RA_RES_STALL_CSN\"},\n \"csStall_max\":{\"$max\": \"&SPI_RA_RES_STALL_CSN\"},\n\n \"csStallRate_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n \"csStallRate_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n \"csStallRate_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n\n \"scratchStall_avg\":{\"$avg\": \"&SPI_RA_TMP_STALL_CSN\"},\n \"scratchStall_min\":{\"$min\": \"&SPI_RA_TMP_STALL_CSN\"},\n \"scratchStall_max\":{\"$max\": \"&SPI_RA_TMP_STALL_CSN\"},\n\n \"simdWaveslots_avg\":{\"$avg\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n \"simdWaveslots_min\":{\"$min\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n \"simdWaveslots_max\":{\"$max\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n\n \"simdVGPRs_avg\":{\"$avg\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n \"simdVGPRs_min\":{\"$min\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n \"simdVGPRs_max\":{\"$max\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n\n \"simdSGPRs_avg\":{\"$avg\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n \"simdSGPRs_min\":{\"$min\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n \"simdSGPRs_max\":{\"$max\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n\n \"cuLDS_avg\":{\"$avg\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n \"cuLDS_min\":{\"$min\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n \"cuLDS_max\":{\"$max\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n\n \"cuBarries_avg\":{\"$avg\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n \"cuBarries_min\":{\"$min\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n \"cuBarries_max\":{\"$max\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n\n \"bulkyResource_avg\":{\"$avg\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n \"bulkyResource_min\":{\"$min\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n \"bulkyResource_max\":{\"$max\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n\n \"threadgroupLimit_avg\":{\"$avg\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n \"threadgroupLimit_min\":{\"$min\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n \"threadgroupLimit_max\":{\"$max\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n\n \"waveLimit_avg\":{\"$avg\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n \"waveLimit_min\":{\"$min\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n \"waveLimit_max\":{\"$max\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n\n \"vgprsWrites_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n \"vgprsWrites_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n \"vgprsWrites_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n\n \"sgprsWrites_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \"sgprsWrites_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \"sgprsWrites_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \n \n \"sgprsWritesUti_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }},\n \"sgprsWritesUti_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }},\n \"sgprsWritesUti_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }}\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave request Failed (CS)\",\n \"Avg\": \"&waveReqFailCS_avg\",\n \"Min\": \"&waveReqFailCS_min\",\n \"Max\": \"&waveReqFailCS_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Stall\",\n \"Avg\": \"&csStall_avg\",\n \"Min\": \"&csStall_min\",\n \"Max\": \"&csStall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Stall Rate\",\n \"Avg\": \"&csStallRate_avg\",\n \"Min\": \"&csStallRate_min\",\n \"Max\": \"&csStallRate_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"Scratch Stall\",\n \"Avg\": \"&scratchStall_avg\",\n \"Min\": \"&scratchStall_min\",\n \"Max\": \"&scratchStall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Insufficient SIMD Waveslots\",\n \"Avg\": \"&simdWaveslots_avg\",\n \"Min\": \"&simdWaveslots_min\",\n \"Max\": \"&simdWaveslots_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient SIMD VGPRs\",\n \"Avg\": \"&simdVGPRs_avg\",\n \"Min\": \"&simdVGPRs_min\",\n \"Max\": \"&simdVGPRs_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient SIMD SGPRs\",\n \"Avg\": \"&simdSGPRs_avg\",\n \"Min\": \"&simdSGPRs_min\",\n \"Max\": \"&simdSGPRs_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient CU LDS\",\n \"Avg\": \"&cuLDS_avg\",\n \"Min\": \"&cuLDS_min\",\n \"Max\": \"&cuLDS_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Insufficient CU Barries\",\n \"Avg\": \"&cuBarries_avg\",\n \"Min\": \"&cuBarries_min\",\n \"Max\": \"&cuBarries_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Insufficient Bulky Resource\",\n \"Avg\": \"&bulkyResource_avg\",\n \"Min\": \"&bulkyResource_min\",\n \"Max\": \"&bulkyResource_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Reach CU Threadgroups Limit\",\n \"Avg\": \"&threadgroupLimit_avg\",\n \"Min\": \"&threadgroupLimit_min\",\n \"Max\": \"&threadgroupLimit_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Reach CU Wave Limit\",\n \"Avg\": \"&waveLimit_avg\",\n \"Min\": \"&waveLimit_min\",\n \"Max\": \"&waveLimit_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"VGPR Writes\",\n \"Avg\": \"&vgprsWrites_avg\",\n \"Min\": \"&vgprsWrites_min\",\n \"Max\": \"&vgprsWrites_max\", \n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"SGPR Writes\",\n \"Avg\": \"&sgprsWrites_avg\",\n \"Min\": \"&sgprsWrites_min\",\n \"Max\": \"&sgprsWrites_max\", \n \"Unit\": \"Cycles/wave\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Shader Processor Input)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"waveReqFailCS_avg\":{\"$avg\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveReqFailCS_min\":{\"$min\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n \"waveReqFailCS_max\":{\"$max\": \"&SPI_RA_REQ_NO_ALLOC_CSN\"},\n\n \"csStall_avg\":{\"$avg\": \"&SPI_RA_RES_STALL_CSN\"},\n \"csStall_min\":{\"$min\": \"&SPI_RA_RES_STALL_CSN\"},\n \"csStall_max\":{\"$max\": \"&SPI_RA_RES_STALL_CSN\"},\n\n \"csStallRate_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n \"csStallRate_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n \"csStallRate_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$multiply\": [100, \"&SPI_RA_RES_STALL_CSN\"]}, \"&GRBM_SPI_BUSY\"]},\n null\n ]\n }},\n\n \"scratchStall_avg\":{\"$avg\": \"&SPI_RA_TMP_STALL_CSN\"},\n \"scratchStall_min\":{\"$min\": \"&SPI_RA_TMP_STALL_CSN\"},\n \"scratchStall_max\":{\"$max\": \"&SPI_RA_TMP_STALL_CSN\"},\n\n \"simdWaveslots_avg\":{\"$avg\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n \"simdWaveslots_min\":{\"$min\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n \"simdWaveslots_max\":{\"$max\": \"&SPI_RA_WAVE_SIMD_FULL_CSN\"},\n\n \"simdVGPRs_avg\":{\"$avg\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n \"simdVGPRs_min\":{\"$min\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n \"simdVGPRs_max\":{\"$max\": \"&SPI_RA_VGPR_SIMD_FULL_CSN\"},\n\n \"simdSGPRs_avg\":{\"$avg\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n \"simdSGPRs_min\":{\"$min\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n \"simdSGPRs_max\":{\"$max\": \"&SPI_RA_SGPR_SIMD_FULL_CSN\"},\n\n \"cuLDS_avg\":{\"$avg\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n \"cuLDS_min\":{\"$min\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n \"cuLDS_max\":{\"$max\": \"&SPI_RA_LDS_CU_FULL_CSN\"},\n\n \"cuBarries_avg\":{\"$avg\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n \"cuBarries_min\":{\"$min\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n \"cuBarries_max\":{\"$max\": \"&SPI_RA_BAR_CU_FULL_CSN\"},\n\n \"bulkyResource_avg\":{\"$avg\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n \"bulkyResource_min\":{\"$min\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n \"bulkyResource_max\":{\"$max\": \"&SPI_RA_BULKY_CU_FULL_CSN\"},\n\n \"threadgroupLimit_avg\":{\"$avg\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n \"threadgroupLimit_min\":{\"$min\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n \"threadgroupLimit_max\":{\"$max\": \"&SPI_RA_TGLIM_CU_FULL_CSN\"},\n\n \"waveLimit_avg\":{\"$avg\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n \"waveLimit_min\":{\"$min\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n \"waveLimit_max\":{\"$max\": \"&SPI_RA_WVLIM_STALL_CSN\"},\n\n \"vgprsWrites_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n \"vgprsWrites_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n \"vgprsWrites_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n {\"$divide\": [{ \"$multiply\": [4, \"&SPI_VWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"]},\n null\n ]\n }},\n\n \"sgprsWrites_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \"sgprsWrites_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \"sgprsWrites_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&SPI_CSN_WAVE\", 0]}, \n { \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&SPI_CSN_WAVE\"] },\n null\n ]\n }},\n \n \n \"sgprsWritesUti_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }},\n \"sgprsWritesUti_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }},\n \"sgprsWritesUti_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&GRBM_SPI_BUSY\", 0]}, \n {\"$divide\": [{ \"$divide\": [{ \"$multiply\": [1, \"&SPI_SWC_CSC_WR\"] }, \"&GRBM_SPI_BUSY\"] }, 8] },\n null\n ]\n }}\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Wave request Failed (CS)\",\n \"Avg\": \"&waveReqFailCS_avg\",\n \"Min\": \"&waveReqFailCS_min\",\n \"Max\": \"&waveReqFailCS_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Stall\",\n \"Avg\": \"&csStall_avg\",\n \"Min\": \"&csStall_min\",\n \"Max\": \"&csStall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"CS Stall Rate\",\n \"Avg\": \"&csStallRate_avg\",\n \"Min\": \"&csStallRate_min\",\n \"Max\": \"&csStallRate_max\", \n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"Scratch Stall\",\n \"Avg\": \"&scratchStall_avg\",\n \"Min\": \"&scratchStall_min\",\n \"Max\": \"&scratchStall_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Insufficient SIMD Waveslots\",\n \"Avg\": \"&simdWaveslots_avg\",\n \"Min\": \"&simdWaveslots_min\",\n \"Max\": \"&simdWaveslots_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient SIMD VGPRs\",\n \"Avg\": \"&simdVGPRs_avg\",\n \"Min\": \"&simdVGPRs_min\",\n \"Max\": \"&simdVGPRs_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient SIMD SGPRs\",\n \"Avg\": \"&simdSGPRs_avg\",\n \"Min\": \"&simdSGPRs_min\",\n \"Max\": \"&simdSGPRs_max\", \n \"Unit\": \"#SIMD\"\n },\n {\n \"Metric\": \"Insufficient CU LDS\",\n \"Avg\": \"&cuLDS_avg\",\n \"Min\": \"&cuLDS_min\",\n \"Max\": \"&cuLDS_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Insufficient CU Barries\",\n \"Avg\": \"&cuBarries_avg\",\n \"Min\": \"&cuBarries_min\",\n \"Max\": \"&cuBarries_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Insufficient Bulky Resource\",\n \"Avg\": \"&bulkyResource_avg\",\n \"Min\": \"&bulkyResource_min\",\n \"Max\": \"&bulkyResource_max\", \n \"Unit\": \"#CU\"\n },\n {\n \"Metric\": \"Reach CU Threadgroups Limit\",\n \"Avg\": \"&threadgroupLimit_avg\",\n \"Min\": \"&threadgroupLimit_min\",\n \"Max\": \"&threadgroupLimit_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"Reach CU Wave Limit\",\n \"Avg\": \"&waveLimit_avg\",\n \"Min\": \"&waveLimit_min\",\n \"Max\": \"&waveLimit_max\", \n \"Unit\": \"Cycles\"\n },\n {\n \"Metric\": \"VGPR Writes\",\n \"Avg\": \"&vgprsWrites_avg\",\n \"Min\": \"&vgprsWrites_min\",\n \"Max\": \"&vgprsWrites_max\", \n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"SGPR Writes\",\n \"Avg\": \"&sgprsWrites_avg\",\n \"Min\": \"&sgprsWrites_min\",\n \"Max\": \"&sgprsWrites_max\", \n \"Unit\": \"Cycles/wave\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "SPI Resource Allocation", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "collapsed": false, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 166 - }, - "id": 185, - "panels": [], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Wavefront", - "type": "row" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 169 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 142 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 196 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 174 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max" - }, - "properties": [ - { - "id": "custom.width", - "value": 168 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min" - }, - "properties": [ - { - "id": "custom.width", - "value": 272 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg" - }, - "properties": [ - { - "id": "custom.width", - "value": 225 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 100 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 103 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 115 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 117 - } - ] - } - ] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 0, - "y": 167 - }, - "id": 10, - "interval": "12h", - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"gridSize_avg\":{\"$avg\": \"&Grid_Size\"},\n \"gridSize_min\":{\"$min\": \"&Grid_Size\"},\n \"gridSize_max\":{\"$max\": \"&Grid_Size\"},\n\n \"workSize_avg\":{\"$avg\": \"&Workgroup_Size\"},\n \"workSize_min\":{\"$min\": \"&Workgroup_Size\"},\n \"workSize_max\":{\"$max\": \"&Workgroup_Size\"},\n\n \"totWavefront_avg\":{\"$avg\": \"&SPI_CSN_WAVE\"},\n \"totWavefront_min\":{\"$min\": \"&SPI_CSN_WAVE\"},\n \"totWavefront_max\":{\"$max\": \"&SPI_CSN_WAVE\"},\n\n \"savedWavefront_avg\":{\"$avg\": \"&SQ_WAVES_SAVED\"},\n \"savedWavefront_min\":{\"$min\": \"&SQ_WAVES_SAVED\"},\n \"savedWavefront_max\":{\"$max\": \"&SQ_WAVES_SAVED\"},\n\n \"restoredWavefront_avg\":{\"$avg\": \"&SQ_WAVES_RESTORED\"},\n \"restoredWavefront_min\":{\"$min\": \"&SQ_WAVES_RESTORED\"},\n \"restoredWavefront_max\":{\"$max\": \"&SQ_WAVES_RESTORED\"},\n\n \"vgprs_avg\":{\"$avg\": \"&vgpr\"},\n \"vgprs_min\":{\"$min\": \"&vgpr\"},\n \"vgprs_max\":{\"$max\": \"&vgpr\"},\n\n \"sgprs_avg\":{\"$avg\": \"&SGPR\"},\n \"sgprs_min\":{\"$min\": \"&SGPR\"},\n \"sgprs_max\":{\"$max\": \"&SGPR\"},\n\n \"ldsAlloc_avg\":{\"$avg\": \"&LDS_Per_Workgroup\"},\n \"ldsAlloc_min\":{\"$min\": \"&LDS_Per_Workgroup\"},\n \"ldsAlloc_max\":{\"$max\": \"&LDS_Per_Workgroup\"},\n\n \"scratchAlloc_avg\":{\"$avg\": \"&Scratch_Per_Workitem\"},\n \"scratchAlloc_min\":{\"$min\": \"&Scratch_Per_Workitem\"},\n \"scratchAlloc_max\":{\"$max\": \"&Scratch_Per_Workitem\"}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Grid Size\",\n \"Avg\": \"&gridSize_avg\",\n \"Min\": \"&gridSize_min\",\n \"Max\": \"&gridSize_max\",\n \"Unit\": \"Work Items\"\n },\n {\n \"Metric\": \"Workgroup Size\",\n \"Avg\": \"&workSize_avg\",\n \"Min\": \"&workSize_min\",\n \"Max\": \"&workSize_max\",\n \"Unit\": \"Work Items\"\n },\n {\n \"Metric\": \"Total Wavefronts\",\n \"Avg\": \"&totWavefront_avg\",\n \"Min\": \"&totWavefront_min\",\n \"Max\": \"&totWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Saved Wavefronts\",\n \"Avg\": \"&savedWavefront_avg\",\n \"Min\": \"&savedWavefront_min\",\n \"Max\": \"&savedWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Restored Wavefronts\",\n \"Avg\": \"&restoredWavefront_avg\",\n \"Min\": \"&restoredWavefront_min\",\n \"Max\": \"&restoredWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"VGPRs\",\n \"Avg\": \"&vgprs_avg\",\n \"Min\": \"&vgprs_min\",\n \"Max\": \"&vgprs_max\",\n \"Unit\": \"Registers\"\n },\n {\n \"Metric\": \"SGPRs\",\n \"Avg\": \"&sgprs_avg\",\n \"Min\": \"&sgprs_min\",\n \"Max\": \"&sgprs_max\",\n \"Unit\":\"Registers\"\n },\n {\n \"Metric\": \"LDS Allocation\",\n \"Avg\": \"&ldsAlloc_avg\",\n \"Min\": \"&ldsAlloc_min\",\n \"Max\": \"&ldsAlloc_max\",\n \"Unit\": \"Bytes\"\n },\n {\n \"Metric\": \"Scratch Allocation\",\n \"Avg\": \"&scratchAlloc_avg\",\n \"Min\": \"&scratchAlloc_min\",\n \"Max\": \"&scratchAlloc_max\",\n \"Unit\": \"Bytes\"\n }\n \n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Wavefront)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"gridSize_avg\":{\"$avg\": \"&Grid_Size\"},\n \"gridSize_min\":{\"$min\": \"&Grid_Size\"},\n \"gridSize_max\":{\"$max\": \"&Grid_Size\"},\n\n \"workSize_avg\":{\"$avg\": \"&Workgroup_Size\"},\n \"workSize_min\":{\"$min\": \"&Workgroup_Size\"},\n \"workSize_max\":{\"$max\": \"&Workgroup_Size\"},\n\n \"totWavefront_avg\":{\"$avg\": \"&SPI_CSN_WAVE\"},\n \"totWavefront_min\":{\"$min\": \"&SPI_CSN_WAVE\"},\n \"totWavefront_max\":{\"$max\": \"&SPI_CSN_WAVE\"},\n\n \"savedWavefront_avg\":{\"$avg\": \"&SQ_WAVES_SAVED\"},\n \"savedWavefront_min\":{\"$min\": \"&SQ_WAVES_SAVED\"},\n \"savedWavefront_max\":{\"$max\": \"&SQ_WAVES_SAVED\"},\n\n \"restoredWavefront_avg\":{\"$avg\": \"&SQ_WAVES_RESTORED\"},\n \"restoredWavefront_min\":{\"$min\": \"&SQ_WAVES_RESTORED\"},\n \"restoredWavefront_max\":{\"$max\": \"&SQ_WAVES_RESTORED\"},\n\n \"vgprs_avg\":{\n \"$avg\": {\"$cond\": [\n {\"$ne\": [{\"$type\": \"&vgpr\"}, \"missing\"]},\n \"&vgpr\",\n \"&Arch_VGPR\"\n ] \n }\n },\n \"vgprs_min\":{\n \"$min\": {\"$cond\": [\n {\"$ne\": [{\"$type\": \"&vgpr\"}, \"missing\"]},\n \"&vgpr\",\n \"&Arch_VGPR\"\n ] \n }\n },\n \"vgprs_max\":{\n \"$max\": {\"$cond\": [\n {\"$ne\": [{\"$type\": \"&vgpr\"}, \"missing\"]},\n \"&vgpr\",\n \"&Arch_VGPR\"\n ] \n }\n },\n\n \"agprs_avg\":{\n \"$avg\": \"&Accum_VGPR\"\n },\n \"agprs_min\":{\n \"$min\": \"&Accum_VGPR\"\n },\n \"agprs_max\":{\n \"$max\": \"&Accum_VGPR\"\n },\n\n \"sgprs_avg\":{\"$avg\": \"&SGPR\"},\n \"sgprs_min\":{\"$min\": \"&SGPR\"},\n \"sgprs_max\":{\"$max\": \"&SGPR\"},\n\n \"ldsAlloc_avg\":{\"$avg\": \"&LDS_Per_Workgroup\"},\n \"ldsAlloc_min\":{\"$min\": \"&LDS_Per_Workgroup\"},\n \"ldsAlloc_max\":{\"$max\": \"&LDS_Per_Workgroup\"},\n\n \"scratchAlloc_avg\":{\"$avg\": \"&Scratch_Per_Workitem\"},\n \"scratchAlloc_min\":{\"$min\": \"&Scratch_Per_Workitem\"},\n \"scratchAlloc_max\":{\"$max\": \"&Scratch_Per_Workitem\"}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Grid Size\",\n \"Avg\": \"&gridSize_avg\",\n \"Min\": \"&gridSize_min\",\n \"Max\": \"&gridSize_max\",\n \"Unit\": \"Work Items\"\n },\n {\n \"Metric\": \"Workgroup Size\",\n \"Avg\": \"&workSize_avg\",\n \"Min\": \"&workSize_min\",\n \"Max\": \"&workSize_max\",\n \"Unit\": \"Work Items\"\n },\n {\n \"Metric\": \"Total Wavefronts\",\n \"Avg\": \"&totWavefront_avg\",\n \"Min\": \"&totWavefront_min\",\n \"Max\": \"&totWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Saved Wavefronts\",\n \"Avg\": \"&savedWavefront_avg\",\n \"Min\": \"&savedWavefront_min\",\n \"Max\": \"&savedWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"Restored Wavefronts\",\n \"Avg\": \"&restoredWavefront_avg\",\n \"Min\": \"&restoredWavefront_min\",\n \"Max\": \"&restoredWavefront_max\",\n \"Unit\": \"Wavefronts\"\n },\n {\n \"Metric\": \"VGPRs\",\n \"Avg\": \"&vgprs_avg\",\n \"Min\": \"&vgprs_min\",\n \"Max\": \"&vgprs_max\",\n \"Unit\": \"Registers\"\n },\n {\n \"Metric\": \"AGPRs\",\n \"Avg\": \"&agprs_avg\",\n \"Min\": \"&agprs_min\",\n \"Max\": \"&agprs_max\",\n \"Unit\": \"Registers\"\n },\n {\n \"Metric\": \"SGPRs\",\n \"Avg\": \"&sgprs_avg\",\n \"Min\": \"&sgprs_min\",\n \"Max\": \"&sgprs_max\",\n \"Unit\":\"Registers\"\n },\n {\n \"Metric\": \"LDS Allocation\",\n \"Avg\": \"&ldsAlloc_avg\",\n \"Min\": \"&ldsAlloc_min\",\n \"Max\": \"&ldsAlloc_max\",\n \"Unit\": \"Bytes\"\n },\n {\n \"Metric\": \"Scratch Allocation\",\n \"Avg\": \"&scratchAlloc_avg\",\n \"Min\": \"&scratchAlloc_min\",\n \"Max\": \"&scratchAlloc_max\",\n \"Unit\": \"Bytes\"\n }\n \n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Wavefront Launch Stats", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true, - "Units 2": true, - "metric 2": true - }, - "indexByName": { - "Avg 1": 1, - "Avg 2": 2, - "Max 1": 5, - "Max 2": 6, - "Metric 1": 0, - "Metric 2": 7, - "Min 1": 3, - "Min 2": 4, - "Unit 1": 9, - "Unit 2": 8 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 148 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 122 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 106 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg" - }, - "properties": [ - { - "id": "custom.width", - "value": 223 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 169 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 165 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 133 - } - ] - } - ] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 12, - "y": 167 - }, - "id": 34, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"instrWavefront_avg\":{\"$avg\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n \"instrWavefront_min\":{\"$min\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n \"instrWavefront_max\":{\"$max\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n\n \"waveCycles_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n \"waveCycles_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n \"waveCycles_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n\n \"depWaitingCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"depWaitingCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"depWaitingCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"issueWaitCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"issueWaitCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"issueWaitCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"activeCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"activeCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"activeCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"kernelTime_avg\":{\"$avg\": {\"$subtract\": [ \"&End_Timestamp\", \"&Start_Timestamp\" ]}},\n \"kernelTime_min\":{\"$min\": {\"$subtract\": [ \"&End_Timestamp\", \"&Start_Timestamp\" ]}},\n \"kernelTime_max\":{\"$max\": {\"$subtract\": [ \"&End_Timestamp\", \"&Start_Timestamp\" ]}},\n\n \"kernelCycle_avg\":{\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"kernelCycle_min\":{\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"kernelCycle_max\":{\"$max\": \"&GRBM_GUI_ACTIVE\"}\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Kernel Time (Nanosec)\",\n \"Avg\": \"&kernelTime_avg\",\n \"Min\": \"&kernelTime_min\",\n \"Max\": \"&kernelTime_max\",\n \"Unit\":\"ns\"\n },\n {\n \"Metric\": \"Kernel Time (Cycles)\",\n \"Avg\": \"&kernelCycle_avg\",\n \"Min\": \"&kernelCycle_min\",\n \"Max\": \"&kernelCycle_max\",\n \"Unit\":\"Cycle\"\n },\n\n {\n \"Metric\": \"Instr/wavefront\",\n \"Avg\": \"&instrWavefront_avg\",\n \"Min\": \"&instrWavefront_min\",\n \"Max\": \"&instrWavefront_max\",\n \"Unit\": \"Instr/wavefront\"\n },\n {\n \"Metric\": \"Wave Cycles\",\n \"Avg\": \"&waveCycles_avg\",\n \"Min\": \"&waveCycles_min\",\n \"Max\": \"&waveCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Dependency Wait Cycles\",\n \"Avg\": \"&depWaitingCycles_avg\",\n \"Min\": \"&depWaitingCycles_min\",\n \"Max\": \"&depWaitingCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Issue Wait Cycles\",\n \"Avg\": \"&issueWaitCycles_avg\",\n \"Min\": \"&issueWaitCycles_min\",\n \"Max\": \"&issueWaitCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Active Cycles\",\n \"Avg\": \"&activeCycles_avg\",\n \"Min\": \"&activeCycles_min\",\n \"Max\": \"&activeCycles_max\",\n \"Unit\": \"Cycles/wave\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_LEVEL_WAVES\",\n \"pipeline\": [\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"occAvg\": {\"$avg\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } },\n \"occMin\": {\"$min\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } },\n \"occMax\": {\"$max\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } }\n }},\n {\"$project\": {\n \"_id\":0,\n \"Metric\": \"Wavefront Occupancy\",\n \"Avg\": \"&occAvg\",\n \"Min\":\"&occMin\",\n \"Max\":\"&occMax\",\n \"Unit\":\"Wavefronts\"\n }}\n ]\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Wavefront)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"instrWavefront_avg\":{\"$avg\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n \"instrWavefront_min\":{\"$min\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n \"instrWavefront_max\":{\"$max\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_WAVES\" ] }},\n\n \"waveCycles_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n \"waveCycles_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n \"waveCycles_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [4, \"&SQ_WAVE_CYCLES\"] }, \"&SQ_WAVES\" ]}},\n\n \"depWaitingCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"depWaitingCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"depWaitingCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"issueWaitCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"issueWaitCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"issueWaitCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_WAIT_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"activeCycles_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"activeCycles_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n \"activeCycles_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [4, \"&SQ_ACTIVE_INST_ANY\"] }, \"&SQ_WAVES\" ]}},\n\n \"kernelTime_avg\":{\"$avg\": {\"$subtract\": [ \"&End_Timestamp\", \"&Start_Timestamp\" ]}},\n \"kernelTime_min\":{\"$min\": {\"$subtract\": [ \"&End_Timestamp\", \"&Start_Timestamp\" ]}},\n \"kernelTime_max\":{\"$max\": {\"$subtract\": [ \"&End_Timestamp\", \"&Start_Timestamp\" ]}},\n\n \"kernelCycle_avg\":{\"$avg\": \"&GRBM_GUI_ACTIVE\"},\n \"kernelCycle_min\":{\"$min\": \"&GRBM_GUI_ACTIVE\"},\n \"kernelCycle_max\":{\"$max\": \"&GRBM_GUI_ACTIVE\"}\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Kernel Time (Nanosec)\",\n \"Avg\": \"&kernelTime_avg\",\n \"Min\": \"&kernelTime_min\",\n \"Max\": \"&kernelTime_max\",\n \"Unit\":\"ns\"\n },\n {\n \"Metric\": \"Kernel Time (Cycles)\",\n \"Avg\": \"&kernelCycle_avg\",\n \"Min\": \"&kernelCycle_min\",\n \"Max\": \"&kernelCycle_max\",\n \"Unit\":\"Cycle\"\n },\n\n {\n \"Metric\": \"Instr/wavefront\",\n \"Avg\": \"&instrWavefront_avg\",\n \"Min\": \"&instrWavefront_min\",\n \"Max\": \"&instrWavefront_max\",\n \"Unit\": \"Instr/wavefront\"\n },\n {\n \"Metric\": \"Wave Cycles\",\n \"Avg\": \"&waveCycles_avg\",\n \"Min\": \"&waveCycles_min\",\n \"Max\": \"&waveCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Dependency Wait Cycles\",\n \"Avg\": \"&depWaitingCycles_avg\",\n \"Min\": \"&depWaitingCycles_min\",\n \"Max\": \"&depWaitingCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Issue Wait Cycles\",\n \"Avg\": \"&issueWaitCycles_avg\",\n \"Min\": \"&issueWaitCycles_min\",\n \"Max\": \"&issueWaitCycles_max\",\n \"Unit\": \"Cycles/wave\"\n },\n {\n \"Metric\": \"Active Cycles\",\n \"Avg\": \"&activeCycles_avg\",\n \"Min\": \"&activeCycles_min\",\n \"Max\": \"&activeCycles_max\",\n \"Unit\": \"Cycles/wave\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_LEVEL_WAVES\",\n \"pipeline\": [\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Wavefront)\"}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"occAvg\": {\"$avg\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } },\n \"occMin\": {\"$min\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } },\n \"occMax\": {\"$max\": { \"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&GRBM_GUI_ACTIVE\" ] } }\n }},\n {\"$project\": {\n \"_id\":0,\n \"Metric\": \"Wavefront Occupancy\",\n \"Avg\": \"&occAvg\",\n \"Min\":\"&occMin\",\n \"Max\":\"&occMax\",\n \"Unit\":\"Wavefronts\"\n }}\n ]\n }}\n ]);", - "type": "table" - } - ], - "title": "Wavefront Runtime Stats", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg": "", - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)", - "Unit 1": "", - "Unit 2": "" - } - } - } - ], - "type": "table" - }, - { - "collapsed": false, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 178 - }, - "id": 209, - "panels": [], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Compute Unit - Instruction Mix", - "type": "row" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [] - }, - "gridPos": { - "h": 17, - "w": 12, - "x": 0, - "y": 179 - }, - "id": 12, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "text": { - "valueSize": 16 - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"valu_avg\": {\n \"$avg\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_MFMA\"]}, \"&denom\" ] }\n },\n \"mfma_avg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_MFMA\", \"&denom\" ] }\n },\n \"vmem_avg\": {\n \"$avg\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VMEM\", \"&SQ_INSTS_FLAT_LDS_ONLY\"]}, \"&denom\" ] }\n },\n \"lds_avg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_LDS\", \"&denom\" ] }\n },\n \"salu_avg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SALU\", \"&denom\" ] }\n },\n \"smem_avg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SMEM\", \"&denom\" ] }\n },\n \"branch_avg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_BRANCH\", \"&denom\" ] }\n },\n \"gds_avg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_GDS\", \"&denom\" ] }\n },\n \"valu_min\": {\n \"$min\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_MFMA\"]}, \"&denom\" ] }\n },\n \"mfma_min\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS_MFMA\", \"&denom\" ] }\n },\n \"vmem_min\": {\n \"$min\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VMEM\", \"&SQ_INSTS_FLAT_LDS_ONLY\"]}, \"&denom\" ] }\n },\n \"lds_min\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS_LDS\", \"&denom\" ] }\n },\n \"salu_min\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS_SALU\", \"&denom\" ] }\n },\n \"smem_min\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS_SMEM\", \"&denom\" ] }\n },\n \"branch_min\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS_BRANCH\", \"&denom\" ] }\n },\n \"gds_min\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS_GDS\", \"&denom\" ] }\n },\n \"valu_max\": {\n \"$max\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_MFMA\"]}, \"&denom\" ] }\n },\n \"mfma_max\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS_MFMA\", \"&denom\" ] }\n },\n \"vmem_max\": {\n \"$max\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VMEM\", \"&SQ_INSTS_FLAT_LDS_ONLY\"]}, \"&denom\" ] }\n },\n \"lds_max\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS_LDS\", \"&denom\" ] }\n },\n \"salu_max\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS_SALU\", \"&denom\" ] }\n },\n \"smem_max\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS_SMEM\", \"&denom\" ] }\n },\n \"branch_max\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS_BRANCH\", \"&denom\" ] }\n },\n \"gds_max\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS_GDS\", \"&denom\" ] }\n }\n\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"VALU - Vector\",\n \"avg\": \"&valu_avg\",\n \"min\": \"&valu_min\",\n \"max\": \"&valu_max\"\n },\n {\n \"metric\": \"VMEM\",\n \"avg\": \"&vmem_avg\",\n \"min\": \"&vmem_min\",\n \"max\": \"&vmem_max\"\n },\n {\n \"metric\": \"LDS\",\n \"avg\": \"&lds_avg\",\n \"min\": \"&lds_min\",\n \"max\": \"&lds_max\"\n },\n {\n \"metric\": \"VALU - MFMA\",\n \"avg\": \"&mfma_avg\",\n \"min\": \"&mfma_min\",\n \"max\": \"&mfma_max\"\n },\n {\n \"metric\": \"SALU\",\n \"avg\": \"&salu_avg\",\n \"min\": \"&salu_min\",\n \"max\": \"&salu_max\"\n },\n {\n \"metric\": \"SMEM\",\n \"avg\": \"&smem_avg\",\n \"min\": \"&smem_min\",\n \"max\": \"&smem_max\"\n },\n {\n \"metric\": \"Branch\",\n \"avg\": \"&branch_avg\",\n \"min\": \"&branch_min\",\n \"max\": \"&branch_max\"\n },\n {\n \"metric\": \"GDS\",\n \"avg\": \"&gds_avg\",\n \"min\": \"&gds_min\",\n \"max\": \"&gds_max\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "$Workload2.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Mix)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"valu_avg\": {\n \"$avg\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_MFMA\"]}, \"&denom\" ] }\n },\n \"mfma_avg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_MFMA\", \"&denom\" ] }\n },\n \"vmem_avg\": {\n \"$avg\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VMEM\", \"&SQ_INSTS_FLAT_LDS_ONLY\"]}, \"&denom\" ] }\n },\n \"lds_avg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_LDS\", \"&denom\" ] }\n },\n \"salu_avg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SALU\", \"&denom\" ] }\n },\n \"smem_avg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_SMEM\", \"&denom\" ] }\n },\n \"branch_avg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_BRANCH\", \"&denom\" ] }\n },\n \"gds_avg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_GDS\", \"&denom\" ] }\n },\n \"valu_min\": {\n \"$min\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_MFMA\"]}, \"&denom\" ] }\n },\n \"mfma_min\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS_MFMA\", \"&denom\" ] }\n },\n \"vmem_min\": {\n \"$min\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VMEM\", \"&SQ_INSTS_FLAT_LDS_ONLY\"]}, \"&denom\" ] }\n },\n \"lds_min\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS_LDS\", \"&denom\" ] }\n },\n \"salu_min\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS_SALU\", \"&denom\" ] }\n },\n \"smem_min\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS_SMEM\", \"&denom\" ] }\n },\n \"branch_min\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS_BRANCH\", \"&denom\" ] }\n },\n \"gds_min\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS_GDS\", \"&denom\" ] }\n },\n \"valu_max\": {\n \"$max\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VALU\", \"&SQ_INSTS_MFMA\"]}, \"&denom\" ] }\n },\n \"mfma_max\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS_MFMA\", \"&denom\" ] }\n },\n \"vmem_max\": {\n \"$max\": { \"$divide\": [ { \"$subtract\": [\"&SQ_INSTS_VMEM\", \"&SQ_INSTS_FLAT_LDS_ONLY\"]}, \"&denom\" ] }\n },\n \"lds_max\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS_LDS\", \"&denom\" ] }\n },\n \"salu_max\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS_SALU\", \"&denom\" ] }\n },\n \"smem_max\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS_SMEM\", \"&denom\" ] }\n },\n \"branch_max\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS_BRANCH\", \"&denom\" ] }\n },\n \"gds_max\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS_GDS\", \"&denom\" ] }\n }\n\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"VALU - Vector (Baseline)\",\n \"avg\": \"&valu_avg\",\n \"min\": \"&valu_min\",\n \"max\": \"&valu_max\"\n },\n {\n \"metric\": \"VMEM (Baseline)\",\n \"avg\": \"&vmem_avg\",\n \"min\": \"&vmem_min\",\n \"max\": \"&vmem_max\"\n },\n {\n \"metric\": \"LDS (Baseline)\",\n \"avg\": \"&lds_avg\",\n \"min\": \"&lds_min\",\n \"max\": \"&lds_max\"\n },\n {\n \"metric\": \"VALU - MFMA (Baseline)\",\n \"avg\": \"&mfma_avg\",\n \"min\": \"&mfma_min\",\n \"max\": \"&mfma_max\"\n },\n {\n \"metric\": \"SALU (Baseline)\",\n \"avg\": \"&salu_avg\",\n \"min\": \"&salu_min\",\n \"max\": \"&salu_max\"\n },\n {\n \"metric\": \"SMEM (Baseline)\",\n \"avg\": \"&smem_avg\",\n \"min\": \"&smem_min\",\n \"max\": \"&smem_max\"\n },\n {\n \"metric\": \"Branch (Baseline)\",\n \"avg\": \"&branch_avg\",\n \"min\": \"&branch_min\",\n \"max\": \"&branch_max\"\n },\n {\n \"metric\": \"GDS (Baseline)\",\n \"avg\": \"&gds_avg\",\n \"min\": \"&gds_min\",\n \"max\": \"&gds_max\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "Instruction Mix", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "field": "metric" - } - ] - } - }, - { - "id": "organize", - "options": { - "excludeByName": { - "max": true, - "min": true - }, - "indexByName": {}, - "renameByName": { - "avg": "" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 24, - "w": 12, - "x": 12, - "y": 179 - }, - "id": 24, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "/^count$/", - "limit": 100, - "values": true - }, - "showUnfilled": true, - "text": {} - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"count_int_i32\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_INT32\", \"&denom\" ] }\n },\n \"count_int_i64\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_INT64\", \"&denom\" ] }\n },\n \"count_f16_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F16\", \"&denom\" ] }\n },\n \"count_f16_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F16\", \"&denom\" ] }\n },\n \"count_f16_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F16\", \"&denom\" ] }\n },\n \"count_f16_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F16\", \"&denom\" ] }\n },\n \"count_f32_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F32\", \"&denom\" ] }\n },\n \"count_f32_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F32\", \"&denom\" ] }\n },\n \"count_f32_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F32\", \"&denom\" ] }\n },\n \"count_f32_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F32\", \"&denom\" ] }\n },\n \"count_f64_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F64\", \"&denom\" ] }\n },\n \"count_f64_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F64\", \"&denom\" ] }\n },\n \"count_f64_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F64\", \"&denom\" ] }\n },\n \"count_f64_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F64\", \"&denom\" ] }\n },\n \"conversion\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_CVT\", \"&denom\" ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"INT32\",\n \"count\": \"&count_int_i32\"\n },\n {\n \"metric\": \"INT64\",\n \"count\": \"&count_int_i64\"\n },\n {\n \"metric\": \"F16-ADD\",\n \"count\": \"&count_f16_add\"\n },\n {\n \"metric\": \"F16-MUL\",\n \"count\": \"&count_f16_MUL\"\n },\n {\n \"metric\": \"F16-FMA\",\n \"count\": \"&count_f16_fma\"\n },\n {\n \"metric\": \"F16-Trans\",\n \"count\": \"&count_f16_trans\"\n },\n {\n \"metric\": \"F32-ADD\",\n \"count\": \"&count_f32_add\"\n },\n {\n \"metric\": \"F32-MUL\",\n \"count\": \"&count_f32_MUL\"\n },\n {\n \"metric\": \"F32-FMA\",\n \"count\": \"&count_f32_fma\"\n },\n {\n \"metric\": \"F32-Trans\",\n \"count\": \"&count_f32_trans\"\n },\n {\n \"metric\": \"F64-ADD\",\n \"count\": \"&count_f64_add\"\n },\n {\n \"metric\": \"F64-MUL\",\n \"count\": \"&count_f64_MUL\"\n },\n {\n \"metric\": \"F64-FMA\",\n \"count\": \"&count_f64_fma\"\n },\n {\n \"metric\": \"F64-Trans\",\n \"count\": \"&count_f64_trans\"\n },\n {\n \"metric\": \"Conversion\",\n \"count\": \"&conversion\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Mix)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"count_int_i32\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_INT32\", \"&denom\" ] }\n },\n \"count_int_i64\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_INT64\", \"&denom\" ] }\n },\n \"count_f16_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F16\", \"&denom\" ] }\n },\n \"count_f16_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F16\", \"&denom\" ] }\n },\n \"count_f16_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F16\", \"&denom\" ] }\n },\n \"count_f16_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F16\", \"&denom\" ] }\n },\n \"count_f32_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F32\", \"&denom\" ] }\n },\n \"count_f32_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F32\", \"&denom\" ] }\n },\n \"count_f32_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F32\", \"&denom\" ] }\n },\n \"count_f32_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F32\", \"&denom\" ] }\n },\n \"count_f64_add\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_ADD_F64\", \"&denom\" ] }\n },\n \"count_f64_MUL\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MUL_F64\", \"&denom\" ] }\n },\n \"count_f64_fma\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_FMA_F64\", \"&denom\" ] }\n },\n \"count_f64_trans\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_TRANS_F64\", \"&denom\" ] }\n },\n \"conversion\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_CVT\", \"&denom\" ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"INT32 (Baseline)\",\n \"count\": \"&count_int_i32\"\n },\n {\n \"metric\": \"INT64 (Baseline)\",\n \"count\": \"&count_int_i64\"\n },\n {\n \"metric\": \"F16-ADD (Baseline)\",\n \"count\": \"&count_f16_add\"\n },\n {\n \"metric\": \"F16-MUL (Baseline)\",\n \"count\": \"&count_f16_MUL\"\n },\n {\n \"metric\": \"F16-FMA (Baseline)\",\n \"count\": \"&count_f16_fma\"\n },\n {\n \"metric\": \"F16-Trans (Baseline)\",\n \"count\": \"&count_f16_trans\"\n },\n {\n \"metric\": \"F32-ADD (Baseline)\",\n \"count\": \"&count_f32_add\"\n },\n {\n \"metric\": \"F32-MUL (Baseline)\",\n \"count\": \"&count_f32_MUL\"\n },\n {\n \"metric\": \"F32-FMA (Baseline)\",\n \"count\": \"&count_f32_fma\"\n },\n {\n \"metric\": \"F32-Trans (Baseline)\",\n \"count\": \"&count_f32_trans\"\n },\n {\n \"metric\": \"F64-ADD (Baseline)\",\n \"count\": \"&count_f64_add\"\n },\n {\n \"metric\": \"F64-MUL (Baseline)\",\n \"count\": \"&count_f64_MUL\"\n },\n {\n \"metric\": \"F64-FMA (Baseline)\",\n \"count\": \"&count_f64_fma\"\n },\n {\n \"metric\": \"F64-Trans (Baseline)\",\n \"count\": \"&count_f64_trans\"\n },\n {\n \"metric\": \"Conversion (Baseline)\",\n \"count\": \"&conversion\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "VALU Arithmetic Instr Mix", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "field": "metric" - } - ] - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 0, - "y": 196 - }, - "id": 275, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"buffer_instr\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_read\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_write\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_atomic\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \n \"flat_instr\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_read\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_write\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_atomic\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\" ] }\n }\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"type\": \"Buffer Instr\",\n \"count\": \"&buffer_instr\"\n },\n {\n \"type\": \"Buffer Read\",\n \"count\": \"&buffer_read\"\n },\n {\n \"type\": \"Buffer Write\",\n \"count\": \"&buffer_write\"\n },\n {\n \"type\": \"Buffer Atomic\",\n \"count\": \"&buffer_atomic\"\n },\n {\n \"type\": \"Flat Instr\",\n \"count\": \"&flat_instr\"\n },\n {\n \"type\": \"Flat Read\",\n \"count\": \"&flat_read\"\n },\n {\n \"type\": \"Flat Write\",\n \"count\": \"&flat_write\"\n },\n {\n \"type\": \"Flat Atomic\",\n \"count\": \"&flat_atomic\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Mix)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"buffer_instr\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_read\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_write\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"buffer_atomic\": {\n \"$avg\": { \"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n\n \"flat_instr\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_read\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_write\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\" ] }\n },\n \"flat_atomic\": {\n \"$avg\": { \"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\" ] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"type\": \"Buffer Instr (Baseline)\",\n \"count\": \"&buffer_instr\"\n },\n {\n \"type\": \"Buffer Read (Baseline)\",\n \"count\": \"&buffer_read\"\n },\n {\n \"type\": \"Buffer Write (Baseline)\",\n \"count\": \"&buffer_write\"\n },\n {\n \"type\": \"Buffer Atomic (Baseline)\",\n \"count\": \"&buffer_atomic\"\n },\n {\n \"type\": \"Flat Instr (Baseline)\",\n \"count\": \"&flat_instr\"\n },\n {\n \"type\": \"Flat Read (Baseline)\",\n \"count\": \"&flat_read\"\n },\n {\n \"type\": \"Flat Write (Baseline)\",\n \"count\": \"&flat_write\"\n },\n {\n \"type\": \"Flat Atomic (Baseline)\",\n \"count\": \"&flat_atomic\"\n }\n\n ]\n }},\n\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "VMEM Instr Mix", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "type 2": true - }, - "indexByName": {}, - "renameByName": { - "count": "Count", - "count 1": "Avg (Current)", - "count 2": "Avg (Baseline)", - "type": "VMEM Instr", - "type 1": "VMEM Instr" - } - } - } - ], - "transparent": true, - "type": "table" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 12, - "x": 12, - "y": 203 - }, - "id": 16, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"mfma_i8\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_I8\", \"&denom\" ] }\n },\n \"mfma_f16\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F16\", \"&denom\" ] }\n },\n \"mfma_bf16\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_BF16\", \"&denom\" ] }\n },\n \"mfma_f32\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F32\", \"&denom\" ] }\n },\n \"mfma_f64\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F64\", \"&denom\" ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"type\": \"MFMA-I8\",\n \"count\": \"&mfma_i8\"\n },\n {\n \"type\": \"MFMA-F16\",\n \"count\": \"&mfma_f16\"\n },\n {\n \"type\": \"MFMA-BF16\",\n \"count\": \"&mfma_bf16\"\n },\n {\n \"type\": \"MFMA-F32\",\n \"count\": \"&mfma_f32\"\n },\n {\n \"type\": \"MFMA-F64\",\n \"count\": \"&mfma_f64\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Mix)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"mfma_i8\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_I8\", \"&denom\" ] }\n },\n \"mfma_f16\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F16\", \"&denom\" ] }\n },\n \"mfma_bf16\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_BF16\", \"&denom\" ] }\n },\n \"mfma_f32\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F32\", \"&denom\" ] }\n },\n \"mfma_f64\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS_VALU_MFMA_F64\", \"&denom\" ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"type\": \"MFMA-I8 (Baseline)\",\n \"count\": \"&mfma_i8\"\n },\n {\n \"type\": \"MFMA-F16 (Baseline)\",\n \"count\": \"&mfma_f16\"\n },\n {\n \"type\": \"MFMA-BF16 (Baseline)\",\n \"count\": \"&mfma_bf16\"\n },\n {\n \"type\": \"MFMA-F32 (Baseline)\",\n \"count\": \"&mfma_f32\"\n },\n {\n \"type\": \"MFMA-F64 (Baseline)\",\n \"count\": \"&mfma_f64\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "MFMA Arithmetic Instr Mix", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "type 2": true - }, - "indexByName": {}, - "renameByName": { - "count": "Count", - "count 1": "Avg (Current)", - "count 2": "Avg (Baseline)", - "type": "MFMA Instr", - "type 1": "MFMA Instr" - } - } - } - ], - "transparent": true, - "type": "table" - }, - { - "collapsed": false, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 213 - }, - "id": 8, - "panels": [], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Compute Unit - Compute Pipeline", - "type": "row" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 0, - "y": 214 - }, - "id": 211, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "/.*/", - "values": true - }, - "showUnfilled": true, - "text": { - "titleSize": 14, - "valueSize": 14 - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n{\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"valu_flops_val\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }] }] }\n ]}\n ,{ \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }]\n }},\n\n \"mfma_flops_f16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] } },\n \"mfma_flops_bf16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] } },\n \"mfma_flops_f32_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] } },\n \"mfma_flops_f64_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] } },\n \"mfma_flops_i8_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] } }\n\n }}, \n {\"$set\": {\n \"array\": [\n {\n \"valu_flops_pop\": {\"$divide\": [{ \"$multiply\": [100, \"&valu_flops_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $cu_per_gpu, 64, 2 ]}, 1000] }] },\n \"mfma_flops_bf16_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_bf16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $cu_per_gpu, 512 ]}, 1000] }]},\n \"mfma_flops_f16_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $cu_per_gpu, 1024 ]}, 1000] }]},\n \"mfma_flops_f32_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f32_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $cu_per_gpu, 256 ]}, 1000] }]},\n \"mfma_flops_f64_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f64_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $cu_per_gpu, 256 ]}, 1000] }]},\n \"mfma_flops_i8_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_i8_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk, $cu_per_gpu, 1024 ]}, 1000] }]}\n }\n ]\n }},\n\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n \n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"valu_flops_val\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F16\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F32\"] }] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", { \"$multiply\": [2, \"&SQ_INSTS_VALU_FMA_F64\"] }] }] }\n ]}\n ,{ \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }]\n }},\n\n \"mfma_flops_f16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F16\", 512] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] } },\n \"mfma_flops_bf16_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_BF16\", 512] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] } },\n \"mfma_flops_f32_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F32\", 512] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] } },\n \"mfma_flops_f64_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_F64\", 512] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] } },\n \"mfma_flops_i8_val\": { \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] } },\n\n \"instr_val\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS\", { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] }] }\n }\n\n }}, \n {\"$set\": {\n \"array\": [\n {\n \"valu_flops_pop\": {\"$divide\": [{ \"$multiply\": [100, \"&valu_flops_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $cu_per_gpu2, 64, 2 ]}, 1000] }] },\n \"mfma_flops_bf16_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_bf16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $cu_per_gpu2, 512 ]}, 1000] }]},\n \"mfma_flops_f16_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f16_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $cu_per_gpu2, 1024 ]}, 1000] }]},\n \"mfma_flops_f32_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f32_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $cu_per_gpu2, 256 ]}, 1000] }]},\n \"mfma_flops_f64_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_f64_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $cu_per_gpu2, 256 ]}, 1000] }]},\n \"mfma_flops_i8_pop\": { \"$divide\": [{ \"$multiply\": [100, \"&mfma_flops_i8_val\"] }, { \"$divide\": [{ \"$multiply\": [$sclk2, $cu_per_gpu2, 1024 ]}, 1000] }]}\n }\n ]\n }},\n\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n \n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - } - ], - "title": "Speed-of-Light: Compute Pipeline", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "mfma_flops_bf16_pop 1": 4, - "mfma_flops_bf16_pop 2": 5, - "mfma_flops_f16_pop 1": 6, - "mfma_flops_f16_pop 2": 7, - "mfma_flops_f32_pop 1": 8, - "mfma_flops_f32_pop 2": 9, - "mfma_flops_f64_pop 1": 10, - "mfma_flops_f64_pop 2": 11, - "mfma_flops_i8_pop 1": 12, - "mfma_flops_i8_pop 2": 13, - "valu_flops_pop 1": 0, - "valu_flops_pop 2": 1, - "valu_iops_pop 1": 2, - "valu_iops_pop 2": 3 - }, - "renameByName": { - "BW (Pct-of-Peak) 1": "BW Pct-of-Peak (Current)", - "BW (Pct-of-Peak) 2": "BW Pct-of-Peak (Baseline)", - "Bandwith (Pct-of-Peak)": "", - "Bandwith (Pct-of-Peak) 1": "BW Pct-of-Peak (Current)", - "Bandwith (Pct-of-Peak) 2": "BW Pct-of-Peak (Baseline) ", - "Bank Conflict Rate 1": "Bank Conflict Rate (Current)", - "Bank Conflict Rate 2": "Bank Conflict Rate (Baseline)", - "Cache Hit 1": "Cache Hit (Current)", - "Cache Hit 2": "Cache Hit (Baseline)", - "Latency (Cycles) 1": "Latency (Current) [Cycles]", - "Latency (Cycles) 2": "Latency (Baseline) [Cycles]", - "Stall 1": "Stall (Current)", - "Stall 2": "Stall (Baseline)", - "Util 1": "Util (Current)", - "Util 2": "Util (Baseline)", - "flops_pop": "FLOPs", - "flops_pop 1": "FLOPs (Current)", - "flops_pop 2": "FLOPs (Baseline)", - "iops_pop": "IOPs", - "iops_pop 1": "IOPs (Current)", - "iops_pop 2": "IOPs (Baseline)", - "mfma_flops_bf16_pop": "MFMA- BF16 (FLOPs)", - "mfma_flops_bf16_pop 1": "MFMA-BF16 (Cur)", - "mfma_flops_bf16_pop 2": "MFMA-BF16 (Baseline)", - "mfma_flops_f16_pop": "MFMA-F16 (FLOPs)", - "mfma_flops_f16_pop 1": "MFMA-F16 (Cur)", - "mfma_flops_f16_pop 2": "MFMA-F16 (Baseline)", - "mfma_flops_f32_pop": "MFMA-F32 (FLOPs)", - "mfma_flops_f32_pop 1": "MFMA-F32 (Cur)", - "mfma_flops_f32_pop 2": "MFMA-F32 (Baseline)", - "mfma_flops_f64_pop": "MFMA-F64 (FLOPs)", - "mfma_flops_f64_pop 1": "MFMA-F64 (Cur)", - "mfma_flops_f64_pop 2": "MFMA-F64 (Baseline)", - "mfma_flops_i8_pop": "MFMA-i8 (IOPs)", - "mfma_flops_i8_pop 1": "MFMA-I8 (Cur)", - "mfma_flops_i8_pop 2": "MFMA-I8 (Baseline)", - "valu_flops_pop": "VALU (FLOPs)", - "valu_flops_pop 1": "VALU FLOPs (Cur)", - "valu_flops_pop 2": "VALU FLOPs (Baseline)", - "valu_iops_pop": "VALU (IOPs)", - "valu_iops_pop 1": "VALU IOPs (Cur)", - "valu_iops_pop 2": "VALU IOPs (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 12, - "y": 214 - }, - "id": 257, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "rawQuery": true, - "refId": "pmc_perf", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_ipcAvg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] }\n },\n \"min_ipcAvg\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] } \n },\n \"max_ipcAvg\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] }\n },\n \n \"avg_ipcIssue\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"min_ipcIssue\": {\n \"$min\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"max_ipcIssue\": {\n \"$max\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n\n \"avg_saluUtil\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$cu_per_gpu ] }\n },\n \"min_saluUtil\": {\n \"$min\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$cu_per_gpu ] }\n },\n \"max_saluUtil\": {\n \"$max\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$cu_per_gpu ] }\n },\n\n \"avg_valuUtil\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$cu_per_gpu ] }\n },\n \"min_valuUtil\": {\n \"$min\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$cu_per_gpu ] }\n },\n \"max_valuUtil\": {\n \"$max\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$cu_per_gpu ] }\n },\n\n \"avg_mfmaUtil\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $cu_per_gpu, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n \"min_mfmaUtil\": {\n \"$min\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $cu_per_gpu, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n \"max_mfmaUtil\": {\n \"$max\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $cu_per_gpu, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n\n \"avg_mfmaInstrCycles\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n \"min_mfmaInstrCycles\": {\n \"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n \"max_mfmaInstrCycles\": {\n \"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n\n\n \"avg_unpredthreads_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \"min_unpredthreads_val\": {\n \"$min\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \"max_unpredthreads_val\": {\n \"$max\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n\n \"avg_instrFetchBand\": {\n \"$avg\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] } ] }\n },\n \"min_instrFetchBand\": {\n \"$min\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] } ] }\n },\n \"max_instrFetchBand\": {\n \"$max\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] } ] }\n }\n\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"IPC (Avg)\",\n \"Avg\": \"&avg_ipcAvg\",\n \"Min\": \"&min_ipcAvg\",\n \"Max\": \"&max_ipcAvg\",\n \"Unit\": \"Instr/cycle\"\n },\n {\n \"Metric\": \"IPC (Issue)\",\n \"Avg\": \"&avg_ipcIssue\",\n \"Min\": \"&min_ipcIssue\",\n \"Max\": \"&max_ipcIssue\",\n \"Unit\": \"Instr/cycle\"\n },\n {\n \"Metric\": \"SALU Util\",\n \"Avg\": \"&avg_saluUtil\",\n \"Min\": \"&min_saluUtil\",\n \"Max\": \"&max_saluUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"VALU Util\",\n \"Avg\": \"&avg_valuUtil\",\n \"Min\": \"&min_valuUtil\",\n \"Max\": \"&max_valuUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"VALU Active Threads\",\n \"Avg\": \"&avg_unpredthreads_val\",\n \"Min\": \"&min_unpredthreads_val\",\n \"Max\": \"&max_unpredthreads_val\",\n \"Unit\": \"Threads\"\n },\n {\n \"Metric\": \"MFMA Util\",\n \"Avg\": \"&avg_mfmaUtil\",\n \"Min\": \"&min_mfmaUtil\",\n \"Max\": \"&max_mfmaUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"MFMA Instr Cycles\",\n \"Avg\": \"&avg_mfmaInstrCycles\",\n \"Min\": \"&min_mfmaInstrCycles\",\n \"Max\": \"&max_mfmaInstrCycles\",\n \"Unit\": \"cycles/instr\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "pmc_perf2", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_ipcAvg\": {\n \"$avg\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] }\n },\n \"min_ipcAvg\": {\n \"$min\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] } \n },\n \"max_ipcAvg\": {\n \"$max\": { \"$divide\": [ \"&SQ_INSTS\", \"&SQ_BUSY_CU_CYCLES\" ] }\n },\n \n \"avg_ipcIssue\": {\n \"$avg\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"min_ipcIssue\": {\n \"$min\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n \"max_ipcIssue\": {\n \"$max\": { \"$divide\": [ { \"$add\": [ \"&SQ_INSTS_VALU\", \"&SQ_INSTS_VMEM\",\"&SQ_INSTS_SALU\", \"&SQ_INSTS_SMEM\", \"&SQ_INSTS_GDS\", \"&SQ_INSTS_BRANCH\", \"&SQ_INSTS_SENDMSG\", \"&SQ_INSTS_VSKIPPED\"] }, \"&SQ_ACTIVE_INST_ANY\"] }\n },\n\n \"avg_saluUtil\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$cu_per_gpu2 ] }\n },\n \"min_saluUtil\": {\n \"$min\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$cu_per_gpu2 ] }\n },\n \"max_saluUtil\": {\n \"$max\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_SCA\"] }, \"&GRBM_GUI_ACTIVE\"] },$cu_per_gpu2 ] }\n },\n\n \"avg_valuUtil\": {\n \"$avg\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$cu_per_gpu2 ] }\n },\n \"min_valuUtil\": {\n \"$min\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$cu_per_gpu2 ] }\n },\n \"max_valuUtil\": {\n \"$max\": { \"$divide\": [{ \"$divide\": [ { \"$multiply\": [100, \"&SQ_ACTIVE_INST_VALU\"] }, \"&GRBM_GUI_ACTIVE\"] },$cu_per_gpu2 ] }\n },\n\n\n \"avg_mfmaUtil\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $cu_per_gpu2, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n \"min_mfmaUtil\": {\n \"$min\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $cu_per_gpu2, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n \"max_mfmaUtil\": {\n \"$max\": { \"$divide\": [{ \"$multiply\": [100, \"&SQ_VALU_MFMA_BUSY_CYCLES\"] }, { \"$multiply\": [4, $cu_per_gpu2, \"&GRBM_GUI_ACTIVE\"] }] }\n },\n\n \"avg_mfmaInstrCycles\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n \"min_mfmaInstrCycles\": {\n \"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n \"max_mfmaInstrCycles\": {\n \"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_MFMA\", 0]},\n {\"$divide\": [ \"&SQ_VALU_MFMA_BUSY_CYCLES\", \"&SQ_INSTS_MFMA\" ]},\n null\n ]\n }\n },\n\n \"avg_unpredthreads_val\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \"min_unpredthreads_val\": {\n \"$min\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n \"max_unpredthreads_val\": {\n \"$max\": {\n \"$cond\": [\n {\"$ne\":[\"&SQ_ACTIVE_INST_VALU\" , 0]},\n { \"$divide\": [\"&SQ_THREAD_CYCLES_VALU\", \"&SQ_ACTIVE_INST_VALU\"] },\n null\n ]\n }\n },\n\n \"avg_instrFetchBand\": {\n \"$avg\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] } ] }\n },\n \"min_instrFetchBand\": {\n \"$min\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] } ] }\n },\n \"max_instrFetchBand\": {\n \"$max\": { \"$divide\": [ { \"$multiply\": [\"&SQ_IFETCH\", 32] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] } ] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"IPC (Avg)\",\n \"Avg 2\": \"&avg_ipcAvg\",\n \"Min 2\": \"&min_ipcAvg\",\n \"Max 2\": \"&max_ipcAvg\",\n \"Unit\": \"Instr/cycle\"\n },\n {\n \"Metric\": \"IPC (Issue)\",\n \"Avg 2\": \"&avg_ipcIssue\",\n \"Min 2\": \"&min_ipcIssue\",\n \"Max 2\": \"&max_ipcIssue\",\n \"Unit\": \"Instr/cycle\"\n },\n {\n \"Metric\": \"SALU Util\",\n \"Avg 2\": \"&avg_saluUtil\",\n \"Min 2\": \"&min_saluUtil\",\n \"Max 2\": \"&max_saluUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"VALU Util\",\n \"Avg 2\": \"&avg_valuUtil\",\n \"Min 2\": \"&min_valuUtil\",\n \"Max 2\": \"&max_valuUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"VALU Active Threads\",\n \"Avg 2\": \"&avg_unpredthreads_val\",\n \"Min 2\": \"&min_unpredthreads_val\",\n \"Max 2\": \"&max_unpredthreads_val\",\n \"Unit\": \"Threads\"\n },\n {\n \"Metric\": \"MFMA Util\",\n \"Avg 2\": \"&avg_mfmaUtil\",\n \"Min 2\": \"&min_mfmaUtil\",\n \"Max 2\": \"&max_mfmaUtil\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"MFMA Instr Cycles\",\n \"Avg 2\": \"&avg_mfmaInstrCycles\",\n \"Min 2\": \"&min_mfmaInstrCycles\",\n \"Max 2\": \"&max_mfmaInstrCycles\",\n \"Unit\": \"cycles/instr\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Pipeline Stats", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Avg": 1, - "Avg 2": 2, - "Max": 5, - "Max 2": 6, - "Metric": 0, - "Min": 3, - "Min 2": 4, - "Unit": 7 - }, - "renameByName": { - "Avg 2": "Avg (Baseline)", - "Max 2": "Max (Baseline)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 111 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 117 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 135 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 112 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 83 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 118 - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 225 - }, - "id": 96, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_intOps\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n \"min_intOps\":{\"$min\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n \"max_intOps\":{\"$max\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n\n\n \"avg_flops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"min_flops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n\n \"max_flops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n\n\n \"avg_int8Ops\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n \"min_int8Ops\":{\"$min\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n \"max_int8Ops\":{\"$max\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n\n \"avg_int32Ops\":{\"$avg\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n \"min_int32Ops\":{\"$min\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n \"max_int32Ops\":{\"$max\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n\n \"avg_int64Ops\":{\"$avg\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n \"min_int64Ops\":{\"$min\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n \"max_int64Ops\":{\"$max\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n\n \"avg_f16Ops\":{\"$avg\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n \"min_f16Ops\":{\"$min\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n \"max_f16Ops\":{\"$max\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n\n\n\n \"avg_bf16Ops\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n \"min_bf16Ops\":{\"$min\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n \"max_bf16Ops\":{\"$max\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n\n \"avg_f32Ops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n \"min_f32Ops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n \"max_f32Ops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n\n \"avg_f64Ops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"min_f64Ops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"max_f64Ops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"FLOPs (Total)\",\n \"Avg\": \"&avg_flops\",\n \"Min\": \"&min_flops\",\n \"Max\": \"&max_flops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"INT8 OPs\",\n \"Avg\": \"&avg_int8Ops\",\n \"Min\": \"&min_int8Ops\",\n \"Max\": \"&max_int8Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"F16 OPs\",\n \"Avg\": \"&avg_f16Ops\",\n \"Min\": \"&min_f16Ops\",\n \"Max\": \"&max_f16Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"BF16 OPs\",\n \"Avg\": \"&avg_bf16Ops\",\n \"Min\": \"&min_bf16Ops\",\n \"Max\": \"&max_bf16Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n\n {\n \"Metric\": \"F32 OPs\",\n \"Avg\": \"&avg_f32Ops\",\n \"Min\": \"&min_f32Ops\",\n \"Max\": \"&max_f32Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"F64 OPs\",\n \"Avg\": \"&avg_f64Ops\",\n \"Min\": \"&min_f64Ops\",\n \"Max\": \"&max_f64Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_intOps\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n \"min_intOps\":{\"$min\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n \"max_intOps\":{\"$max\": {\n \"$divide\": [{ \"$add\": [{ \"$multiply\": [{ \"$add\": [\"&SQ_INSTS_VALU_INT32\", \"&SQ_INSTS_VALU_INT64\"] },64] }, { \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\",512] }] },\"&denom\"]\n }},\n\n\n \"avg_flops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"min_flops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n\n \"max_flops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F16\", \"&SQ_INSTS_VALU_MUL_F16\", \"&SQ_INSTS_VALU_TRANS_F16\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F16\", 2]}] }] },\n { \"$add\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"] }, { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] },\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n\n\n \"avg_int8Ops\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n \"min_int8Ops\":{\"$min\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n \"max_int8Ops\":{\"$max\": { \"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_MFMA_MOPS_I8\", 512] }, \"&denom\"] }},\n\n \"avg_int32Ops\":{\"$avg\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n \"min_int32Ops\":{\"$min\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n \"max_int32Ops\":{\"$max\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT32\", 64] }, \"&denom\"] }},\n\n \"avg_int64Ops\":{\"$avg\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n \"min_int64Ops\":{\"$min\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n \"max_int64Ops\":{\"$max\": {\"$divide\": [{ \"$multiply\": [\"&SQ_INSTS_VALU_INT64\", 64] }, \"&denom\"] }},\n\n \"avg_f16Ops\":{\"$avg\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n \"min_f16Ops\":{\"$min\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n \"max_f16Ops\":{\"$max\": {\n \"$divide\": [ \n {\"$add\": [{ \"$multiply\": [64, \"&SQ_INSTS_VALU_ADD_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_MUL_F16\"]}, \n { \"$multiply\": [64, \"&SQ_INSTS_VALU_TRANS_F16\"]}, \n { \"$multiply\": [128, \"&SQ_INSTS_VALU_FMA_F16\"]}, \n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F16\"]}\n ]},\n \"&denom\"]\n }},\n\n\n\n \"avg_bf16Ops\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n \"min_bf16Ops\":{\"$min\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n \"max_bf16Ops\":{\"$max\": { \"$divide\": [{ \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_BF16\"] }, \"&denom\"] }},\n\n \"avg_f32Ops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n \"min_f32Ops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n \"max_f32Ops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F32\", \"&SQ_INSTS_VALU_MUL_F32\", \"&SQ_INSTS_VALU_TRANS_F32\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F32\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F32\"] }\n ] }, \"&denom\"]\n }},\n\n \"avg_f64Ops\":{\"$avg\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"min_f64Ops\":{\"$min\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }},\n \"max_f64Ops\":{\"$max\": {\n \"$divide\": [{ \"$add\": [\n { \"$multiply\": [64, { \"$add\": [\"&SQ_INSTS_VALU_ADD_F64\", \"&SQ_INSTS_VALU_MUL_F64\", \"&SQ_INSTS_VALU_TRANS_F64\", {\"$multiply\": [\"&SQ_INSTS_VALU_FMA_F64\", 2]}] }] },\n { \"$multiply\": [512, \"&SQ_INSTS_VALU_MFMA_MOPS_F64\"] }\n ] }, \"&denom\"]\n }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"FLOPs (Total)\",\n \"Avg\": \"&avg_flops\",\n \"Min\": \"&min_flops\",\n \"Max\": \"&max_flops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"INT8 OPs\",\n \"Avg\": \"&avg_int8Ops\",\n \"Min\": \"&min_int8Ops\",\n \"Max\": \"&max_int8Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"F16 OPs\",\n \"Avg\": \"&avg_f16Ops\",\n \"Min\": \"&min_f16Ops\",\n \"Max\": \"&max_f16Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"BF16 OPs\",\n \"Avg\": \"&avg_bf16Ops\",\n \"Min\": \"&min_bf16Ops\",\n \"Max\": \"&max_bf16Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n\n {\n \"Metric\": \"F32 OPs\",\n \"Avg\": \"&avg_f32Ops\",\n \"Min\": \"&min_f32Ops\",\n \"Max\": \"&max_f32Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n },\n {\n \"Metric\": \"F64 OPs\",\n \"Avg\": \"&avg_f64Ops\",\n \"Min\": \"&min_f64Ops\",\n \"Max\": \"&max_f64Ops\",\n \"Unit\": {\"$concat\": [\"OPs \", $normUnit] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Arithmetic Operations", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 1, - "Avg 2": 2, - "Max 1": 5, - "Max 2": 6, - "Metric 1": 0, - "Metric 2": 7, - "Min 1": 3, - "Min 2": 4, - "Unit 1": 9, - "Unit 2": 8 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 225 - }, - "id": 255, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_VMEM", - "target": "${Workload1}.SQ_INST_LEVEL_VMEM.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_vmemLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n },\n \"min_vmemLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n },\n \"max_vmemLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"VMEM Latency\",\n \"Avg\": \"&avg_vmemLat\",\n \"Min\": \"&min_vmemLat\",\n \"Max\": \"&max_vmemLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_SMEM", - "target": "${Workload1}.SQ_INST_LEVEL_SMEM.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_smemLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n },\n \"min_smemLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n },\n \"max_smemLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"SMEM Latency\",\n \"Avg\":\"&avg_smemLat\",\n \"Min\":\"&min_smemLat\",\n \"Max\":\"&max_smemLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_IFETCH_LEVEL", - "target": "${Workload1}.SQ_IFETCH_LEVEL.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_instrFetchLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n },\n \"min_instrFetchLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n },\n \"max_instrFetchLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"Instr Fetch Latency\",\n \"Avg\":\"&avg_instrFetchLat\",\n \"Min\":\"&min_instrFetchLat\",\n \"Max\":\"&max_instrFetchLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_LDS", - "target": "${Workload1}.SQ_INST_LEVEL_LDS.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_ldsLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"min_ldsLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"max_ldsLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"LDS Latency\",\n \"Avg\":\"&avg_ldsLat\",\n \"Min\":\"&min_ldsLat\",\n \"Max\":\"&max_ldsLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_VMEM2", - "target": "${Workload2}.SQ_INST_LEVEL_VMEM.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_vmemLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n },\n \"min_vmemLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n },\n \"max_vmemLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_VMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_VMEM\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"VMEM Latency\",\n \"Avg 2\": \"&avg_vmemLat\",\n \"Min 2\": \"&min_vmemLat\",\n \"Max 2\": \"&max_vmemLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_SMEM2", - "target": "${Workload2}.SQ_INST_LEVEL_SMEM.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_smemLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n },\n \"min_smemLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n },\n \"max_smemLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_SMEM\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_SMEM\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"SMEM Latency\",\n \"Avg 2\":\"&avg_smemLat\",\n \"Min 2\":\"&min_smemLat\",\n \"Max 2\":\"&max_smemLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_IFETCH_LEVEL2", - "target": "${Workload2}.SQ_IFETCH_LEVEL.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_instrFetchLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n },\n \"min_instrFetchLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n },\n \"max_instrFetchLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_IFETCH\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_IFETCH\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"Instr Fetch Latency\",\n \"Avg 2\":\"&avg_instrFetchLat\",\n \"Min 2\":\"&min_instrFetchLat\",\n \"Max 2\":\"&max_instrFetchLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "SQ_INST_LEVEL_LDS2", - "target": "${Workload2}.SQ_INST_LEVEL_LDS.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Compute Pipeline)\"}}\n }}, \n {\"$group\": {\n \"_id\": null,\n \"avg_ldsLat\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"min_ldsLat\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"max_ldsLat\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"Metric\": \"LDS Latency\",\n \"Avg 2\":\"&avg_ldsLat\",\n \"Min 2\":\"&min_ldsLat\",\n \"Max 2\":\"&max_ldsLat\",\n \"Unit\": \"Cycles\"\n }}\n]);", - "type": "table" - } - ], - "title": "Memory Latencies", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Avg": 1, - "Avg 2": 2, - "Max": 5, - "Max 2": 6, - "Metric": 0, - "Min": 3, - "Min 2": 4, - "Unit": 7 - }, - "renameByName": { - "Avg": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "collapsed": false, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 233 - }, - "id": 98, - "panels": [], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Local Data Share (LDS)", - "type": "row" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 234 - }, - "id": 205, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "/.*/", - "values": true - }, - "showUnfilled": true, - "text": { - "titleSize": 14, - "valueSize": 16 - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \n \"bconf_rate\": {\n \"$avg\": {\"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n {\"$multiply\": [\"&SQ_LDS_BANK_CONFLICT\", 3.125]},\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n } \n },\n \n \"bw_pop\": {\n \"$avg\": {\"$divide\": [\n {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$lds_banks_per_cu\"}\n ]}, \n {\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"]}\n ]},\n \n {\"$multiply\": [$sclk, $cu_per_gpu, 0.00128]}\n ]}\n },\n\n \"lds_util\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [ 100, \"&SQ_LDS_IDX_ACTIVE\" ]}, \n {\"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu]}\n ]}\n },\n\n \"lds_access_rate\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [200, \"&SQ_ACTIVE_INST_LDS\" ]}, \n {\"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu]}\n ]}\n }\n \n }},\n \n {\"$set\": {\n \"array\": [\n {\n \"Utilization\": \"&lds_util\",\n \"Access Rate\": \"&lds_access_rate\",\n \"Bandwith (Pct-of-Peak)\": \"&bw_pop\",\n \"Bank Conflict Rate\": \"&bconf_rate\"\n }\n \n ]\n }},\n \n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n \n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n \n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Local Data Share)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"bconf_rate\": {\n \"$avg\": {\"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n {\"$multiply\": [\"&SQ_LDS_BANK_CONFLICT\", 3.125]},\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n } \n },\n\n \"bw_pop\": {\n \"$avg\": {\"$divide\": [\n {\"$divide\":[ \n { \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, \n 4, \n {\"$toInt\": \"$lds_banks_per_cu2\"}\n ]}, \n {\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"]}\n ]},\n \n {\"$multiply\": [$sclk2, $cu_per_gpu2, 0.00128]}\n ]}\n },\n \"lds_util\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [ 100, \"&SQ_LDS_IDX_ACTIVE\" ]}, \n {\"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2]}\n ]}\n },\n\n \"lds_access_rate\": {\n \"$avg\": {\"$divide\":[ \n { \"$multiply\": [200, \"&SQ_ACTIVE_INST_LDS\" ]}, \n {\"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2]}\n ]}\n }\n\n\n }},\n\n {\"$set\": {\n \"array\": [\n {\n \"Utilization\": \"&lds_util\",\n \"Access Rate\": \"&lds_access_rate\",\n \"Bandwith (Pct-of-Peak)\": \"&bw_pop\",\n \"Bank Conflict Rate\": \"&bconf_rate\"\n }\n\n ]\n }},\n\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n \n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - } - ], - "title": "Speed-of-Light: LDS", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Access Rate 1": 6, - "Access Rate 2": 7, - "Bandwith (Pct-of-Peak) 1": 0, - "Bandwith (Pct-of-Peak) 2": 1, - "Bank Conflict Rate 1": 2, - "Bank Conflict Rate 2": 3, - "Utilization 1": 4, - "Utilization 2": 5 - }, - "renameByName": { - "Access Rate 1": "Access Rate (Current)", - "Access Rate 2": "Access Rate (Baseline)", - "BW (Pct-of-Peak) 1": "BW Pct-of-Peak (Current)", - "BW (Pct-of-Peak) 2": "BW Pct-of-Peak (Baseline)", - "Bandwith (Pct-of-Peak)": "", - "Bandwith (Pct-of-Peak) 1": "BW Pct-of-Peak (Current)", - "Bandwith (Pct-of-Peak) 2": "BW Pct-of-Peak (Baseline) ", - "Bank Conflict Rate 1": "Bank Conflict Rate (Current)", - "Bank Conflict Rate 2": "Bank Conflict Rate (Baseline)", - "Cache Hit 1": "Cache Hit (Current)", - "Cache Hit 2": "Cache Hit (Baseline)", - "Latency (Cycles) 1": "Latency (Current) [Cycles]", - "Latency (Cycles) 2": "Latency (Baseline) [Cycles]", - "Stall 1": "Stall (Current)", - "Stall 2": "Stall (Baseline)", - "Util 1": "Util (Current)", - "Util 2": "Util (Baseline)", - "Utilization 1": "Util (Current)", - "Utilization 2": "Util (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "min": -100000000000000000000, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 114 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 107 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 128 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 115 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 138 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 141 - } - ] - } - ] - }, - "gridPos": { - "h": 12, - "w": 12, - "x": 12, - "y": 234 - }, - "id": 100, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_ldsInstrs\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \"min_ldsInstrs\": {\n \"$min\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \"max_ldsInstrs\": {\n \"$max\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \n \"avg_indexAccesses\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \"min_indexAccesses\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \"max_indexAccesses\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \n \"avg_atomicCycles\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \"min_atomicCycles\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \"max_atomicCycles\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \n \"avg_bankConflicts\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \"min_bankConflicts\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \"max_bankConflicts\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \n \"avg_addrConflicts\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \"min_addrConflicts\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \"max_addrConflicts\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \n \n \"avg_unalignedStall\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \"min_unalignedStall\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \"max_unalignedStall\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \n \"avg_memViolations\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \"min_memViolations\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \"max_memViolations\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \n \"avg_bconf_per_op\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \"min_bconf_per_op\": {\n \"$min\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \"max_bconf_per_op\": {\n \"$max\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \n \"avg_bw\": {\n \"$avg\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$lds_banks_per_cu\"}]}, \n \"&denom\"\n ]\n }\n },\n \"min_bw\": {\n \"$min\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$lds_banks_per_cu\"}]}, \n \"&denom\"\n ]\n }\n },\n \"max_bw\": {\n \"$max\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$lds_banks_per_cu\"}]}, \n \"&denom\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"LDS Instrs\",\n \"avg\": \"&avg_ldsInstrs\",\n \"min\": \"&min_ldsInstrs\",\n \"max\": \"&max_ldsInstrs\",\n \"Unit\":{\"$concat\": [\"Instr \", $normUnit]} \n },\n {\n \"metric\": \"Bandwidth\",\n \"avg\": \"&avg_bw\",\n \"min\": \"&min_bw\",\n \"max\": \"&max_bw\",\n \"Unit\": {\"$concat\": [\"Bytes \", $normUnit]}\n },\n {\n \"metric\": \"Bank Conficts/Access\",\n \"avg\": \"&avg_bconf_per_op\",\n \"min\": \"&min_bconf_per_op\",\n \"max\": \"&max_bconf_per_op\",\n \"Unit\": \"Conflicts/Access\"\n },\n {\n \"metric\": \"Dispatch_ID Accesses\",\n \"avg\": \"&avg_indexAccesses\",\n \"min\": \"&min_indexAccesses\",\n \"max\": \"&max_indexAccesses\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Cycles\",\n \"avg\": \"&avg_atomicCycles\",\n \"min\": \"&min_atomicCycles\",\n \"max\": \"&max_atomicCycles\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Bank Conflict\",\n \"avg\": \"&avg_bankConflicts\",\n \"min\": \"&min_bankConflicts\",\n \"max\": \"&max_bankConflicts\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Addr Conflict\",\n \"avg\": \"&avg_addrConflicts\",\n \"min\": \"&min_addrConflicts\",\n \"max\": \"&max_addrConflicts\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Unaligned Stall\",\n \"avg\": \"&avg_unalignedStall\",\n \"min\": \"&min_unalignedStall\",\n \"max\": \"&max_unalignedStall\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Mem Violations\",\n \"avg\": \"&avg_memViolations\",\n \"min\": \"&min_memViolations\",\n \"max\": \"&max_memViolations\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_INST_LEVEL_LDS\",\n \"pipeline\": [\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"avg_ldsLatency\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"min_ldsLatency\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"max_ldsLatency\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"metric\": \"LDS Latency\",\n \"avg\": \"&avg_ldsLatency\",\n \"min\": \"&min_ldsLatency\",\n \"max\": \"&max_ldsLatency\",\n \"Unit\": \"Cycles\"\n }}\n ]\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}}, \n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Local Data Share)\"}}\n \n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_ldsInstrs\": {\n \"$avg\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \"min_ldsInstrs\": {\n \"$min\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \"max_ldsInstrs\": {\n \"$max\": { \"$divide\": [\"&SQ_INSTS_LDS\" , \"&denom\"] }\n },\n \n \"avg_indexAccesses\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \"min_indexAccesses\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \"max_indexAccesses\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_IDX_ACTIVE\" , \"&denom\"] }\n },\n \n \"avg_atomicCycles\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \"min_atomicCycles\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \"max_atomicCycles\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_ATOMIC_RETURN\" , \"&denom\" ] }\n },\n \n \"avg_bankConflicts\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \"min_bankConflicts\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \"max_bankConflicts\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_BANK_CONFLICT\" , \"&denom\" ] }\n },\n \n \"avg_addrConflicts\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \"min_addrConflicts\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \"max_addrConflicts\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_ADDR_CONFLICT\" , \"&denom\" ] }\n },\n \"avg_unalignedStall\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \"min_unalignedStall\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \"max_unalignedStall\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_UNALIGNED_STALL\" , \"&denom\" ] }\n },\n \n \"avg_memViolations\": {\n \"$avg\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \"min_memViolations\": {\n \"$min\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \"max_memViolations\": {\n \"$max\": { \"$divide\": [\"&SQ_LDS_MEM_VIOLATIONS\" , \"&denom\" ] }\n },\n \n \n \"avg_bconf_per_op\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \"min_bconf_per_op\": {\n \"$min\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \"max_bconf_per_op\": {\n \"$max\": {\n \"$cond\": [ {\"$ne\": [{\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}, 0]},\n {\"$divide\": [\n \"&SQ_LDS_BANK_CONFLICT\",\n {\"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]}\n ]},\n null\n ]\n }\n },\n \n \"avg_bw\": {\n \"$avg\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$lds_banks_per_cu\"}]}, \n \"&denom\"\n ]\n }\n },\n \"min_bw\": {\n \"$min\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$lds_banks_per_cu\"}]}, \n \"&denom\"\n ]\n }\n },\n \"max_bw\": {\n \"$max\": {\n \"$divide\":\n [ { \"$multiply\": [{ \"$multiply\": [ { \"$subtract\": [\"&SQ_LDS_IDX_ACTIVE\", \"&SQ_LDS_BANK_CONFLICT\"]} , 4]}, {\"$toInt\": \"$lds_banks_per_cu\"}]}, \n \"&denom\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"LDS Instrs\",\n \"avg\": \"&avg_ldsInstrs\",\n \"min\": \"&min_ldsInstrs\",\n \"max\": \"&max_ldsInstrs\",\n \"Unit\":{\"$concat\": [\"Instr \", $normUnit]} \n },\n {\n \"metric\": \"Bandwidth\",\n \"avg\": \"&avg_bw\",\n \"min\": \"&min_bw\",\n \"max\": \"&max_bw\",\n \"Unit\": {\"$concat\": [\"Bytes \", $normUnit]}\n },\n {\n \"metric\": \"Bank Conficts/Access\",\n \"avg\": \"&avg_bconf_per_op\",\n \"min\": \"&min_bconf_per_op\",\n \"max\": \"&max_bconf_per_op\",\n \"Unit\": \"Conflicts/Access\"\n },\n {\n \"metric\": \"Dispatch_ID Accesses\",\n \"avg\": \"&avg_indexAccesses\",\n \"min\": \"&min_indexAccesses\",\n \"max\": \"&max_indexAccesses\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Cycles\",\n \"avg\": \"&avg_atomicCycles\",\n \"min\": \"&min_atomicCycles\",\n \"max\": \"&max_atomicCycles\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Bank Conflict\",\n \"avg\": \"&avg_bankConflicts\",\n \"min\": \"&min_bankConflicts\",\n \"max\": \"&max_bankConflicts\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Addr Conflict\",\n \"avg\": \"&avg_addrConflicts\",\n \"min\": \"&min_addrConflicts\",\n \"max\": \"&max_addrConflicts\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Unaligned Stall\",\n \"avg\": \"&avg_unalignedStall\",\n \"min\": \"&min_unalignedStall\",\n \"max\": \"&max_unalignedStall\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Mem Violations\",\n \"avg\": \"&avg_memViolations\",\n \"min\": \"&min_memViolations\",\n \"max\": \"&max_memViolations\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }},\n {\"$unionWith\": {\n \"coll\": \"SQ_INST_LEVEL_LDS\",\n \"pipeline\": [\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Local Data Share)\"}}\n }},\n \n {\"$group\": {\n \"_id\": null,\n \"avg_ldsLatency\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"min_ldsLatency\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n },\n \"max_ldsLatency\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [\"&SQ_INSTS_LDS\", 0]},\n {\"$divide\": [ \"&SQ_ACCUM_PREV_HIRES\", \"&SQ_INSTS_LDS\" ]},\n null\n ] \n }\n }\n }},\n {\"$project\": {\n \"_id\": 0,\n \"metric\": \"LDS Latency\",\n \"avg\": \"&avg_ldsLatency\",\n \"min\": \"&min_ldsLatency\",\n \"max\": \"&max_ldsLatency\",\n \"Unit\": \"Cycles\"\n }}\n ]\n }}\n ]);", - "type": "table" - } - ], - "title": "LDS Stats", - "transformations": [ - { - "id": "concatenate", - "options": { - "frameNameLabel": "frame", - "frameNameMode": "field" - } - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Unit 2": true, - "metric 2": true - }, - "indexByName": { - "Unit 1": 9, - "Unit 2": 8, - "avg 1": 1, - "avg 2": 2, - "max 1": 5, - "max 2": 6, - "metric 1": 0, - "metric 2": 7, - "min 1": 3, - "min 2": 4 - }, - "renameByName": { - "avg 1": "Avg (Current)", - "avg 2": "Avg (Baseline)", - "max 1": "Max (Current)", - "max 2": "Max (Baseline)", - "min 1": "Min (Current)", - "min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "collapsed": false, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 246 - }, - "id": 44, - "panels": [], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Instruction Cache", - "type": "row" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 247 - }, - "id": 48, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "/.*/", - "values": true - }, - "showUnfilled": true, - "text": {} - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"reqBW_pop\": {\n \"$avg\": {\n \"$divide\": [\n {\"$multiply\": [\"&SQC_ICACHE_REQ\", 100000]}, \n {\"$multiply\": [ {\"$multiply\": [$sclk, $sqc_per_gpu]}, {\"$subtract\":[\"&End_Timestamp\", \"&Start_Timestamp\"]} ]}\n ]\n }\n },\n\n \"cacheHit\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQC_ICACHE_HITS\", 100] }, { \"$add\": [ \"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\" ] } ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"Bandwidth\": \"&reqBW_pop\",\n \"Cache Hit\": \"&cacheHit\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Cache)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"reqBW_pop\": {\n \"$avg\": {\n \"$divide\": [\n {\"$multiply\": [\"&SQC_ICACHE_REQ\", 100000]}, \n {\"$multiply\": [ {\"$multiply\": [$sclk2, $sqc_per_gpu2]}, {\"$subtract\":[\"&End_Timestamp\", \"&Start_Timestamp\"]} ]}\n ]\n }\n },\n\n \"cacheHit\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [\"&SQC_ICACHE_HITS\", 100] }, { \"$add\": [ \"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] } ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"Bandwidth\": \"&reqBW_pop\",\n \"Cache Hit\": \"&cacheHit\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "Speed-of-Light: Instruction Cache ", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "BW (Pct-of-Peak) 1": 4, - "BW (Pct-of-Peak) 2": 5, - "Cache Hit 1": 6, - "Cache Hit 2": 7, - "Stall 1": 2, - "Stall 2": 3, - "Util 1": 0, - "Util 2": 1 - }, - "renameByName": { - "BW (Pct-of-Peak) 1": "BW Pct-of-Peak (Current)", - "BW (Pct-of-Peak) 2": "BW Pct-of-Peak (Baseline)", - "BW Pct-of-Peak 1": "BW Pct-of-Peak (Current)", - "BW Pct-of-Peak 2": "BW Pct-of-Peak (Baseline)", - "Bandwidth 1": "Bandwidth (Current)", - "Bandwidth 2": "Bandwidth (Baseline)", - "Cache Hit 1": "Cache Hit (Current)", - "Cache Hit 2": "Cache Hit (Baseline)", - "Stall 1": "Stall (Current)", - "Stall 2": "Stall (Baseline)", - "Util 1": "Util (Current)", - "Util 2": "Util (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 247 - }, - "id": 259, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "rawQuery": true, - "refId": "pmc_perf", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_req\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n \"min_req\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n \"max_req\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n\n \"avg_hits\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n \"min_hits\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n \"max_hits\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n\n \"avg_misses\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n \"min_misses\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n \"max_misses\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n\n \"avg_misses_dup\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"min_misses_dup\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"max_misses_dup\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n\n\n \"avg_cacheHit\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n },\n \"min_cacheHit\": {\n \"$min\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n },\n \"max_cacheHit\": {\n \"$max\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean\": \"&avg_req\",\n \"Min\": \"&min_req\",\n \"Max\": \"&max_req\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Hits\",\n \"Mean\": \"&avg_hits\",\n \"Min\": \"&min_hits\",\n \"Max\": \"&max_hits\",\n \"Unit\": {\"$concat\": [\"Hits \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Non Duplicated\",\n \"Mean\": \"&avg_misses\",\n \"Min\": \"&min_misses\",\n \"Max\": \"&max_misses\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Duplicated\",\n \"Mean\": \"&avg_misses_dup\",\n \"Min\": \"&min_misses_dup\",\n \"Max\": \"&max_misses_dup\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n \n {\n \"Metric\": \"Cache Hit\",\n \"Mean\": \"&avg_cacheHit\",\n \"Min\": \"&min_cacheHit\",\n \"Max\": \"&max_cacheHit\",\n \"Unit\": \"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "pmc_perf2", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Instruction Cache)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"avg_req\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n \"min_req\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n \"max_req\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_REQ\", \"&denom\"] }\n },\n\n \"avg_hits\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n \"min_hits\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n \"max_hits\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_HITS\", \"&denom\"] }\n },\n\n \"avg_misses\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n \"min_misses\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n \"max_misses\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_MISSES\", \"&denom\"] }\n },\n\n \"avg_misses_dup\": {\n \"$avg\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"min_misses_dup\": {\n \"$min\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"max_misses_dup\": {\n \"$max\": { \"$divide\": [\"&SQC_ICACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n\n\n \"avg_cacheHit\": {\n \"$avg\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n },\n \"min_cacheHit\": {\n \"$min\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n },\n \"max_cacheHit\": {\n \"$max\": { \"$divide\": [{ \"$multiply\": [100, \"&SQC_ICACHE_HITS\"] }, { \"$add\": [\"&SQC_ICACHE_HITS\", \"&SQC_ICACHE_MISSES\", \"&SQC_ICACHE_MISSES_DUPLICATE\"] }] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean 2\": \"&avg_req\",\n \"Min 2\": \"&min_req\",\n \"Max 2\": \"&max_req\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Hits\",\n \"Mean 2\": \"&avg_hits\",\n \"Min 2\": \"&min_hits\",\n \"Max 2\": \"&max_hits\",\n \"Unit\": {\"$concat\": [\"Hits \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Non Duplicated\",\n \"Mean 2\": \"&avg_misses\",\n \"Min 2\" : \"&min_misses\",\n \"Max 2\": \"&max_misses\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Duplicated\",\n \"Mean 2\": \"&avg_misses_dup\",\n \"Min 2\": \"&min_misses_dup\",\n \"Max 2\": \"&max_misses_dup\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n {\n \"Metric\": \"Cache Hit\",\n \"Mean 2\": \"&avg_cacheHit\",\n \"Min 2\": \"&min_cacheHit\",\n \"Max 2\": \"&max_cacheHit\",\n \"Unit\": \"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Instruction Cache Accesses", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Max": 5, - "Max 2": 6, - "Mean": 1, - "Mean 2": 2, - "Metric": 0, - "Min": 3, - "Min 2": 4, - "Unit": 7 - }, - "renameByName": { - "L1I Metric": "", - "Max": "Max (Current)", - "Max 2": "Max (Baseline)", - "Mean": "Avg (Current)", - "Mean 2": "Avg (Baseline)", - "Min": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "collapsed": false, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 254 - }, - "id": 203, - "panels": [], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Scalar L1 Data Cache", - "type": "row" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "L1K-TC BW - GB/s" - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 255 - }, - "id": 54, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showUnfilled": true, - "text": { - "titleSize": 14, - "valueSize": 16 - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"reqBW_pop\": {\n \"$avg\": {\n \"$divide\": [\n {\"$multiply\": [\"&SQC_DCACHE_REQ\", 100000]}, \n {\"$multiply\": [ {\"$multiply\": [$sclk, $sqc_per_gpu]}, {\"$subtract\":[\"&End_Timestamp\", \"&Start_Timestamp\"]} ]}\n ]\n }\n },\n \"cacheHit\": {\n \"$avg\": { \n \"$cond\":[\n {\"$ne\": [{ \"$add\": [ \"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0 ]},\n {\"$divide\": [{ \"$multiply\": [\"&SQC_DCACHE_HITS\", 100] }, { \"$add\": [ \"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } ]},\n null\n ]\n }\n }\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Bandwidth\": \"&reqBW_pop\",\n \"Cache Hit\": \"&cacheHit\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "sY628IJnz" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Scalar L1D Cache)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"reqBW_pop\": {\n \"$avg\": {\n \"$divide\": [\n {\"$multiply\": [\"&SQC_DCACHE_REQ\", 100000]}, \n {\"$multiply\": [ {\"$multiply\": [$sclk2, $sqc_per_gpu2]}, {\"$subtract\":[\"&End_Timestamp\", \"&Start_Timestamp\"]} ]}\n ]\n }\n },\n \"cacheHit\": {\n \"$avg\": { \n \"$cond\":[\n {\"$ne\": [{ \"$add\": [ \"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0 ]},\n {\"$divide\": [{ \"$multiply\": [\"&SQC_DCACHE_HITS\", 100] }, { \"$add\": [ \"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } ]},\n null\n ]\n }\n }\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Bandwidth\": \"&reqBW_pop\",\n \"Cache Hit\": \"&cacheHit\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "Speed-of-Light: Scalar L1D Cache", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "BW Pct-of-Peak 1": 0, - "BW Pct-of-Peak 2": 1, - "Cache Hit 1": 2, - "Cache Hit 2": 3, - "Stall 1": 6, - "Stall 2": 7, - "Util 1": 4, - "Util 2": 5 - }, - "renameByName": { - "BW Pct-of-Peak 1": "BW Pct-of-Peak (Current)", - "BW Pct-of-Peak 2": "BW Pct-of-Peak (Baseline)", - "Bandwidth 1": "Bandwidth (Current)", - "Bandwidth 2": "Bandwidth (Baseline)", - "Cache Hit 1": "Cache Hit (Current)", - "Cache Hit 2": "Cache Hit (Baseline)", - "Stall 1": "Stall (Current)", - "Stall 2": "Stall (Baseline)", - "Util 1": "Util (Current)", - "Util 2": "Util (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [] - }, - "gridPos": { - "h": 14, - "w": 12, - "x": 12, - "y": 255 - }, - "id": 261, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "pmc_perf", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n \"req_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n \"req_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n\n \"hits_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n \"hits_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n \"hits_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n\n \"misses_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_MISSES\", \"&denom\"] }\n },\n \"misses_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_MISSES\", \"&denom\"] }\n },\n \"misses_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_MISSES\", \"&denom\"] }\n },\n\n \"dup_misses_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"dup_misses_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"dup_misses_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n\n\n \"cacheHit_avg\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n \"cacheHit_min\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n \"cacheHit_max\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n\n \"readReq_avg\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n \"readReq_min\": {\n \"$min\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n \"readReq_max\": {\n \"$max\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n\n\n \"atomicReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n \"atomicReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n \"atomicReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n\n \"read1d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n \"read1d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n \"read1d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n\n \"read2d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n \"read2d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n \"read2d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n\n \"read4d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n \"read4d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n \"read4d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n\n \"read8d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n \"read8d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n \"read8d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n\n \"read16d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n },\n \"read16d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n },\n \"read16d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean\": \"&req_avg\",\n \"Min\": \"&req_min\",\n \"Max\": \"&req_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Hits\",\n \"Mean\": \"&hits_avg\",\n \"Min\": \"&hits_min\",\n \"Max\": \"&hits_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Non Duplicated\",\n \"Mean\": \"&misses_avg\",\n \"Min\": \"&misses_min\",\n \"Max\": \"&misses_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Misses- Duplicated\",\n \"Mean\": \"&dup_misses_avg\",\n \"Min\": \"&dup_misses_min\",\n \"Max\": \"&dup_misses_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Cache Hit\",\n \"Mean\": \"&cacheHit_avg\",\n \"Min\": \"&cacheHit_min\",\n \"Max\": \"&cacheHit_max\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"Read Req (Total)\",\n \"Mean\": \"&readReq_avg\",\n \"Min\": \"&readReq_min\",\n \"Max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Atomic Req\",\n \"Mean\": \"&atomicReq_avg\",\n \"Min\": \"&atomicReq_min\",\n \"Max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (1 DWord)\",\n \"Mean\": \"&read1d_avg\",\n \"Min\": \"&read1d_min\",\n \"Max\": \"&read1d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (2 DWord)\",\n \"Mean\": \"&read2d_avg\",\n \"Min\": \"&read2d_min\",\n \"Max\": \"&read2d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (4 DWord)\",\n \"Mean\": \"&read4d_avg\",\n \"Min\": \"&read4d_min\",\n \"Max\": \"&read4d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (8 DWord)\",\n \"Mean\": \"&read8d_avg\",\n \"Min\": \"&read8d_min\",\n \"Max\": \"&read8d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (16 DWord)\",\n \"Mean\": \"&read16d_avg\",\n \"Min\": \"&read16d_min\",\n \"Max\": \"&read16d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "bhNVuvBnk" - }, - "hide": false, - "rawQuery": true, - "refId": "pmc_perf2", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Scalar L1D Cache)\"}}\n }}, \n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n \"req_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n \"req_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ\", \"&denom\"] }\n },\n\n \"hits_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n \"hits_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n \"hits_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_HITS\", \"&denom\"] }\n },\n\n \"dup_misses_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"dup_misses_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n \"dup_misses_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_MISSES_DUPLICATE\", \"&denom\"] }\n },\n\n\n \"cacheHit_avg\": {\n \"$avg\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n \"cacheHit_min\": {\n \"$min\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n \"cacheHit_max\": {\n \"$max\": { \n \"$cond\": [\n {\"$ne\": [{ \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] } , 0]},\n { \"$divide\": [{ \"$multiply\": [100, \"&SQC_DCACHE_HITS\"] }, { \"$add\": [\"&SQC_DCACHE_HITS\", \"&SQC_DCACHE_MISSES\", \"&SQC_DCACHE_MISSES_DUPLICATE\"] }] },\n \"\"\n ]\n }\n },\n\n \"readReq_avg\": {\n \"$avg\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n \"readReq_min\": {\n \"$min\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n \"readReq_max\": {\n \"$max\": { \"$divide\": [{ \"$add\": [\"&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\"] }\n },\n\n \"atomicReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n \"atomicReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n \"atomicReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_ATOMIC\", \"&denom\"] }\n },\n\n\n \"read1d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n \"read1d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n \"read1d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_1\", \"&denom\"] }\n },\n\n \"read2d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n \"read2d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n \"read2d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_2\", \"&denom\"] }\n },\n\n \"read4d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n \"read4d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n \"read4d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_4\", \"&denom\"] }\n },\n\n \"read8d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n \"read8d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n \"read8d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_8\", \"&denom\"] }\n },\n\n \"read16d_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n },\n \"read16d_min\": {\n \"$min\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n },\n \"read16d_max\": {\n \"$max\": { \"$divide\": [\"&SQC_DCACHE_REQ_READ_16\", \"&denom\"] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean 2\": \"&req_avg\",\n \"Min 2\": \"&req_min\",\n \"Max 2\": \"&req_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Hits\",\n \"Mean 2\": \"&hits_avg\",\n \"Min 2\": \"&hits_min\",\n \"Max 2\": \"&hits_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Misses - Non Duplicated\",\n \"Mean 2\": \"&misses_avg\",\n \"Min 2\": \"&misses_min\",\n \"Max 2\": \"&misses_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Misses- Duplicated\",\n \"Mean 2\": \"&dup_misses_avg\",\n \"Min 2\": \"&dup_misses_min\",\n \"Max 2\": \"&dup_misses_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Cache Hit\",\n \"Mean 2\": \"&cacheHit_avg\",\n \"Min 2\": \"&cacheHit_min\",\n \"Max 2\": \"&cacheHit_max\",\n \"Unit\": \"pct\"\n },\n {\n \"Metric\": \"Read Req (Total)\",\n \"Mean 2\": \"&readReq_avg\",\n \"Min 2\": \"&readReq_min\",\n \"Max 2\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Write Req (Total)\",\n \"Mean 2\": \"&writeReq_avg\",\n \"Min 2\": \"&writeReq_min\",\n \"Max 2\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Atomic Req\",\n \"Mean 2\": \"&atomicReq_avg\",\n \"Min 2\": \"&atomicReq_min\",\n \"Max 2\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (1 DWord)\",\n \"Mean 2\": \"&read1d_avg\",\n \"Min 2\": \"&read1d_min\",\n \"Max 2\": \"&read1d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (2 DWord)\",\n \"Mean 2\": \"&read2d_avg\",\n \"Min 2\": \"&read2d_min\",\n \"Max 2\": \"&read2d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (4 DWord)\",\n \"Mean 2\": \"&read4d_avg\",\n \"Min 2\": \"&read4d_min\",\n \"Max 2\": \"&read4d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (8 DWord)\",\n \"Mean 2\": \"&read8d_avg\",\n \"Min 2\": \"&read8d_min\",\n \"Max 2\": \"&read8d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Read Req (16 DWord)\",\n \"Mean 2\": \"&read16d_avg\",\n \"Min 2\": \"&read16d_min\",\n \"Max 2\": \"&read16d_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Scalar L1D Cache Accesses", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Max": 5, - "Max 2": 6, - "Mean": 1, - "Mean 2": 2, - "Metric": 0, - "Min": 3, - "Min 2": 4, - "Unit": 7 - }, - "renameByName": { - "Max": "Max (Current)", - "Max 2": "Max (Baseline)", - "Mean": "Avg (Current)", - "Mean 2": "Avg (Baseline)", - "Min": "Min (Current)", - "Min 2": "Min (Baseline)", - "Unit": "" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 135 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 105 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 112 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 134 - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 262 - }, - "id": 52, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"readReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n \"readReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n \"readReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n\n \"writeReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n \"writeReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n \"writeReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n\n \"atomicReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n \"atomicReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n \"atomicReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n\n \"tc2l1k_stall_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n },\n \"tc2l1k_stall_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n },\n \"tc2l1k_stall_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n }\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Read Req\",\n \"Mean\": \"&readReq_avg\",\n \"Min\": \"&readReq_min\",\n \"Max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Write Req\",\n \"Mean\": \"&writeReq_avg\",\n \"Min\": \"&writeReq_min\",\n \"Max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Atomic Req\",\n \"Mean\": \"&atomicReq_avg\",\n \"Min\": \"&atomicReq_min\",\n \"Max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Stall\",\n \"Mean\": \"&tc2l1k_stall_avg\",\n \"Min\": \"&tc2l1k_stall_min\",\n \"Max\": \"&tc2l1k_stall_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}}, \n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Scalar L1D Cache)\"}}\n }},\n {\"$addFields\": {\n \n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"readReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n \"readReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n \"readReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_READ_REQ\", \"&denom\"] }\n },\n\n \"writeReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n \"writeReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n \"writeReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_WRITE_REQ\", \"&denom\"] }\n },\n\n \"atomicReq_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n \"atomicReq_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n \"atomicReq_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_DATA_ATOMIC_REQ\", \"&denom\"] }\n },\n\n \"tc2l1k_stall_avg\": {\n \"$avg\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n },\n \"tc2l1k_stall_min\": {\n \"$min\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n },\n \"tc2l1k_stall_max\": {\n \"$max\": { \"$divide\": [\"&SQC_TC_STALL\", \"&denom\" ] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Read Req\",\n \"Mean\": \"&readReq_avg\",\n \"Min\": \"&readReq_min\",\n \"Max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Write Req\",\n \"Mean\": \"&writeReq_avg\",\n \"Min\": \"&writeReq_min\",\n \"Max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Atomic Req\",\n \"Mean\": \"&atomicReq_avg\",\n \"Min\": \"&atomicReq_min\",\n \"Max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Stall\",\n \"Mean\": \"&tc2l1k_stall_avg\",\n \"Min\": \"&tc2l1k_stall_min\",\n \"Max\": \"&tc2l1k_stall_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - } - ], - "title": "Scalar L1D Cache - L2 Interface", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Max 1": 7, - "Max 2": 8, - "Mean 1": 3, - "Mean 2": 4, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Mean 1": "Avg (Current)", - "Mean 2": "Avg (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "collapsed": false, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 269 - }, - "id": 130, - "panels": [], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Texture Addresser and Texture Data (TA/TD)", - "type": "row" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 133 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 112 - } - ] - } - ] - }, - "gridPos": { - "h": 17, - "w": 12, - "x": 0, - "y": 270 - }, - "id": 132, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"taBusy_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu]}] }},\n \"taBusy_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu]}] }},\n \"taBusy_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu]}] }},\n\n \"tc2ta_addrStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu]}]}},\n \"tc2ta_addrStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu]}]}},\n \"tc2ta_addrStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu]}]}},\n\n \"tc2ta_dataStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu]}]}},\n \"tc2ta_dataStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu]}]}},\n \"tc2ta_dataStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu]}]}},\n\n \"td2ta_addrStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu]}]}},\n \"td2ta_addrStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu]}]}},\n \"td2ta_addrStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu]}]}},\n\n \"totalInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n \"totalInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n \"totalInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n\n \"flatInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n \"flatInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n \"flatInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n\n \"flatReadInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatReadInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatReadInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"flatWriteInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatWriteInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatWriteInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"flatAtomicInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatAtomicInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatAtomicInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferReadInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferReadInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferReadInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferWriteInstr_avg\":{\"$avg\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferWriteInstr_min\":{\"$min\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferWriteInstr_max\":{\"$max\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferAtomicInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferAtomicInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferAtomicInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"buffTotal_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n \"buffTotal_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n \"buffTotal_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n\n \"buffCoscaleRead_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleRead_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleRead_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n\n \"buffCoscaleWrite_avg\":{\"$avg\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleWrite_min\":{\"$min\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleWrite_max\":{\"$max\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"TA Busy\",\n \"avg\": \"&taBusy_avg\",\n \"min\": \"&taBusy_min\",\n \"max\": \"&taBusy_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TA Addr Stall\",\n \"avg\": \"&tc2ta_addrStall_avg\",\n \"min\": \"&tc2ta_addrStall_min\",\n \"max\": \"&tc2ta_addrStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TA Data Stall\",\n \"avg\": \"&tc2ta_dataStall_avg\",\n \"min\": \"&tc2ta_dataStall_min\",\n \"max\": \"&tc2ta_dataStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TD2TA Addr Stall\",\n \"avg\": \"&td2ta_addrStall_avg\",\n \"min\": \"&td2ta_addrStall_min\",\n \"max\": \"&td2ta_addrStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Total Instructions\",\n \"avg\": \"&totalInstr_avg\",\n \"min\": \"&totalInstr_min\",\n \"max\": \"&totalInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Instr\",\n \"avg\": \"&flatInstr_avg\",\n \"min\": \"&flatInstr_min\",\n \"max\": \"&flatInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Read Instr\",\n \"avg\": \"&flatReadInstr_avg\",\n \"min\": \"&flatReadInstr_min\",\n \"max\": \"&flatReadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Write Instr\",\n \"avg\": \"&flatWriteInstr_avg\",\n \"min\": \"&flatWriteInstr_min\",\n \"max\": \"&flatWriteInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Atomic Instr\",\n \"avg\": \"&flatAtomicInstr_avg\",\n \"min\": \"&flatAtomicInstr_min\",\n \"max\": \"&flatAtomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Instr\",\n \"avg\": \"&bufferInstr_avg\",\n \"min\": \"&bufferInstr_min\",\n \"max\": \"&bufferInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Read Instr\",\n \"avg\": \"&bufferReadInstr_avg\",\n \"min\": \"&bufferReadInstr_min\",\n \"max\": \"&bufferReadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Write Instr\",\n \"avg\": \"&bufferWriteInstr_avg\",\n \"min\": \"&bufferWriteInstr_min\",\n \"max\": \"&bufferWriteInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Atomic Instr\",\n \"avg\": \"&bufferAtomicInstr_avg\",\n \"min\": \"&bufferAtomicInstr_min\",\n \"max\": \"&bufferAtomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Total Cylces\",\n \"avg\": \"&buffTotal_avg\",\n \"min\": \"&buffTotal_min\",\n \"max\": \"&buffTotal_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Coalesced Read\",\n \"avg\": \"&buffCoscaleRead_avg\",\n \"min\": \"&buffCoscaleRead_min\",\n \"max\": \"&buffCoscaleRead_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Coalesced Write\",\n \"avg\": \"&buffCoscaleWrite_avg\",\n \"min\": \"&buffCoscaleWrite_min\",\n \"max\": \"&buffCoscaleWrite_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Texture Addr and Data)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"taBusy_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2]}] }},\n \"taBusy_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2]}] }},\n \"taBusy_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TA_TA_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2]}] }},\n\n \"tc2ta_addrStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2]}]}},\n \"tc2ta_addrStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2]}]}},\n \"tc2ta_addrStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2]}]}},\n\n \"tc2ta_dataStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2]}]}},\n \"tc2ta_dataStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2]}]}},\n \"tc2ta_dataStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_DATA_STALLED_BY_TC_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2]}]}},\n\n \"td2ta_addrStall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2]}]}},\n \"td2ta_addrStall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2]}]}},\n \"td2ta_addrStall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TA_ADDR_STALLED_BY_TD_CYCLES_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2]}]}},\n\n \"totalInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n \"totalInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n \"totalInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_TOTAL_WAVEFRONTS_sum\", \"&denom\"] }},\n\n \"flatInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n \"flatInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n \"flatInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_WAVEFRONTS_sum\", \"&denom\"] }},\n\n \"flatReadInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatReadInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatReadInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"flatWriteInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatWriteInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatWriteInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"flatAtomicInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatAtomicInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"flatAtomicInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_FLAT_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferReadInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferReadInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferReadInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_READ_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferWriteInstr_avg\":{\"$avg\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferWriteInstr_min\":{\"$min\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferWriteInstr_max\":{\"$max\": { \"$divide\": [ \"&TA_BUFFER_WRITE_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"bufferAtomicInstr_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferAtomicInstr_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n \"bufferAtomicInstr_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_ATOMIC_WAVEFRONTS_sum\", \"&denom\"]}},\n\n \"buffTotal_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n \"buffTotal_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n \"buffTotal_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_TOTAL_CYCLES_sum\", \"&denom\"] }},\n\n \"buffCoscaleRead_avg\":{\"$avg\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleRead_min\":{\"$min\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleRead_max\":{\"$max\": {\"$divide\": [ \"&TA_BUFFER_COALESCED_READ_CYCLES_sum\", \"&denom\"] }},\n\n \"buffCoscaleWrite_avg\":{\"$avg\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleWrite_min\":{\"$min\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }},\n \"buffCoscaleWrite_max\":{\"$max\": { \"$divide\": [ \"&TA_BUFFER_COALESCED_WRITE_CYCLES_sum\", \"&denom\"] }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"TA Busy\",\n \"avg\": \"&taBusy_avg\",\n \"min\": \"&taBusy_min\",\n \"max\": \"&taBusy_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TA Addr Stall\",\n \"avg\": \"&tc2ta_addrStall_avg\",\n \"min\": \"&tc2ta_addrStall_min\",\n \"max\": \"&tc2ta_addrStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TA Data Stall\",\n \"avg\": \"&tc2ta_dataStall_avg\",\n \"min\": \"&tc2ta_dataStall_min\",\n \"max\": \"&tc2ta_dataStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TD2TA Addr Stall\",\n \"avg\": \"&td2ta_addrStall_avg\",\n \"min\": \"&td2ta_addrStall_min\",\n \"max\": \"&td2ta_addrStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Total Instructions\",\n \"avg\": \"&totalInstr_avg\",\n \"min\": \"&totalInstr_min\",\n \"max\": \"&totalInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Instr\",\n \"avg\": \"&flatInstr_avg\",\n \"min\": \"&flatInstr_min\",\n \"max\": \"&flatInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Read Instr\",\n \"avg\": \"&flatReadInstr_avg\",\n \"min\": \"&flatReadInstr_min\",\n \"max\": \"&flatReadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Write Instr\",\n \"avg\": \"&flatWriteInstr_avg\",\n \"min\": \"&flatWriteInstr_min\",\n \"max\": \"&flatWriteInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Flat Atomic Instr\",\n \"avg\": \"&flatAtomicInstr_avg\",\n \"min\": \"&flatAtomicInstr_min\",\n \"max\": \"&flatAtomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Instr\",\n \"avg\": \"&bufferInstr_avg\",\n \"min\": \"&bufferInstr_min\",\n \"max\": \"&bufferInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Read Instr\",\n \"avg\": \"&bufferReadInstr_avg\",\n \"min\": \"&bufferReadInstr_min\",\n \"max\": \"&bufferReadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Write Instr\",\n \"avg\": \"&bufferWriteInstr_avg\",\n \"min\": \"&bufferWriteInstr_min\",\n \"max\": \"&bufferWriteInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Atomic Instr\",\n \"avg\": \"&bufferAtomicInstr_avg\",\n \"min\": \"&bufferAtomicInstr_min\",\n \"max\": \"&bufferAtomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Total Cylces\",\n \"avg\": \"&buffTotal_avg\",\n \"min\": \"&buffTotal_min\",\n \"max\": \"&buffTotal_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Coalesced Read\",\n \"avg\": \"&buffCoscaleRead_avg\",\n \"min\": \"&buffCoscaleRead_min\",\n \"max\": \"&buffCoscaleRead_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n },\n {\n \"metric\": \"Buffer Coalesced Write\",\n \"avg\": \"&buffCoscaleWrite_avg\",\n \"min\": \"&buffCoscaleWrite_min\",\n \"max\": \"&buffCoscaleWrite_max\",\n \"Unit\": {\"$concat\": [\"Cycles \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "TA", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Unit 2": true, - "metric 2": true - }, - "indexByName": { - "Unit 1": 9, - "Unit 2": 2, - "avg 1": 3, - "avg 2": 4, - "max 1": 7, - "max 2": 8, - "metric 1": 0, - "metric 2": 1, - "min 1": 5, - "min 2": 6 - }, - "renameByName": { - "avg 1": "Avg (Current)", - "avg 2": "Avg (Baseline)", - "max 1": "Max (Current)", - "max 2": "Max (Baseline)", - "min 1": "Min (Current)", - "min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 124 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 120 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 135 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 130 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 108 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 136 - } - ] - } - ] - }, - "gridPos": { - "h": 17, - "w": 12, - "x": 12, - "y": 270 - }, - "id": 134, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"tdBusy_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu]}] }},\n \"tdBusy_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu]}] }},\n \"tdBusy_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu]}] }},\n\n \"tc2tdStall_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu]}]}},\n \"tc2tdStall_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu]}]}},\n \"tc2tdStall_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu]}]}},\n\n \"spi2td_stall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu]}]}},\n \"spi2td_stall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu]}]}},\n \"spi2td_stall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu]}]}},\n\n \"coscaleInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n \"coscaleInstr_min\":{\"$min\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n \"coscaleInstr_max\":{\"$max\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n\n \"loadInstr_avg\":{\"$avg\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n \"loadInstr_min\":{\"$min\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n \"loadInstr_max\":{\"$max\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n\n \"storeInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n \"storeInstr_min\":{\"$min\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n \"storeInstr_max\":{\"$max\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n\n \"atomicInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}},\n \"atomicInstr_min\":{\"$min\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}},\n \"atomicInstr_max\":{\"$max\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"TD Busy\",\n \"avg\": \"&tdBusy_avg\",\n \"min\": \"&tdBusy_min\",\n \"max\": \"&tdBusy_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TD Stall\",\n \"avg\": \"&tc2tdStall_avg\",\n \"min\": \"&tc2tdStall_min\",\n \"max\": \"&tc2tdStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"SPI2TD Stall\",\n \"avg\": \"&spi2td_stall_avg\",\n \"min\": \"&spi2td_stall_min\",\n \"max\": \"&spi2td_stall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Coalescable Instr\",\n \"avg\": \"&coscaleInstr_avg\",\n \"min\": \"&coscaleInstr_min\",\n \"max\": \"&coscaleInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Load Instr\",\n \"avg\": \"&loadInstr_avg\",\n \"min\": \"&loadInstr_min\",\n \"max\": \"&loadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Store Instr\",\n \"avg\": \"&storeInstr_avg\",\n \"min\": \"&storeInstr_min\",\n \"max\": \"&storeInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Instr\",\n \"avg\": \"&atomicInstr_avg\",\n \"min\": \"&atomicInstr_min\",\n \"max\": \"&atomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Texture Addr and Data)\"}}\n }},\n {\"$addFields\": {\n \n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"tdBusy_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2]}] }},\n \"tdBusy_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2]}] }},\n \"tdBusy_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TD_BUSY_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2]}] }},\n\n \"tc2tdStall_avg\":{\"$avg\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2]}]}},\n \"tc2tdStall_min\":{\"$min\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2]}]}},\n \"tc2tdStall_max\":{\"$max\": { \"$divide\": [ { \"$multiply\": [100, \"&TD_TC_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2]}]}},\n\n \"spi2td_stall_avg\":{\"$avg\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2]}]}},\n \"spi2td_stall_min\":{\"$min\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2]}]}},\n \"spi2td_stall_max\":{\"$max\": {\"$divide\": [ { \"$multiply\": [100, \"&TD_SPI_STALL_sum\"] }, { \"$multiply\": [\"&GRBM_GUI_ACTIVE\", $cu_per_gpu2]}]}},\n\n \"coscaleInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n \"coscaleInstr_min\":{\"$min\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n \"coscaleInstr_max\":{\"$max\": {\"$divide\": [\"&TD_COALESCABLE_WAVEFRONT_sum\", \"&denom\"] }},\n\n \"loadInstr_avg\":{\"$avg\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n \"loadInstr_min\":{\"$min\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n \"loadInstr_max\":{\"$max\": {\"$divide\": [{ \"$subtract\": [{ \"$subtract\": [\"&TD_LOAD_WAVEFRONT_sum\", \"&TD_STORE_WAVEFRONT_sum\"]}, \"&TD_ATOMIC_WAVEFRONT_sum\"] }, \"&denom\" ] }},\n\n \"storeInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n \"storeInstr_min\":{\"$min\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n \"storeInstr_max\":{\"$max\": {\"$divide\": [\"&TD_STORE_WAVEFRONT_sum\", \"&denom\" ] }},\n\n \"atomicInstr_avg\":{\"$avg\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}},\n \"atomicInstr_min\":{\"$min\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}},\n \"atomicInstr_max\":{\"$max\": {\"$divide\": [\"&TD_ATOMIC_WAVEFRONT_sum\", \"&denom\" ]}}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"TD Busy\",\n \"avg\": \"&tdBusy_avg\",\n \"min\": \"&tdBusy_min\",\n \"max\": \"&tdBusy_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"TC2TD Stall\",\n \"avg\": \"&tc2tdStall_avg\",\n \"min\": \"&tc2tdStall_min\",\n \"max\": \"&tc2tdStall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"SPI2TD Stall\",\n \"avg\": \"&spi2td_stall_avg\",\n \"min\": \"&spi2td_stall_min\",\n \"max\": \"&spi2td_stall_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Coalescable Instr\",\n \"avg\": \"&coscaleInstr_avg\",\n \"min\": \"&coscaleInstr_min\",\n \"max\": \"&coscaleInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Load Instr\",\n \"avg\": \"&loadInstr_avg\",\n \"min\": \"&loadInstr_min\",\n \"max\": \"&loadInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Store Instr\",\n \"avg\": \"&storeInstr_avg\",\n \"min\": \"&storeInstr_min\",\n \"max\": \"&storeInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Instr\",\n \"avg\": \"&atomicInstr_avg\",\n \"min\": \"&atomicInstr_min\",\n \"max\": \"&atomicInstr_max\",\n \"Unit\": {\"$concat\": [\"Instr \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n ]);", - "type": "table" - } - ], - "title": "TD", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Unit 2": true, - "metric 2": true - }, - "indexByName": { - "Unit 1": 9, - "Unit 2": 2, - "avg 1": 3, - "avg 2": 4, - "max 1": 7, - "max 2": 8, - "metric 1": 0, - "metric 2": 1, - "min 1": 5, - "min 2": 6 - }, - "renameByName": { - "avg 1": "Avg (Current)", - "avg 2": "Avg (Baseline)", - "max 1": "Max (Current)", - "max 2": "Max (Baseline)", - "min 1": "Min (Current)", - "min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "collapsed": false, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 287 - }, - "id": 112, - "panels": [], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "Vector L1 Data Cache", - "type": "row" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 13, - "w": 12, - "x": 0, - "y": 288 - }, - "id": 165, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showUnfilled": true, - "text": {} - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"bufferCoalescing_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_TOTAL_ACCESSES_sum\", 0] },\n { \"$divide\": [{\"$multiply\": [\"&TA_TOTAL_WAVEFRONTS_sum\", 64, 100]}, {\"$multiply\": [\"&TCP_TOTAL_ACCESSES_sum\", 4]}] },\n null\n ]\n }\n },\n \"cacheUtil_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0] },\n { \"$divide\": [{\"$multiply\": [\"&TCP_GATE_EN2_sum\", 100]}, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }\n },\n \n \"cacheBW_pct\": {\n \"$avg\": { \"$divide\": [ {\"$multiply\":[64, \"&TCP_TOTAL_CACHE_ACCESSES_sum\"]}, \n {\"$subtract\":[\"&End_Timestamp\", \"&Start_Timestamp\"]} \n ] \n }\n },\n \"cacheHit_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0] },\n { \"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]\n }] \n },\n null\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Buffer Coalescing\": \"&bufferCoalescing_pct\",\n \"Cache Util\": \"&cacheUtil_pct\",\n \"Cache BW\": { \"$divide\": [{ \"$multiply\": [100, \"&cacheBW_pct\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk, 1000] }, 64] }, $cu_per_gpu]}] },\n \"Cache Hit\": \"&cacheHit_pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Vector L1D Cache)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"bufferCoalescing_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_TOTAL_ACCESSES_sum\", 0] },\n { \"$divide\": [{\"$multiply\": [\"&TA_TOTAL_WAVEFRONTS_sum\", 64, 100]}, {\"$multiply\": [\"&TCP_TOTAL_ACCESSES_sum\", 4]}] },\n null\n ]\n }\n },\n \"cacheUtil_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0] },\n { \"$divide\": [{\"$multiply\": [\"&TCP_GATE_EN2_sum\", 100]}, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }\n },\n \"cacheBW_pct\": {\n \"$avg\": { \"$divide\": [ {\"$multiply\":[64, \"&TCP_TOTAL_CACHE_ACCESSES_sum\"]}, \n {\"$subtract\":[\"&End_Timestamp\", \"&Start_Timestamp\"]} \n ] \n }\n },\n \"cacheHit_pct\": {\n \"$avg\": {\n \"$cond\": [ {\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0] },\n { \"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]\n }] \n },\n null\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Buffer Coalescing\": \"&bufferCoalescing_pct\",\n \"Cache Util\": \"&cacheUtil_pct\",\n \"Cache BW\": { \"$divide\": [{ \"$multiply\": [100, \"&cacheBW_pct\"] }, { \"$multiply\": [ { \"$multiply\": [{ \"$divide\": [$sclk2, 1000] }, 64] }, $cu_per_gpu2]}] },\n \"Cache Hit\": \"&cacheHit_pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Speed-of-Light: Vector L1D Cache", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "128B Read Combining 1": 6, - "128B Read Combining 2": 7, - "Buffer Coalescing 1": 0, - "Buffer Coalescing 2": 1, - "Cache BW 1": 2, - "Cache BW 2": 3, - "Cache Hit 1": 4, - "Cache Hit 2": 5 - }, - "renameByName": { - "128B Read Combining 1": "128B Read Combining (Current)", - "128B Read Combining 2": "128B Read Combining(Baseline)", - "Buffer Coalescing 1": "Buf Coalescing (Current)", - "Buffer Coalescing 2": "Buf Coalescing (Baseline)", - "Cache BW 1": "Cache BW (Current)", - "Cache BW 2": "Cache BW (Baseline)", - "Cache Hit 1": "Cache Hit (Current)", - "Cache Hit 2": "Cache Hit (Baseline)", - "Cache Util 1": "Cache Util (Current)", - "Cache Util 2": "Cache Util (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "color-background" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "transparent", - "value": null - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percent" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 52 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 199 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 121 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 144 - } - ] - } - ] - }, - "gridPos": { - "h": 13, - "w": 12, - "x": 12, - "y": 288 - }, - "id": 116, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"l2Pending_avg\": {\"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"l2Pending_min\": {\"$min\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"l2Pending_max\": {\"$max\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n\n\n \"tcr2tcp_Stall_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"tcr2tcp_Stall_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"tcr2tcp_Stall_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \n \"readTagRam_Stall_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \"readTagRam_Stall_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \"readTagRam_Stall_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \n \"writeTagRam_Stall_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"writeTagRam_Stall_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"writeTagRam_Stall_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \n \n \"atomicTagRam_Stall_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }}, \n \"atomicTagRam_Stall_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }}, \n \"atomicTagRam_Stall_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }} \n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Stalled on L2 Data\",\n \"Mean\": \"&l2Pending_avg\",\n \"Min\": \"&l2Pending_min\",\n \"Max\": \"&l2Pending_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Stalled on L2 Req\",\n \"Mean\": \"&tcr2tcp_Stall_avg\",\n \"Min\":\"&tcr2tcp_Stall_min\",\n \"Max\":\"&tcr2tcp_Stall_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Tag RAM Stall (Read)\",\n \"Mean\": \"&readTagRam_Stall_avg\",\n \"Min\": \"&readTagRam_Stall_min\",\n \"Max\": \"&readTagRam_Stall_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Tag RAM Stall (Write)\",\n \"Mean\": \"&writeTagRam_Stall_avg\",\n \"Min\": \"&writeTagRam_Stall_min\",\n \"Max\": \"&writeTagRam_Stall_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Tag RAM Stall (Atomic)\",\n \"Mean\": \"&atomicTagRam_Stall_avg\",\n \"Min\": \"&atomicTagRam_Stall_min\",\n \"Max\": \"&atomicTagRam_Stall_max\",\n \"unit\":\"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Vector L1D Cache)\"}}\n }},\n {\"$group\": {\n \"_id\": null,\n\n \"l2Pending_avg\": {\"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"l2Pending_min\": {\"$min\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"l2Pending_max\": {\"$max\": {\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_PENDING_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n\n \"tcr2tcp_Stall_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"tcr2tcp_Stall_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"tcr2tcp_Stall_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_TCR_TCP_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \n \"readTagRam_Stall_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \"readTagRam_Stall_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \"readTagRam_Stall_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_READ_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"]},\n null\n ]\n }},\n \n \"writeTagRam_Stall_avg\": {\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"writeTagRam_Stall_min\": {\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \"writeTagRam_Stall_max\": {\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }},\n \n \n \"atomicTagRam_Stall_avg\":{\"$avg\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }}, \n \"atomicTagRam_Stall_min\":{\"$min\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }}, \n \"atomicTagRam_Stall_max\":{\"$max\":{\n \"$cond\":[\n {\"$ne\": [\"&TCP_GATE_EN1_sum\", 0]}, \n {\"$divide\": [ { \"$multiply\": [100, \"&TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum\"] }, \"&TCP_GATE_EN1_sum\"] },\n null\n ]\n }} \n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Stalled on L2 Data\",\n \"Mean\": \"&l2Pending_avg\",\n \"Min\": \"&l2Pending_min\",\n \"Max\": \"&l2Pending_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Stalled on L2 Req\",\n \"Mean\": \"&tcr2tcp_Stall_avg\",\n \"Min\":\"&tcr2tcp_Stall_min\",\n \"Max\":\"&tcr2tcp_Stall_max\",\n \"unit\":\"pct\"\n },\n\n {\n \"Metric\": \"Tag RAM Stall (Read)\",\n \"Mean\": \"&readTagRam_Stall_avg\",\n \"Min\": \"&readTagRam_Stall_min\",\n \"Max\": \"&readTagRam_Stall_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Tag RAM Stall (Write)\",\n \"Mean\": \"&writeTagRam_Stall_avg\",\n \"Min\": \"&writeTagRam_Stall_min\",\n \"Max\": \"&writeTagRam_Stall_max\",\n \"unit\":\"pct\"\n },\n {\n \"Metric\": \"Tag RAM Stall (Atomic)\",\n \"Mean\": \"&atomicTagRam_Stall_avg\",\n \"Min\": \"&atomicTagRam_Stall_min\",\n \"Max\": \"&atomicTagRam_Stall_max\",\n \"unit\":\"pct\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Vector L1D Cache Stalls", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Units 2": true, - "unit 2": true - }, - "indexByName": { - "Max 1": 6, - "Max 2": 7, - "Mean 1": 2, - "Mean 2": 3, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 4, - "Min 2": 5, - "unit 1": 9, - "unit 2": 8 - }, - "renameByName": { - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Mean 1": "Avg (Current)", - "Mean 2": "Avg (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)", - "unit 1": "Unit" - } - } - } - ], - "type": "table" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 116 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 78 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 139 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Max (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 50 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "max" - }, - "properties": [ - { - "id": "custom.width", - "value": 148 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 127 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 111 - } - ] - } - ] - }, - "gridPos": { - "h": 18, - "w": 12, - "x": 0, - "y": 301 - }, - "id": 128, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n\n \"totalReq_avg\":{\"$avg\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n \"totalReq_min\":{\"$min\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n \"totalReq_max\":{\"$max\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n\n \"readReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n \"readReq_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n \"readReq_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n\n \"writeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n\n \"atomicReq_avg\":{\"$avg\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n \"atomicReq_min\":{\"$min\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n \"atomicReq_max\":{\"$max\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n\n \"cacheBW_avg\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] } ] }},\n \"cacheBW_min\":{\"$min\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] } ] }},\n \"cacheBW_max\":{\"$max\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] } ] }},\n \n \"cacheAccess_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n \"cacheAccess_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n \"cacheAccess_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n\n \"cacheHits_avg\":{\"$avg\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \"cacheHits_min\":{\"$min\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \"cacheHits_max\":{\"$max\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \n \"cacheHitRate_avg\":{\"$avg\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n \"cacheHitRate_min\":{\"$min\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n \"cacheHitRate_max\":{\"$max\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n \n \"l2_l1_read_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n \"l2_l1_read_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n \"l2_l1_read_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n\n \"l2_l1_write_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n \"l2_l1_write_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n \"l2_l1_write_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n\n\n \"l2_l1_atomic_avg\":{\"$avg\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n \"l2_l1_atomic_min\":{\"$min\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n \"l2_l1_atomic_max\":{\"$max\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n\n \"l2_l1_bw_avg\":{\"$avg\": {\"$divide\": [{\"$multiply\": [64, {\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] } ]}, \"&denom\" ]}},\n \"l2_l1_bw_min\":{\"$min\": {\"$divide\": [{\"$multiply\": [64, {\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] } ]}, \"&denom\" ]}},\n \"l2_l1_bw_max\":{\"$max\": {\"$divide\": [{\"$multiply\": [64, {\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] } ]}, \"&denom\" ]}},\n\n \"invalidate_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n \"invalidate_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n \"invalidate_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n\n\n \"l1Latency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n \"l1Latency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n \"l1Latency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n\n\n \"l2ReadLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n \"l2ReadLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n \"l2ReadLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n\n \"l2WriteLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }},\n \"l2WriteLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }},\n \"l2WriteLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }}\n\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Total Req\",\n \"avg\": \"&totalReq_avg\",\n \"min\": \"&totalReq_min\",\n \"max\": \"&totalReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Read Req\",\n \"avg\": \"&readReq_avg\",\n \"min\": \"&readReq_min\",\n \"max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Write Req\",\n \"avg\": \"&writeReq_avg\",\n \"min\": \"&writeReq_min\",\n \"max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Req\",\n \"avg\": \"&l2_l1_atomic_avg\",\n \"min\": \"&l2_l1_atomic_min\",\n \"max\": \"&l2_l1_atomic_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache BW\",\n \"avg\": \"&cacheBW_avg\",\n \"min\": \"&cacheBW_min\",\n \"max\": \"&cacheBW_max\",\n \"Unit\": \"GB/s\"\n },\n {\n \"metric\": \"Cache Accesses\",\n \"avg\": \"&cacheAccess_avg\",\n \"min\": \"&cacheAccess_min\",\n \"max\": \"&cacheAccess_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hits\",\n \"avg\": \"&cacheHits_avg\",\n \"min\": \"&cacheHits_min\",\n \"max\": \"&cacheHits_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hit Rate\",\n \"avg\": \"&cacheHitRate_avg\",\n \"min\": \"&cacheHitRate_min\",\n \"max\": \"&cacheHitRate_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Invalidate\",\n \"avg\": \"&invalidate_avg\",\n \"min\": \"&invalidate_min\",\n \"max\": \"&invalidate_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 BW\",\n \"avg\": \"&l2_l1_bw_avg\",\n \"min\": \"&l2_l1_bw_avg\",\n \"max\": \"&l2_l1_bw_avg\",\n \"Unit\": {\"$concat\": [\"Bytes \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Read\",\n \"avg\": \"&l2_l1_read_avg\",\n \"min\": \"&l2_l1_read_min\",\n \"max\": \"&l2_l1_read_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Write\",\n \"avg\": \"&l2_l1_write_avg\",\n \"min\": \"&l2_l1_write_min\",\n \"max\": \"&l2_l1_write_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Atomic\",\n \"avg\": \"&l2_l1_atomic_avg\",\n \"min\": \"&l2_l1_atomic_min\",\n \"max\": \"&l2_l1_atomic_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1 Access Latency\",\n \"avg\": \"&l1Latency_avg\",\n \"min\": \"&l1Latency_min\",\n \"max\": \"&l1Latency_max\",\n \"Unit\": \"Cycles\"\n },\n {\n \"metric\": \"L1-L2 Read Latency\",\n \"avg\": \"&l2ReadLatency_avg\",\n \"min\": \"&l2ReadLatency_min\",\n \"max\": \"&l2ReadLatency_max\",\n \"Unit\": \"Cycles\"\n },\n {\n \"metric\": \"L1-L2 Write Latency\",\n \"avg\": \"&l2WriteLatency_avg\",\n \"min\": \"&l2WriteLatency_min\",\n \"max\": \"&l2WriteLatency_max\",\n \"Unit\": \"Cycles\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Vector L1D Cache)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n\n \"totalReq_avg\":{\"$avg\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n \"totalReq_min\":{\"$min\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n \"totalReq_max\":{\"$max\": { \"$divide\": [ \"&TCP_TOTAL_ACCESSES_sum\", \"&denom\" ] }},\n\n \"readReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n \"readReq_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n \"readReq_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_READ_sum\", \"&denom\" ] }},\n\n \"writeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_WRITE_sum\", \"&denom\" ]}},\n\n \"atomicReq_avg\":{\"$avg\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n \"atomicReq_min\":{\"$min\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n \"atomicReq_max\":{\"$max\": {\"$divide\": [ { \"$add\": [\"&TCP_TOTAL_ATOMIC_WITH_RET_sum\", \"&TCP_TOTAL_ATOMIC_WITHOUT_RET_sum\"] }, \"&denom\"]}},\n\n \"cacheBW_avg\":{\"$avg\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] } ] }},\n \"cacheBW_min\":{\"$min\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] } ] }},\n \"cacheBW_max\":{\"$max\": { \"$divide\": [{ \"$multiply\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 64 ] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] } ] }},\n \n \"cacheAccess_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n \"cacheAccess_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n \"cacheAccess_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \"&denom\"]}},\n\n \"cacheHits_avg\":{\"$avg\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \"cacheHits_min\":{\"$min\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \"cacheHits_max\":{\"$max\": {\"$divide\": [ \n { \"$subtract\": [\n \"&TCP_TOTAL_CACHE_ACCESSES_sum\", \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}\n ]}, \n \"&denom\"\n ]}\n },\n \n \"cacheHitRate_avg\":{\"$avg\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n \"cacheHitRate_min\":{\"$min\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n \"cacheHitRate_max\":{\"$max\": {\n \"$cond\": [{\"$ne\": [\"&TCP_TOTAL_CACHE_ACCESSES_sum\", 0]}, \n {\"$subtract\": [100, \n { \"$divide\": [ \n { \"$multiply\": [100, \n { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }\n ] \n }, \n \"&TCP_TOTAL_CACHE_ACCESSES_sum\"\n ]}\n ]},\n null\n ]\n }},\n\n \"l2_l1_read_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n \"l2_l1_read_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n \"l2_l1_read_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCC_READ_REQ_sum\", \"&denom\"]}},\n\n \"l2_l1_write_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n \"l2_l1_write_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n \"l2_l1_write_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_sum\", \"&denom\"] }},\n\n\n \"l2_l1_atomic_avg\":{\"$avg\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n \"l2_l1_atomic_min\":{\"$min\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n \"l2_l1_atomic_max\":{\"$max\": {\"$divide\": [ { \"$add\": [\"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }, \"&denom\"] }},\n\n \"l2_l1_bw_avg\":{\"$avg\": {\"$divide\": [{\"$multiply\": [64, {\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] } ]}, \"&denom\" ]}},\n \"l2_l1_bw_min\":{\"$min\": {\"$divide\": [{\"$multiply\": [64, {\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] } ]}, \"&denom\" ]}},\n \"l2_l1_bw_max\":{\"$max\": {\"$divide\": [{\"$multiply\": [64, {\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] } ]}, \"&denom\" ]}},\n\n \"invalidate_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n \"invalidate_min\":{\"$min\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n \"invalidate_max\":{\"$max\": {\"$divide\": [ \"&TCP_TOTAL_WRITEBACK_INVALIDATES_sum\", \"&denom\"] }},\n\n\n \"l1Latency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n \"l1Latency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n \"l1Latency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_TA_TCP_STATE_READ_sum\", 0]},\n {\"$divide\": [ \"&TCP_TCP_LATENCY_sum\", \"&TCP_TA_TCP_STATE_READ_sum\" ]},\n null\n ] \n }},\n\n\n \"l2ReadLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n \"l2ReadLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n \"l2ReadLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_READ_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_READ_REQ_sum\", \"&TCP_TCC_ATOMIC_WITH_RET_REQ_sum\"] }]},\n null\n ] \n }},\n\n \"l2WriteLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }},\n \"l2WriteLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }},\n \"l2WriteLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{\"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"]}, 0]},\n {\"$divide\": [ \"&TCP_TCC_WRITE_REQ_LATENCY_sum\", { \"$add\": [\"&TCP_TCC_WRITE_REQ_sum\", \"&TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum\"] }]},\n null\n ]\n }}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Total Req\",\n \"avg\": \"&totalReq_avg\",\n \"min\": \"&totalReq_min\",\n \"max\": \"&totalReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Read Req\",\n \"avg\": \"&readReq_avg\",\n \"min\": \"&readReq_min\",\n \"max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Write Req\",\n \"avg\": \"&writeReq_avg\",\n \"min\": \"&writeReq_min\",\n \"max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Req\",\n \"avg\": \"&atomicReq_avg\",\n \"min\": \"&atomicReq_min\",\n \"max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache BW\",\n \"avg\": \"&cacheBW_avg\",\n \"min\": \"&cacheBW_min\",\n \"max\": \"&cacheBW_max\",\n \"Unit\": \"GB/s\"\n },\n {\n \"metric\": \"Cache Accesses\",\n \"avg\": \"&cacheAccess_avg\",\n \"min\": \"&cacheAccess_min\",\n \"max\": \"&cacheAccess_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hits\",\n \"avg\": \"&cacheHits_avg\",\n \"min\": \"&cacheHits_min\",\n \"max\": \"&cacheHits_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hit Rate\",\n \"avg\": \"&cacheHitRate_avg\",\n \"min\": \"&cacheHitRate_min\",\n \"max\": \"&cacheHitRate_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Invalidate\",\n \"avg\": \"&invalidate_avg\",\n \"min\": \"&invalidate_min\",\n \"max\": \"&invalidate_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 BW\",\n \"avg\": \"&l2_l1_bw_avg\",\n \"min\": \"&l2_l1_bw_avg\",\n \"max\": \"&l2_l1_bw_avg\",\n \"Unit\": {\"$concat\": [\"Bytes \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Read\",\n \"avg\": \"&l2_l1_read_avg\",\n \"min\": \"&l2_l1_read_min\",\n \"max\": \"&l2_l1_read_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Write\",\n \"avg\": \"&l2_l1_write_avg\",\n \"min\": \"&l2_l1_write_min\",\n \"max\": \"&l2_l1_write_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1-L2 Atomic\",\n \"avg\": \"&l2_l1_atomic_avg\",\n \"min\": \"&l2_l1_atomic_min\",\n \"max\": \"&l2_l1_atomic_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"L1 Access Latency\",\n \"avg\": \"&l1Latency_avg\",\n \"min\": \"&l1Latency_min\",\n \"max\": \"&l1Latency_max\",\n \"Unit\": \"Cycles\"\n },\n {\n \"metric\": \"L1-L2 Read Latency\",\n \"avg\": \"&l2ReadLatency_avg\",\n \"min\": \"&l2ReadLatency_min\",\n \"max\": \"&l2ReadLatency_max\",\n \"Unit\": \"Cycles\"\n },\n {\n \"metric\": \"L1-L2 Write Latency\",\n \"avg\": \"&l2WriteLatency_avg\",\n \"min\": \"&l2WriteLatency_min\",\n \"max\": \"&l2WriteLatency_max\",\n \"Unit\": \"Cycles\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Vector L1D Cache Accesses", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Unit 2": true, - "metric 2": true - }, - "indexByName": { - "Unit 1": 9, - "Unit 2": 8, - "avg 1": 1, - "avg 2": 2, - "max 1": 5, - "max 2": 6, - "metric 1": 0, - "metric 2": 7, - "min 1": 3, - "min 2": 4 - }, - "renameByName": { - "avg 1": "Avg (Current)", - "avg 2": "Avg (Baseline)", - "max 1": "Max (Current)", - "max 2": "Max (Baseline)", - "min 1": "Min (Current)", - "min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "Aggregate": "last", - "BarPadding": 30, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupColName": "Coherency", - "GroupCols": 2, - "GroupGap": 5, - "GroupLabelColor": "#FF9830", - "GroupLabelFontSize": "100%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 0, - "Horizontal": true, - "LabelColName": "Xfer", - "LabelColor": "#ffffff", - "LabelFontSize": "100%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 0, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#FADE2A", - "ValueDecimals": 0, - "ValueFontSize": "100%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:172", - "Col": 2, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Mean", - "Selected": true - } - ], - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 301 - }, - "id": 120, - "pluginVersion": "8.2.1", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "tlh8EwUnk" - }, - "rawQuery": true, - "refId": "A", - "target": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n\n \"readNC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_NC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readNC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_NC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readNC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_NC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readUC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_UC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readUC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_UC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readUC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_UC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readCC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_CC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readCC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_CC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readCC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_CC_READ_REQ_sum\", \"&denom\"] }\n },\n \"readRW_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_RW_READ_REQ_sum\", \"&denom\"] }\n },\n \"readRW_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_RW_READ_REQ_sum\", \"&denom\"] }\n },\n \"readRW_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_RW_READ_REQ_sum\", \"&denom\"] }\n },\n \n \"writeNC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_NC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeNC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_NC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeNC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_NC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeUC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_UC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeUC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_UC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeUC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_UC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeCC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_CC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeCC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_CC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeCC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_CC_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeRW_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_RW_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeRW_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_RW_WRITE_REQ_sum\", \"&denom\"] }\n },\n \"writeRW_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_RW_WRITE_REQ_sum\", \"&denom\"] }\n },\n \n \"atomicNC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_NC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicNC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_NC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicNC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_NC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicUC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_UC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicUC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_UC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicUC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_UC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicCC_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_CC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicCC_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_CC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicCC_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_CC_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicRW_avg\": {\n \"$avg\": { \"$divide\": [\"&TCP_TCC_RW_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicRW_min\": {\n \"$min\": { \"$divide\": [\"&TCP_TCC_RW_ATOMIC_REQ_sum\", \"&denom\"] }\n },\n \"atomicRW_max\": {\n \"$max\": { \"$divide\": [\"&TCP_TCC_RW_ATOMIC_REQ_sum\", \"&denom\"] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Xfer\": \"Read\",\n \"Coherency\": \"NC\",\n \"Avg\": \"&readNC_avg\",\n \"Min\": \"&readNC_min\",\n \"Max\": \"&readNC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Read\",\n \"Coherency\": \"UC\",\n \"Avg\": \"&readUC_avg\",\n \"Min\": \"&readUC_min\",\n \"Max\": \"&readUC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Read\",\n \"Coherency\": \"CC\",\n \"Avg\": \"&readCC_avg\",\n \"Min\": \"&readCC_min\",\n \"Max\": \"&readCC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Read\",\n \"Coherency\": \"RW\",\n \"Avg\": \"&readRW_avg\",\n \"Min\": \"&readRW_min\",\n \"Max\": \"&readRW_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Write\",\n \"Coherency\": \"RW\",\n \"Avg\": \"&writeRW_avg\",\n \"Min\": \"&writeRW_min\",\n \"Max\": \"&writeRW_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Write\",\n \"Coherency\": \"NC\",\n \"Avg\": \"&writeNC_avg\",\n \"Min\": \"&writeNC_min\",\n \"Max\": \"&writeNC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Write\",\n \"Coherency\": \"UC\",\n \"Avg\": \"&writeUC_avg\",\n \"Min\": \"&writeUC_min\",\n \"Max\": \"&writeUC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Write\",\n \"Coherency\": \"CC\",\n \"Avg\": \"&writeCC_avg\",\n \"Min\": \"&writeCC_min\",\n \"Max\": \"&writeCC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n\n {\n \"Xfer\": \"Atomic\",\n \"Coherency\": \"NC\",\n \"Avg\": \"&atomicNC_avg\",\n \"Min\": \"&atomicNC_min\",\n \"Max\": \"&atomicNC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Atomic\",\n \"Coherency\": \"UC\",\n \"Avg\": \"&atomicUC_avg\",\n \"Min\": \"&atomicUC_min\",\n \"Max\": \"&atomicUC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Atomic\",\n \"Coherency\": \"CC\",\n \"Avg\": \"&atomicCC_avg\",\n \"Min\": \"&atomicCC_min\",\n \"Max\": \"&atomicCC_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Xfer\": \"Atomic\",\n \"Coherency\": \"RW\",\n \"Avg\": \"&atomicRW_avg\",\n \"Min\": \"&atomicRW_min\",\n \"Max\": \"&atomicRW_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Vector L1D - L2 Transactions Req $normUnit", - "transparent": true, - "type": "michaeldmoore-multistat-panel" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Units" - }, - "properties": [ - { - "id": "custom.width", - "value": 75 - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 309 - }, - "id": 124, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\":{\"$avg\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n \"req_min\":{\"$min\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n \"req_max\":{\"$max\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n\n\n \"hitRatio_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n \"hitRatio_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n \"hitRatio_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n\n \"hits_avg\":{\"$avg\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n \"hits_min\":{\"$min\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n \"hits_max\":{\"$max\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n\n \"missesTrans_avg\":{\"$avg\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n \"missesTrans_min\":{\"$min\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n \"missesTrans_max\":{\"$max\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n\n \"missesPermis_avg\":{\"$avg\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }},\n \"missesPermis_min\":{\"$min\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }},\n \"missesPermis_max\":{\"$max\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean\": \"&req_avg\",\n \"Min\":\"&req_min\",\n \"Max\":\"&req_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Hit Ratio\",\n \"Mean\": \"&hitRatio_avg\",\n \"Min\":\"&hitRatio_min\",\n \"Max\":\"&hitRatio_max\",\n \"Units\":\"pct\"\n },\n {\n \"Metric\": \"Hits\",\n \"Mean\": \"&hits_avg\",\n \"Min\":\"&hits_min\",\n \"Max\":\"&hits_max\",\n \"Units\":{ \"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Misses (Translation)\",\n \"Mean\": \"&missesTrans_avg\",\n \"Min\":\"&missesTrans_min\",\n \"Max\":\"&missesTrans_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Misses (Permission)\",\n \"Mean\": \"&missesPermis_avg\",\n \"Min\":\"&missesPermis_min\",\n \"Max\":\"&missesPermis_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(Vector L1D Cache)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\":{\"$avg\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n \"req_min\":{\"$min\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n \"req_max\":{\"$max\": { \"$divide\": [\"&TCP_UTCL1_REQUEST_sum\" ,\"&denom\"] }},\n\n\n \"hitRatio_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n \"hitRatio_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n \"hitRatio_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCP_UTCL1_REQUEST_sum\", 0]},\n {\"$divide\": [{ \"$multiply\": [100, \"&TCP_UTCL1_TRANSLATION_HIT_sum\"] },\"&TCP_UTCL1_REQUEST_sum\"]},\n null\n ]\n }},\n\n \"hits_avg\":{\"$avg\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n \"hits_min\":{\"$min\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n \"hits_max\":{\"$max\": { \"$divide\": [\"&TCP_UTCL1_TRANSLATION_HIT_sum\" ,\"&denom\"] }},\n\n \"missesTrans_avg\":{\"$avg\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n \"missesTrans_min\":{\"$min\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n \"missesTrans_max\":{\"$max\": {\"$divide\": [\"&TCP_UTCL1_TRANSLATION_MISS_sum\" ,\"&denom\"] }},\n\n \"missesPermis_avg\":{\"$avg\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }},\n \"missesPermis_min\":{\"$min\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }},\n \"missesPermis_max\":{\"$max\": {\"$divide\": [\"&TCP_UTCL1_PERMISSION_MISS_sum\" ,\"&denom\"] }}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Req\",\n \"Mean\": \"&req_avg\",\n \"Min\":\"&req_min\",\n \"Max\":\"&req_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Hit Ratio\",\n \"Mean\": \"&hitRatio_avg\",\n \"Min\":\"&hitRatio_min\",\n \"Max\":\"&hitRatio_max\",\n \"Units\":\"pct\"\n },\n {\n \"Metric\": \"Hits\",\n \"Mean\": \"&hits_avg\",\n \"Min\":\"&hits_min\",\n \"Max\":\"&hits_max\",\n \"Units\":{ \"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Misses (Translation)\",\n \"Mean\": \"&missesTrans_avg\",\n \"Min\":\"&missesTrans_min\",\n \"Max\":\"&missesTrans_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n },\n {\n \"Metric\": \"Misses (Permission)\",\n \"Mean\": \"&missesPermis_avg\",\n \"Min\":\"&missesPermis_min\",\n \"Max\":\"&missesPermis_max\",\n \"Units\":{\"$concat\": [\"\", $normUnit] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Vector L1D Addr Translation", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Units 2": true - }, - "indexByName": { - "Max 1": 7, - "Max 2": 8, - "Mean 1": 3, - "Mean 2": 4, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Units 1": 9, - "Units 2": 2 - }, - "renameByName": { - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Mean 1": "Avg (Current)", - "Mean 2": "Avg (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "collapsed": false, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 319 - }, - "id": 56, - "panels": [], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "L2 Cache", - "type": "row" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "L2-EA Rd BW - GB/s" - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2-EA Rd BW " - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - }, - { - "id": "max", - "value": 1638 - }, - { - "id": "color" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2 Util" - }, - "properties": [ - { - "id": "unit", - "value": "percent" - }, - { - "id": "thresholds", - "value": { - "mode": "percentage", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - } - }, - { - "id": "max", - "value": 100 - }, - { - "id": "min", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Cache Hit" - }, - "properties": [ - { - "id": "max", - "value": 100 - }, - { - "id": "unit", - "value": "percent" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 90 - } - ] - } - }, - { - "id": "min", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2-EA Wr BW" - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - }, - { - "id": "max", - "value": 1638 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "L2-EA Rd BW" - }, - "properties": [ - { - "id": "unit", - "value": "GBs" - }, - { - "id": "max", - "value": 1638 - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 320 - }, - "id": 64, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": true - }, - "showUnfilled": true, - "text": { - "titleSize": 14, - "valueSize": 16 - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n{\"$group\": {\n \"_id\": null,\n \"L2Util\": {\n \"$avg\": { \n \n \"$divide\": [\n {\"$multiply\": [\"&TCC_BUSY_sum\", 100]},\n {\"$multiply\": [{\"$toInt\":\"$lds_banks_per_cu\"}, \"&GRBM_GUI_ACTIVE\"] }\n ] \n } \n },\n\n \"cacheHit\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n 0\n ] \n }},\n\n \"l2eaRdBW\": {\n \"$avg\": { \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] } ] }\n },\n \n \"l2eaWrBW\": {\n \"$avg\": { \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] } ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"L2 Util\": \"&L2Util\",\n \"Cache Hit\": \"&cacheHit\",\n \"L2-EA Rd BW\": \"&l2eaRdBW\",\n \"L2-EA Wr BW\": \"&l2eaWrBW\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(L2 Cache)\"}}\n }},\n\n{\"$group\": {\n \"_id\": null,\n \"L2Util\": {\n \"$avg\": { \n \"$divide\": [\n {\"$multiply\": [\"&TCC_BUSY_sum\", 100]},\n {\"$multiply\": [{\"$toInt\":\"$lds_banks_per_cu2\"}, \"&GRBM_GUI_ACTIVE\"] }\n ] \n } \n },\n\n \"cacheHit\": {\n \"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n 0\n ] \n }},\n\n \"l2eaRdBW\": {\n \"$avg\": { \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] } ] }\n },\n \n \"l2eaWrBW\": {\n \"$avg\": { \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, { \"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\"] } ] }\n }\n }\n },\n {\"$set\": {\n \"array\": [\n {\n \"L2 Util\": \"&L2Util\",\n \"Cache Hit\": \"&cacheHit\",\n \"L2-EA Rd BW\": \"&l2eaRdBW\",\n \"L2-EA Wr BW\": \"&l2eaWrBW\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Speed-of-Light: L2 Cache", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Cache Hit 1": 2, - "Cache Hit 2": 3, - "L2 Util 1": 0, - "L2 Util 2": 1, - "L2-EA Rd BW 1": 4, - "L2-EA Rd BW 2": 5, - "L2-EA Wr BW 1": 6, - "L2-EA Wr BW 2": 7 - }, - "renameByName": { - "Cache Hit 1": "L2 Cache Hit (Current)", - "Cache Hit 2": "L2 Cache Hit (Baseline)", - "L2 Util 1": "L2 Util (Current)", - "L2 Util 2": "L2 Util (Baseline)", - "L2-EA Rd BW - GB/s 1": "L2-EA RD BW (Current)", - "L2-EA Rd BW - GB/s 2": "L2-EA RD BW (baseline)", - "L2-EA Rd BW 1": "L2-EA Rd BW (Current)", - "L2-EA Rd BW 2": "L2-EA Rd BW (Baseline)", - "L2-EA Wr BW - GB/s 1": "L2-EA WR BW (Current)", - "L2-EA Wr BW - GB/s 2": "L2-EA WR BW (Baseline)", - "L2-EA Wr BW 1": "L2-EA Wr BW (Current)", - "L2-EA Wr BW 2": "L2-EA Wr BW (Baseline)" - } - } - } - ], - "transparent": true, - "type": "bargauge" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 106 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 114 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Metric" - }, - "properties": [ - { - "id": "custom.width", - "value": 148 - } - ] - } - ] - }, - "gridPos": { - "h": 16, - "w": 12, - "x": 12, - "y": 320 - }, - "id": 62, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": \"null\",\n \"readStall_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"readStall_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"readStall_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n\n \"writeStall_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"writeStall_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"writeStall_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n\n \n \"readBW_avg\":{\"$avg\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n \"readBW_min\":{\"$min\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n \"readBW_max\":{\"$max\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n\n \"writeBW_avg\":{\"$avg\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n \"writeBW_min\":{\"$min\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n \"writeBW_max\":{\"$max\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n\n \"read32_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n \"read32_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n \"read32_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n\n \"read32Uncached_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"read32Uncached_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"read32Uncached_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n\n \"read64_avg\":{\"$avg\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n \"read64_min\":{\"$min\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n \"read64_max\":{\"$max\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n\n \"hbmRead_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmRead_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmRead_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n\n \"write32_avg\":{\"$avg\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n \"write32_min\":{\"$min\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n \"write32_max\":{\"$max\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n\n \"write32Uncached_avg\": {\"$avg\":{\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"write32Uncached_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"write32Uncached_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n\n \"write64_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n \"write64_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n \"write64_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n\n \"hbmWrite_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmWrite_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmWrite_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n\n \"readLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n \"readLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n \"readLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n\n \"writeLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n \"writeLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n \"writeLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n\n \"atomicOpLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }},\n \"atomicOpLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }},\n \"atomicOpLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Read BW\",\n \"Avg\": \"&readBW_avg\",\n \"Min\":\"&readBW_min\",\n \"Max\":\"&readBW_max\",\n \"Unit\":{\"$concat\": [\"Bytes \", $normUnit] }\n },\n {\n \"Metric\": \"Write BW\",\n \"Avg\": \"&writeBW_avg\",\n \"Min\":\"&writeBW_min\",\n \"Max\":\"&writeBW_max\",\n \"Unit\":{\"$concat\": [\"Bytes \", $normUnit] }\n },\n {\n \"Metric\": \"Read (32B)\",\n \"Avg\": \"&read32_avg\",\n \"Min\":\"&read32_min\",\n \"Max\":\"&read32_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read (Uncached 32B)\",\n \"Avg\": \"&read32Uncached_avg\",\n \"Min\":\"&read32Uncached_min\",\n \"Max\":\"&read32Uncached_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read (64B)\",\n \"Avg\": \"&read64_avg\",\n \"Min\":\"&read64_min\",\n \"Max\":\"&read64_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"HBM Read\",\n \"Avg\": \"&hbmRead_avg\",\n \"Min\":\"&hbmRead_min\",\n \"Max\":\"&hbmRead_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (32B)\",\n \"Avg\": \"&write32_avg\",\n \"Min\":\"&write32_min\",\n \"Max\":\"&write32_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (Uncached 32B)\",\n \"Avg\": \"&write32Uncached_avg\",\n \"Min\":\"&write32Uncached_min\",\n \"Max\":\"&write32Uncached_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (64B)\",\n \"Avg\": \"&write64_avg\",\n \"Min\":\"&write64_min\",\n \"Max\":\"&write64_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"HBM Write\",\n \"Avg\": \"&hbmWrite_avg\",\n \"Min\":\"&hbmWrite_min\",\n \"Max\":\"&hbmWrite_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read Latency\",\n \"Avg\": \"&readLatency_avg\",\n \"Min\":\"&readLatency_min\",\n \"Max\":\"&readLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Write Latency\",\n \"Avg\": \"&writeLatency_avg\",\n \"Min\":\"&writeLatency_min\",\n \"Max\":\"&writeLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Atomic Latency\",\n \"Avg\": \"&atomicOpLatency_avg\",\n \"Min\":\"&atomicOpLatency_min\",\n \"Max\":\"&atomicOpLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Read Stall\",\n \"Avg\": \"&readStall_avg\",\n \"Min\":\"&readStall_min\",\n \"Max\":\"&readStall_max\",\n \"Unit\":\"pct\"\n },\n {\n \"Metric\": \"Write Stall\",\n \"Avg\": \"&writeStall_avg\",\n \"Min\":\"&writeStall_min\",\n \"Max\":\"&writeStall_max\",\n \"Unit\":\"pct\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(L2 Cache)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": \"null\",\n \"readStall_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"readStall_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"readStall_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n\n \"writeStall_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"writeStall_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n \"writeStall_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_BUSY_sum\", 0]},\n { \"$divide\": [ \n {\"$multiply\": [100, {\"$add\":[\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\"]}]},\n \"&TCC_BUSY_sum\" \n ]},\n null\n ]\n }},\n\n \"readBW_avg\":{\"$avg\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n \"readBW_min\":{\"$min\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n \"readBW_max\":{\"$max\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_RDREQ_32B_sum\", 32]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, 64] } ] }, \"&denom\" ]\n }},\n\n \"writeBW_avg\":{\"$avg\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n \"writeBW_min\":{\"$min\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n \"writeBW_max\":{\"$max\": {\n \"$divide\": [ { \"$add\" : [{ \"$multiply\": [\"&TCC_EA_WRREQ_64B_sum\", 64]}, { \"$multiply\": [{ \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, 32] } ] }, \"&denom\" ]\n }},\n\n \"read32_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n \"read32_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n \"read32_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_32B_sum\", \"&denom\" ]\n }},\n\n \"read32Uncached_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"read32Uncached_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"read32Uncached_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RD_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n\n \"read64_avg\":{\"$avg\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n \"read64_min\":{\"$min\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n \"read64_max\":{\"$max\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_RDREQ_sum\", \"&TCC_EA_RDREQ_32B_sum\"] }, \"&denom\" ]\n }},\n\n \"hbmRead_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmRead_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmRead_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_RDREQ_DRAM_sum\", \"&denom\" ]\n }},\n\n \"write32_avg\":{\"$avg\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n \"write32_min\":{\"$min\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n \"write32_max\":{\"$max\": {\n \"$divide\": [ { \"$subtract\": [\"&TCC_EA_WRREQ_sum\", \"&TCC_EA_WRREQ_64B_sum\"] }, \"&denom\" ]\n }},\n\n \"write32Uncached_avg\": {\"$avg\":{\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"write32Uncached_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n \"write32Uncached_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WR_UNCACHED_32B_sum\", \"&denom\" ]\n }},\n\n \"write64_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n \"write64_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n \"write64_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_64B_sum\", \"&denom\" ]\n }},\n\n \"hbmWrite_avg\":{\"$avg\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmWrite_min\":{\"$min\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n \"hbmWrite_max\":{\"$max\": {\n \"$divide\": [ \"&TCC_EA_WRREQ_DRAM_sum\", \"&denom\" ]\n }},\n\n \"readLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n \"readLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n \"readLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_RDREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_RDREQ_LEVEL_sum\", \"&TCC_EA_RDREQ_sum\" ] },\n null\n ]\n }},\n\n \"writeLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n \"writeLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n \"writeLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_WRREQ_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_WRREQ_LEVEL_sum\", \"&TCC_EA_WRREQ_sum\" ] },\n null\n ]\n }},\n\n \"atomicOpLatency_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }},\n \"atomicOpLatency_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }},\n \"atomicOpLatency_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [\"&TCC_EA_ATOMIC_sum\", 0]},\n { \"$divide\": [ \"&TCC_EA_ATOMIC_LEVEL_sum\", \"&TCC_EA_ATOMIC_sum\" ] },\n null\n ]\n }}\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Read BW\",\n \"Avg\": \"&readBW_avg\",\n \"Min\":\"&readBW_min\",\n \"Max\":\"&readBW_max\",\n \"Unit\":{\"$concat\": [\"Bytes \", $normUnit] }\n },\n {\n \"Metric\": \"Write BW\",\n \"Avg\": \"&writeBW_avg\",\n \"Min\":\"&writeBW_min\",\n \"Max\":\"&writeBW_max\",\n \"Unit\":{\"$concat\": [\"Bytes \", $normUnit] }\n },\n {\n \"Metric\": \"Read (32B)\",\n \"Avg\": \"&read32_avg\",\n \"Min\":\"&read32_min\",\n \"Max\":\"&read32_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read (Uncached 32B)\",\n \"Avg\": \"&read32Uncached_avg\",\n \"Min\":\"&read32Uncached_min\",\n \"Max\":\"&read32Uncached_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read (64B)\",\n \"Avg\": \"&read64_avg\",\n \"Min\":\"&read64_min\",\n \"Max\":\"&read64_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"HBM Read\",\n \"Avg\": \"&hbmRead_avg\",\n \"Min\":\"&hbmRead_min\",\n \"Max\":\"&hbmRead_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (32B)\",\n \"Avg\": \"&write32_avg\",\n \"Min\":\"&write32_min\",\n \"Max\":\"&write32_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (Uncached 32B)\",\n \"Avg\": \"&write32Uncached_avg\",\n \"Min\":\"&write32Uncached_min\",\n \"Max\":\"&write32Uncached_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Write (64B)\",\n \"Avg\": \"&write64_avg\",\n \"Min\":\"&write64_min\",\n \"Max\":\"&write64_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n\n {\n \"Metric\": \"HBM Write\",\n \"Avg\": \"&hbmWrite_avg\",\n \"Min\":\"&hbmWrite_min\",\n \"Max\":\"&hbmWrite_max\",\n \"Unit\":{\"$concat\": [\"Req \", $normUnit] }\n },\n {\n \"Metric\": \"Read Latency\",\n \"Avg\": \"&readLatency_avg\",\n \"Min\":\"&readLatency_min\",\n \"Max\":\"&readLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Write Latency\",\n \"Avg\": \"&writeLatency_avg\",\n \"Min\":\"&writeLatency_min\",\n \"Max\":\"&writeLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Atomic Latency\",\n \"Avg\": \"&atomicOpLatency_avg\",\n \"Min\":\"&atomicOpLatency_min\",\n \"Max\":\"&atomicOpLatency_max\",\n \"Unit\":\"Cycles\"\n },\n {\n \"Metric\": \"Read Stall\",\n \"Avg\": \"&readStall_avg\",\n \"Min\":\"&readStall_min\",\n \"Max\":\"&readStall_max\",\n \"Unit\":\"pct\"\n },\n {\n \"Metric\": \"Write Stall\",\n \"Avg\": \"&writeStall_avg\",\n \"Min\":\"&writeStall_min\",\n \"Max\":\"&writeStall_max\",\n \"Unit\":\"pct\"\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "L2 - Fabric Transactions", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Metric 2": true, - "Unit 2": true - }, - "indexByName": { - "Avg 1": 3, - "Avg 2": 4, - "Max 1": 7, - "Max 2": 8, - "Metric 1": 0, - "Metric 2": 1, - "Min 1": 5, - "Min 2": 6, - "Unit 1": 9, - "Unit 2": 2 - }, - "renameByName": { - "Avg 1": "Avg (Current)", - "Avg 2": "Avg (Baseline)", - "Max 1": "Max (Current)", - "Max 2": "Max (Baseline)", - "Min 1": "Min (Current)", - "Min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "datasource": {}, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "decimals": 1, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "locale" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Avg (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 178 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unit" - }, - "properties": [ - { - "id": "custom.width", - "value": 128 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Avg (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 121 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Current)" - }, - "properties": [ - { - "id": "custom.width", - "value": 126 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Min (Baseline)" - }, - "properties": [ - { - "id": "custom.width", - "value": 128 - } - ] - } - ] - }, - "gridPos": { - "h": 20, - "w": 12, - "x": 0, - "y": 327 - }, - "id": 58, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n \"req_min\":{\"$min\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n \"req_max\":{\"$max\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n\n \"streamingReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n \"streamingReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n \"streamingReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n\n \"readReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n \"readReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n \"readReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n\n \"writeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n\n \"atomicReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n \"atomicReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n \"atomicReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n\n \"probeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n \"probeReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n \"probeReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n\n \"hits_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n \"hits_min\":{\"$min\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n \"hits_max\":{\"$max\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n\n \"misses_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n \"misses_min\":{\"$min\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n \"misses_max\":{\"$max\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n\n \"cacheHit_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n \"cacheHit_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n \"cacheHit_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n\n\n \"writeback_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n \"writeback_min\":{\"$min\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n \"writeback_max\":{\"$max\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n\n \"nc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n \"nc_min\":{\"$min\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n \"nc_max\":{\"$max\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n\n \"uc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n \"uc_min\":{\"$min\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n \"uc_max\":{\"$max\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n\n \"cc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n \"cc_min\":{\"$min\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n \"cc_max\":{\"$max\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n\n \"rw_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n \"rw_min\":{\"$min\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n \"rw_max\":{\"$max\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n\n \"writebackNorm_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n \"writebackNorm_min\":{\"$min\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n \"writebackNorm_max\":{\"$max\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n\n \"writebackTC_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n \"writebackTC_min\":{\"$min\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n \"writebackTC_max\":{\"$max\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n\n \"evictNorm_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n \"evictNorm_min\":{\"$min\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n \"evictNorm_max\":{\"$max\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n\n \"evictTC_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n \"evictTC_min\":{\"$min\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n \"evictTC_max\":{\"$max\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n\n\n \"readReq128_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }},\n \"readReq128_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }},\n \"readReq128_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Req\",\n \"avg\": \"&req_avg\",\n \"min\": \"&req_min\",\n \"max\": \"&req_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Streaming Req\",\n \"avg\": \"&streamingReq_avg\",\n \"min\": \"&streamingReq_min\",\n \"max\": \"&streamingReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Read Req\",\n \"avg\": \"&readReq_avg\",\n \"min\": \"&readReq_min\",\n \"max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n \n {\n \"metric\": \"Write Req\",\n \"avg\": \"&writeReq_avg\",\n \"min\": \"&writeReq_min\",\n \"max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Req\",\n \"avg\": \"&atomicReq_avg\",\n \"min\": \"&atomicReq_min\",\n \"max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Probe Req\",\n \"avg\": \"&probeReq_avg\",\n \"min\": \"&probeReq_min\",\n \"max\": \"&probeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Hits\",\n \"avg\": \"&hits_avg\",\n \"min\": \"&hits_min\",\n \"max\": \"&hits_max\",\n \"Unit\": {\"$concat\": [\"Hits \", $normUnit]}\n }, \n {\n \"metric\": \"Misses\",\n \"avg\": \"&misses_avg\",\n \"min\": \"&misses_min\",\n \"max\": \"&misses_max\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hit\",\n \"avg\": \"&cacheHit_avg\",\n \"min\": \"&cacheHit_min\",\n \"max\": \"&cacheHit_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Writeback\",\n \"avg\": \"&writeback_avg\",\n \"min\": \"&writeback_min\",\n \"max\": \"&writeback_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"NC Req\",\n \"avg\": \"&nc_avg\",\n \"min\": \"&nc_min\",\n \"max\": \"&nc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"UC Req\",\n \"avg\": \"&uc_avg\",\n \"min\": \"&uc_min\",\n \"max\": \"&uc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"CC Req\",\n \"avg\": \"&cc_avg\",\n \"min\": \"&cc_min\",\n \"max\": \"&cc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"RW Req\",\n \"avg\": \"&rw_avg\",\n \"min\": \"&rw_min\",\n \"max\": \"&rw_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Writeback (Normal)\",\n \"avg\": \"&writebackNorm_avg\",\n \"min\": \"&writebackNorm_min\",\n \"max\": \"&writebackNorm_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Writeback (TC Req)\",\n \"avg\": \"&writebackTC_avg\",\n \"min\": \"&writebackTC_min\",\n \"max\": \"&writebackTC_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Evict (Normal)\",\n \"avg\": \"&evictNorm_avg\",\n \"min\": \"&evictNorm_min\",\n \"max\": \"&evictNorm_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Evict (TC Req)\",\n \"avg\": \"&evictTC_avg\",\n \"min\": \"&evictTC_min\",\n \"max\": \"&evictTC_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n }\n\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - }, - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "hide": false, - "rawQuery": true, - "refId": "B", - "target": "${Workload2}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}},\n \"$expr\":{\"$regexMatch\": {\"input\":\"${select}\",\"regex\":\"(L2 Cache)\"}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": null,\n \"req_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n \"req_min\":{\"$min\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n \"req_max\":{\"$max\": { \"$divide\": [ \"&TCC_REQ_sum\", \"&denom\"] }},\n\n \"streamingReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n \"streamingReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n \"streamingReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_STREAMING_REQ_sum\", \"&denom\" ] }},\n\n \"readReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n \"readReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n \"readReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_READ_sum\", \"&denom\" ] }},\n\n \"writeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n \"writeReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_WRITE_sum\", \"&denom\" ]}},\n\n \"atomicReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n \"atomicReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n \"atomicReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_ATOMIC_sum\", \"&denom\" ]}},\n\n \"probeReq_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n \"probeReq_min\":{\"$min\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n \"probeReq_max\":{\"$max\": {\"$divide\": [ \"&TCC_PROBE_sum\", \"&denom\" ]}},\n\n \"hits_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n \"hits_min\":{\"$min\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n \"hits_max\":{\"$max\": {\"$divide\": [ \"&TCC_HIT_sum\", \"&denom\"] }},\n\n \"misses_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n \"misses_min\":{\"$min\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n \"misses_max\":{\"$max\": { \"$divide\": [ \"&TCC_MISS_sum\", \"&denom\"] }},\n\n \"cacheHit_avg\":{\"$avg\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n \"cacheHit_min\":{\"$min\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n \"cacheHit_max\":{\"$max\": {\n \"$cond\": [\n {\"$ne\": [{ \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] }, 0]},\n { \"$divide\": [ { \"$multiply\": [100, \"&TCC_HIT_sum\"] }, { \"$add\": [ \"&TCC_HIT_sum\", \"&TCC_MISS_sum\" ] } ] },\n null\n ] \n }},\n\n\n \"writeback_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n \"writeback_min\":{\"$min\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n \"writeback_max\":{\"$max\": {\"$divide\": [ \"&TCC_WRITEBACK_sum\", \"&denom\"] }},\n\n \"nc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n \"nc_min\":{\"$min\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n \"nc_max\":{\"$max\": {\"$divide\": [ \"&TCC_NC_REQ_sum\", \"&denom\" ] }},\n\n \"uc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n \"uc_min\":{\"$min\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n \"uc_max\":{\"$max\": {\"$divide\": [ \"&TCC_UC_REQ_sum\", \"&denom\" ] }},\n\n \"cc_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n \"cc_min\":{\"$min\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n \"cc_max\":{\"$max\": {\"$divide\": [ \"&TCC_CC_REQ_sum\", \"&denom\" ] }},\n\n \"rw_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n \"rw_min\":{\"$min\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n \"rw_max\":{\"$max\": {\"$divide\": [ \"&TCC_RW_REQ_sum\", \"&denom\" ] }},\n\n \"writebackNorm_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n \"writebackNorm_min\":{\"$min\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n \"writebackNorm_max\":{\"$max\": {\"$divide\": [ \"&TCC_NORMAL_WRITEBACK_sum\", \"&denom\" ]}},\n\n \"writebackTC_avg\":{\"$avg\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n \"writebackTC_min\":{\"$min\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n \"writebackTC_max\":{\"$max\": {\"$divide\": [ \"&TCC_ALL_TC_OP_WB_WRITEBACK_sum\", \"&denom\" ] }},\n\n \"evictNorm_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n \"evictNorm_min\":{\"$min\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n \"evictNorm_max\":{\"$max\": { \"$divide\": [ \"&TCC_NORMAL_EVICT_sum\", \"&denom\" ] }},\n\n \"evictTC_avg\":{\"$avg\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n \"evictTC_min\":{\"$min\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n \"evictTC_max\":{\"$max\": { \"$divide\": [ \"&TCC_ALL_TC_OP_INV_EVICT_sum\", \"&denom\" ] }},\n\n \"readReq128_avg\":{\"$avg\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }},\n \"readReq128_min\":{\"$min\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }},\n \"readReq128_max\":{\"$max\": {\"$divide\": [ \"&TCP_TCR_REQ_XFER128B_COMBINING_sum\", \"&denom\" ] }}\n\n }},\n {\"$set\": {\n \"array\": [\n {\n \"metric\": \"Req\",\n \"avg\": \"&req_avg\",\n \"min\": \"&req_min\",\n \"max\": \"&req_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Streaming Req\",\n \"avg\": \"&streamingReq_avg\",\n \"min\": \"&streamingReq_min\",\n \"max\": \"&streamingReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Read Req\",\n \"avg\": \"&readReq_avg\",\n \"min\": \"&readReq_min\",\n \"max\": \"&readReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n \n {\n \"metric\": \"Write Req\",\n \"avg\": \"&writeReq_avg\",\n \"min\": \"&writeReq_min\",\n \"max\": \"&writeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Atomic Req\",\n \"avg\": \"&atomicReq_avg\",\n \"min\": \"&atomicReq_min\",\n \"max\": \"&atomicReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Probe Req\",\n \"avg\": \"&probeReq_avg\",\n \"min\": \"&probeReq_min\",\n \"max\": \"&probeReq_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Hits\",\n \"avg\": \"&hits_avg\",\n \"min\": \"&hits_min\",\n \"max\": \"&hits_max\",\n \"Unit\": {\"$concat\": [\"Hits \", $normUnit]}\n }, \n {\n \"metric\": \"Misses\",\n \"avg\": \"&misses_avg\",\n \"min\": \"&misses_min\",\n \"max\": \"&misses_max\",\n \"Unit\": {\"$concat\": [\"Misses \", $normUnit]}\n },\n {\n \"metric\": \"Cache Hit\",\n \"avg\": \"&cacheHit_avg\",\n \"min\": \"&cacheHit_min\",\n \"max\": \"&cacheHit_max\",\n \"Unit\": \"pct\"\n },\n {\n \"metric\": \"Writeback\",\n \"avg\": \"&writeback_avg\",\n \"min\": \"&writeback_min\",\n \"max\": \"&writeback_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"NC Req\",\n \"avg\": \"&nc_avg\",\n \"min\": \"&nc_min\",\n \"max\": \"&nc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"UC Req\",\n \"avg\": \"&uc_avg\",\n \"min\": \"&uc_min\",\n \"max\": \"&uc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"CC Req\",\n \"avg\": \"&cc_avg\",\n \"min\": \"&cc_min\",\n \"max\": \"&cc_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"RW Req\",\n \"avg\": \"&rw_avg\",\n \"min\": \"&rw_min\",\n \"max\": \"&rw_max\",\n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"metric\": \"Writeback (Normal)\",\n \"avg\": \"&writebackNorm_avg\",\n \"min\": \"&writebackNorm_min\",\n \"max\": \"&writebackNorm_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Writeback (TC Req)\",\n \"avg\": \"&writebackTC_avg\",\n \"min\": \"&writebackTC_min\",\n \"max\": \"&writebackTC_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Evict (Normal)\",\n \"avg\": \"&evictNorm_avg\",\n \"min\": \"&evictNorm_min\",\n \"max\": \"&evictNorm_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n },\n {\n \"metric\": \"Evict (TC Req)\",\n \"avg\": \"&evictTC_avg\",\n \"min\": \"&evictTC_min\",\n \"max\": \"&evictTC_max\",\n \"Unit\": {\"$concat\": [\"\", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n\n]);", - "type": "table" - } - ], - "title": "L2 Cache Accesses", - "transformations": [ - { - "id": "concatenate", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Unit 2": true, - "metric 2": true - }, - "indexByName": { - "Unit 1": 9, - "Unit 2": 2, - "avg 1": 3, - "avg 2": 4, - "max 1": 7, - "max 2": 8, - "metric 1": 0, - "metric 2": 1, - "min 1": 5, - "min 2": 6 - }, - "renameByName": { - "avg 1": "Avg (Current)", - "avg 2": "Avg (Baseline)", - "max 1": "Max (Current)", - "max 2": "Max (Baseline)", - "min 1": "Min (Current)", - "min 2": "Min (Baseline)" - } - } - } - ], - "type": "table" - }, - { - "Aggregate": "last", - "BarPadding": 30, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupColName": "Transaction", - "GroupCols": 1, - "GroupGap": 5, - "GroupLabelColor": "#FADE2A", - "GroupLabelFontSize": "120%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 0, - "Horizontal": true, - "LabelColName": "Metric", - "LabelColor": "#ffffff", - "LabelFontSize": "80%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 0, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#FF9830", - "ValueDecimals": 0, - "ValueFontSize": "100%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:81", - "Col": 3, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Selected": true - } - ], - "datasource": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 336 - }, - "id": 60, - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "$Workload1.pmc_perf.aggregate([\n{\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"ioStall_READ_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"ioStall_READ_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"ioStall_READ_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_RDREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"gmiStall_READ_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"gmiStall_READ_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"gmiStall_READ_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_RDREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"hbmStall_READ_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"hbmStall_READ_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"hbmStall_READ_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"ioStall_WRITE_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"ioStall_WRITE_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"ioStall_WRITE_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_WRREQ_IO_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"gmiStall_WRITE_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"gmiStall_WRITE_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"gmiStall_WRITE_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_WRREQ_GMI_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"hbmStall_WRITE_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"hbmStall_WRITE_min\": {\n \"$min\": { \"$divide\": [\"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n \"hbmStall_WRITE_max\": {\n \"$max\": { \"$divide\": [\"&TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum\", \"&denom\"] }\n },\n\n \"creditStarvation_avg\": {\n \"$avg\": { \"$divide\": [\"&TCC_TOO_MANY_EA_WRREQS_STALL_sum\", \"&denom\"] }\n },\n \"creditStarvation_min\": {\n \"$min\": { \"$divide\": [\"&TCC_TOO_MANY_EA_WRREQS_STALL_sum\", \"&denom\"] }\n },\n \"creditStarvation_max\": {\n \"$max\": { \"$divide\": [\"&TCC_TOO_MANY_EA_WRREQS_STALL_sum\", \"&denom\"] }\n } \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"Remote Socket Stall\",\n \"Transaction\": \"Read\",\n \"Target\": \"I/O\",\n \"Avg\": \"&ioStall_READ_avg\",\n \"Min\": \"&ioStall_READ_min\",\n \"Max\": \"&ioStall_READ_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Peer GCD Stall\",\n \"Transaction\": \"Read\",\n \"Target\": \"GMI\",\n \"Avg\": \"&gmiStall_READ_avg\",\n \"Min\": \"&gmiStall_READ_min\",\n \"Max\": \"&gmiStall_READ_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"HBM Stall\",\n \"Transaction\": \"Read\",\n \"Target\": \"HBM\",\n \"Avg\": \"&hbmStall_READ_avg\",\n \"Min\": \"&hbmStall_READ_min\",\n \"Max\": \"&hbmStall_READ_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Remote Socket Stall\",\n \"Transaction\": \"Write\",\n \"Target\": \"I/O\",\n \"Avg\": \"&ioStall_WRITE_avg\",\n \"Min\": \"&ioStall_WRITE_min\",\n \"Max\": \"&ioStall_WRITE_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Peer GCD Stall\",\n \"Transaction\": \"Write\",\n \"Target\": \"GMI\",\n \"Avg\": \"&gmiStall_WRITE_avg\",\n \"Min\": \"&gmiStall_WRITE_min\",\n \"Max\": \"&gmiStall_WRITE_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"HBM Stall\",\n \"Transaction\": \"Write\",\n \"Target\": \"HBM\",\n \"Avg\": \"&hbmStall_WRITE_avg\",\n \"Min\": \"&hbmStall_WRITE_min\",\n \"Max\": \"&hbmStall_WRITE_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n },\n {\n \"Metric\": \"Credit Starvation\",\n \"Transaction\": \"Write\",\n \"Target\": \"Fabric\",\n \"Avg\": \"&creditStarvation_avg\",\n \"Min\": \"&creditStarvation_min\",\n \"Max\": \"&creditStarvation_max\", \n \"Unit\": {\"$concat\": [\"Req \", $normUnit]}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "L2 - Fabric Interface Stalls (Cycles $normUnit)", - "transparent": true, - "type": "michaeldmoore-multistat-panel" - }, - { - "collapsed": false, - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 347 - }, - "id": 66, - "panels": [], - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "refId": "A" - } - ], - "title": "L2 Cache (per Channel)", - "type": "row" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 24, - "x": 0, - "y": 348 - }, - "id": 314, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "oVK0I__nk" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n {\"$group\": {\n \"_id\": \"null\",\n \"mean_hit_rate\": {\n \"$avg\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n { \"$add\": [\"&TCC_MISS[0]\", \"&TCC_HIT[0]\"] },\n { \"$add\": [\"&TCC_MISS[1]\", \"&TCC_HIT[1]\"] },\n { \"$add\": [\"&TCC_MISS[2]\", \"&TCC_HIT[2]\"] },\n { \"$add\": [\"&TCC_MISS[3]\", \"&TCC_HIT[3]\"] },\n { \"$add\": [\"&TCC_MISS[4]\", \"&TCC_HIT[4]\"] },\n { \"$add\": [\"&TCC_MISS[5]\", \"&TCC_HIT[5]\"] },\n { \"$add\": [\"&TCC_MISS[6]\", \"&TCC_HIT[6]\"] },\n { \"$add\": [\"&TCC_MISS[7]\", \"&TCC_HIT[7]\"] },\n { \"$add\": [\"&TCC_MISS[8]\", \"&TCC_HIT[8]\"] },\n { \"$add\": [\"&TCC_MISS[9]\", \"&TCC_HIT[9]\"] },\n { \"$add\": [\"&TCC_MISS[10]\", \"&TCC_HIT[10]\"] },\n { \"$add\": [\"&TCC_MISS[11]\", \"&TCC_HIT[11]\"] },\n { \"$add\": [\"&TCC_MISS[12]\", \"&TCC_HIT[12]\"] },\n { \"$add\": [\"&TCC_MISS[13]\", \"&TCC_HIT[13]\"] },\n { \"$add\": [\"&TCC_MISS[14]\", \"&TCC_HIT[14]\"] },\n { \"$add\": [\"&TCC_MISS[15]\", \"&TCC_HIT[15]\"] },\n { \"$add\": [\"&TCC_MISS[16]\", \"&TCC_HIT[16]\"] },\n { \"$add\": [\"&TCC_MISS[17]\", \"&TCC_HIT[17]\"] },\n { \"$add\": [\"&TCC_MISS[18]\", \"&TCC_HIT[18]\"] },\n { \"$add\": [\"&TCC_MISS[19]\", \"&TCC_HIT[19]\"] },\n { \"$add\": [\"&TCC_MISS[20]\", \"&TCC_HIT[20]\"] },\n { \"$add\": [\"&TCC_MISS[21]\", \"&TCC_HIT[21]\"] },\n { \"$add\": [\"&TCC_MISS[22]\", \"&TCC_HIT[22]\"] },\n { \"$add\": [\"&TCC_MISS[23]\", \"&TCC_HIT[23]\"] },\n { \"$add\": [\"&TCC_MISS[24]\", \"&TCC_HIT[24]\"] },\n { \"$add\": [\"&TCC_MISS[25]\", \"&TCC_HIT[25]\"] },\n { \"$add\": [\"&TCC_MISS[26]\", \"&TCC_HIT[26]\"] },\n { \"$add\": [\"&TCC_MISS[27]\", \"&TCC_HIT[27]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[28]\"] },\n { \"$add\": [\"&TCC_MISS[29]\", \"&TCC_HIT[29]\"] },\n { \"$add\": [\"&TCC_MISS[30]\", \"&TCC_HIT[30]\"] },\n { \"$add\": [\"&TCC_MISS[31]\", \"&TCC_HIT[31]\"] }\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n { \"$multiply\": [100, \"&TCC_HIT[0]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[1]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[2]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[3]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[4]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[5]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[6]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[7]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[8]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[9]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[10]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[11]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[12]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[13]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[14]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[15]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[16]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[17]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[18]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[19]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[20]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[21]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[22]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[23]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[24]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[25]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[26]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[27]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[28]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[29]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[30]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[31]\"] }\n ]\n },\n {\n \"$add\":[\n { \"$add\": [\"&TCC_MISS[0]\", \"&TCC_HIT[0]\"] },\n { \"$add\": [\"&TCC_MISS[1]\", \"&TCC_HIT[1]\"] },\n { \"$add\": [\"&TCC_MISS[2]\", \"&TCC_HIT[2]\"] },\n { \"$add\": [\"&TCC_MISS[3]\", \"&TCC_HIT[3]\"] },\n { \"$add\": [\"&TCC_MISS[4]\", \"&TCC_HIT[4]\"] },\n { \"$add\": [\"&TCC_MISS[5]\", \"&TCC_HIT[5]\"] },\n { \"$add\": [\"&TCC_MISS[6]\", \"&TCC_HIT[6]\"] },\n { \"$add\": [\"&TCC_MISS[7]\", \"&TCC_HIT[7]\"] },\n { \"$add\": [\"&TCC_MISS[8]\", \"&TCC_HIT[8]\"] },\n { \"$add\": [\"&TCC_MISS[9]\", \"&TCC_HIT[9]\"] },\n { \"$add\": [\"&TCC_MISS[10]\", \"&TCC_HIT[10]\"] },\n { \"$add\": [\"&TCC_MISS[11]\", \"&TCC_HIT[11]\"] },\n { \"$add\": [\"&TCC_MISS[12]\", \"&TCC_HIT[12]\"] },\n { \"$add\": [\"&TCC_MISS[13]\", \"&TCC_HIT[13]\"] },\n { \"$add\": [\"&TCC_MISS[14]\", \"&TCC_HIT[14]\"] },\n { \"$add\": [\"&TCC_MISS[15]\", \"&TCC_HIT[15]\"] },\n { \"$add\": [\"&TCC_MISS[16]\", \"&TCC_HIT[16]\"] },\n { \"$add\": [\"&TCC_MISS[17]\", \"&TCC_HIT[17]\"] },\n { \"$add\": [\"&TCC_MISS[18]\", \"&TCC_HIT[18]\"] },\n { \"$add\": [\"&TCC_MISS[19]\", \"&TCC_HIT[19]\"] },\n { \"$add\": [\"&TCC_MISS[20]\", \"&TCC_HIT[20]\"] },\n { \"$add\": [\"&TCC_MISS[21]\", \"&TCC_HIT[21]\"] },\n { \"$add\": [\"&TCC_MISS[22]\", \"&TCC_HIT[22]\"] },\n { \"$add\": [\"&TCC_MISS[23]\", \"&TCC_HIT[23]\"] },\n { \"$add\": [\"&TCC_MISS[24]\", \"&TCC_HIT[24]\"] },\n { \"$add\": [\"&TCC_MISS[25]\", \"&TCC_HIT[25]\"] },\n { \"$add\": [\"&TCC_MISS[26]\", \"&TCC_HIT[26]\"] },\n { \"$add\": [\"&TCC_MISS[27]\", \"&TCC_HIT[27]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[28]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[29]\"] },\n { \"$add\": [\"&TCC_MISS[30]\", \"&TCC_HIT[30]\"] },\n { \"$add\": [\"&TCC_MISS[31]\", \"&TCC_HIT[31]\"] }\n ]\n }\n ]},\n null\n ]\n }\n },\n \"min_hit_rate\": {\n \"$min\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n { \"$add\": [\"&TCC_MISS[0]\", \"&TCC_HIT[0]\"] },\n { \"$add\": [\"&TCC_MISS[1]\", \"&TCC_HIT[1]\"] },\n { \"$add\": [\"&TCC_MISS[2]\", \"&TCC_HIT[2]\"] },\n { \"$add\": [\"&TCC_MISS[3]\", \"&TCC_HIT[3]\"] },\n { \"$add\": [\"&TCC_MISS[4]\", \"&TCC_HIT[4]\"] },\n { \"$add\": [\"&TCC_MISS[5]\", \"&TCC_HIT[5]\"] },\n { \"$add\": [\"&TCC_MISS[6]\", \"&TCC_HIT[6]\"] },\n { \"$add\": [\"&TCC_MISS[7]\", \"&TCC_HIT[7]\"] },\n { \"$add\": [\"&TCC_MISS[8]\", \"&TCC_HIT[8]\"] },\n { \"$add\": [\"&TCC_MISS[9]\", \"&TCC_HIT[9]\"] },\n { \"$add\": [\"&TCC_MISS[10]\", \"&TCC_HIT[10]\"] },\n { \"$add\": [\"&TCC_MISS[11]\", \"&TCC_HIT[11]\"] },\n { \"$add\": [\"&TCC_MISS[12]\", \"&TCC_HIT[12]\"] },\n { \"$add\": [\"&TCC_MISS[13]\", \"&TCC_HIT[13]\"] },\n { \"$add\": [\"&TCC_MISS[14]\", \"&TCC_HIT[14]\"] },\n { \"$add\": [\"&TCC_MISS[15]\", \"&TCC_HIT[15]\"] },\n { \"$add\": [\"&TCC_MISS[16]\", \"&TCC_HIT[16]\"] },\n { \"$add\": [\"&TCC_MISS[17]\", \"&TCC_HIT[17]\"] },\n { \"$add\": [\"&TCC_MISS[18]\", \"&TCC_HIT[18]\"] },\n { \"$add\": [\"&TCC_MISS[19]\", \"&TCC_HIT[19]\"] },\n { \"$add\": [\"&TCC_MISS[20]\", \"&TCC_HIT[20]\"] },\n { \"$add\": [\"&TCC_MISS[21]\", \"&TCC_HIT[21]\"] },\n { \"$add\": [\"&TCC_MISS[22]\", \"&TCC_HIT[22]\"] },\n { \"$add\": [\"&TCC_MISS[23]\", \"&TCC_HIT[23]\"] },\n { \"$add\": [\"&TCC_MISS[24]\", \"&TCC_HIT[24]\"] },\n { \"$add\": [\"&TCC_MISS[25]\", \"&TCC_HIT[25]\"] },\n { \"$add\": [\"&TCC_MISS[26]\", \"&TCC_HIT[26]\"] },\n { \"$add\": [\"&TCC_MISS[27]\", \"&TCC_HIT[27]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[28]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[29]\"] },\n { \"$add\": [\"&TCC_MISS[30]\", \"&TCC_HIT[30]\"] },\n { \"$add\": [\"&TCC_MISS[31]\", \"&TCC_HIT[31]\"] }\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n { \"$multiply\": [100, \"&TCC_HIT[0]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[1]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[2]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[3]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[4]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[5]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[6]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[7]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[8]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[9]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[10]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[11]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[12]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[13]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[14]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[15]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[16]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[17]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[18]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[19]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[20]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[21]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[22]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[23]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[24]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[25]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[26]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[27]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[28]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[29]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[30]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[31]\"] }\n ]\n },\n {\n \"$add\":[\n { \"$add\": [\"&TCC_MISS[0]\", \"&TCC_HIT[0]\"] },\n { \"$add\": [\"&TCC_MISS[1]\", \"&TCC_HIT[1]\"] },\n { \"$add\": [\"&TCC_MISS[2]\", \"&TCC_HIT[2]\"] },\n { \"$add\": [\"&TCC_MISS[3]\", \"&TCC_HIT[3]\"] },\n { \"$add\": [\"&TCC_MISS[4]\", \"&TCC_HIT[4]\"] },\n { \"$add\": [\"&TCC_MISS[5]\", \"&TCC_HIT[5]\"] },\n { \"$add\": [\"&TCC_MISS[6]\", \"&TCC_HIT[6]\"] },\n { \"$add\": [\"&TCC_MISS[7]\", \"&TCC_HIT[7]\"] },\n { \"$add\": [\"&TCC_MISS[8]\", \"&TCC_HIT[8]\"] },\n { \"$add\": [\"&TCC_MISS[9]\", \"&TCC_HIT[9]\"] },\n { \"$add\": [\"&TCC_MISS[10]\", \"&TCC_HIT[10]\"] },\n { \"$add\": [\"&TCC_MISS[11]\", \"&TCC_HIT[11]\"] },\n { \"$add\": [\"&TCC_MISS[12]\", \"&TCC_HIT[12]\"] },\n { \"$add\": [\"&TCC_MISS[13]\", \"&TCC_HIT[13]\"] },\n { \"$add\": [\"&TCC_MISS[14]\", \"&TCC_HIT[14]\"] },\n { \"$add\": [\"&TCC_MISS[15]\", \"&TCC_HIT[15]\"] },\n { \"$add\": [\"&TCC_MISS[16]\", \"&TCC_HIT[16]\"] },\n { \"$add\": [\"&TCC_MISS[17]\", \"&TCC_HIT[17]\"] },\n { \"$add\": [\"&TCC_MISS[18]\", \"&TCC_HIT[18]\"] },\n { \"$add\": [\"&TCC_MISS[19]\", \"&TCC_HIT[19]\"] },\n { \"$add\": [\"&TCC_MISS[20]\", \"&TCC_HIT[20]\"] },\n { \"$add\": [\"&TCC_MISS[21]\", \"&TCC_HIT[21]\"] },\n { \"$add\": [\"&TCC_MISS[22]\", \"&TCC_HIT[22]\"] },\n { \"$add\": [\"&TCC_MISS[23]\", \"&TCC_HIT[23]\"] },\n { \"$add\": [\"&TCC_MISS[24]\", \"&TCC_HIT[24]\"] },\n { \"$add\": [\"&TCC_MISS[25]\", \"&TCC_HIT[25]\"] },\n { \"$add\": [\"&TCC_MISS[26]\", \"&TCC_HIT[26]\"] },\n { \"$add\": [\"&TCC_MISS[27]\", \"&TCC_HIT[27]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[28]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[29]\"] },\n { \"$add\": [\"&TCC_MISS[30]\", \"&TCC_HIT[30]\"] },\n { \"$add\": [\"&TCC_MISS[31]\", \"&TCC_HIT[31]\"] }\n ]\n }\n ]},\n null\n ]\n }\n },\n \"max_hit_rate\": {\n \"$max\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n { \"$add\": [\"&TCC_MISS[0]\", \"&TCC_HIT[0]\"] },\n { \"$add\": [\"&TCC_MISS[1]\", \"&TCC_HIT[1]\"] },\n { \"$add\": [\"&TCC_MISS[2]\", \"&TCC_HIT[2]\"] },\n { \"$add\": [\"&TCC_MISS[3]\", \"&TCC_HIT[3]\"] },\n { \"$add\": [\"&TCC_MISS[4]\", \"&TCC_HIT[4]\"] },\n { \"$add\": [\"&TCC_MISS[5]\", \"&TCC_HIT[5]\"] },\n { \"$add\": [\"&TCC_MISS[6]\", \"&TCC_HIT[6]\"] },\n { \"$add\": [\"&TCC_MISS[7]\", \"&TCC_HIT[7]\"] },\n { \"$add\": [\"&TCC_MISS[8]\", \"&TCC_HIT[8]\"] },\n { \"$add\": [\"&TCC_MISS[9]\", \"&TCC_HIT[9]\"] },\n { \"$add\": [\"&TCC_MISS[10]\", \"&TCC_HIT[10]\"] },\n { \"$add\": [\"&TCC_MISS[11]\", \"&TCC_HIT[11]\"] },\n { \"$add\": [\"&TCC_MISS[12]\", \"&TCC_HIT[12]\"] },\n { \"$add\": [\"&TCC_MISS[13]\", \"&TCC_HIT[13]\"] },\n { \"$add\": [\"&TCC_MISS[14]\", \"&TCC_HIT[14]\"] },\n { \"$add\": [\"&TCC_MISS[15]\", \"&TCC_HIT[15]\"] },\n { \"$add\": [\"&TCC_MISS[16]\", \"&TCC_HIT[16]\"] },\n { \"$add\": [\"&TCC_MISS[17]\", \"&TCC_HIT[17]\"] },\n { \"$add\": [\"&TCC_MISS[18]\", \"&TCC_HIT[18]\"] },\n { \"$add\": [\"&TCC_MISS[19]\", \"&TCC_HIT[19]\"] },\n { \"$add\": [\"&TCC_MISS[20]\", \"&TCC_HIT[20]\"] },\n { \"$add\": [\"&TCC_MISS[21]\", \"&TCC_HIT[21]\"] },\n { \"$add\": [\"&TCC_MISS[22]\", \"&TCC_HIT[22]\"] },\n { \"$add\": [\"&TCC_MISS[23]\", \"&TCC_HIT[23]\"] },\n { \"$add\": [\"&TCC_MISS[24]\", \"&TCC_HIT[24]\"] },\n { \"$add\": [\"&TCC_MISS[25]\", \"&TCC_HIT[25]\"] },\n { \"$add\": [\"&TCC_MISS[26]\", \"&TCC_HIT[26]\"] },\n { \"$add\": [\"&TCC_MISS[27]\", \"&TCC_HIT[27]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[28]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[29]\"] },\n { \"$add\": [\"&TCC_MISS[30]\", \"&TCC_HIT[30]\"] },\n { \"$add\": [\"&TCC_MISS[31]\", \"&TCC_HIT[31]\"] }\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n { \"$multiply\": [100, \"&TCC_HIT[0]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[1]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[2]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[3]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[4]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[5]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[6]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[7]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[8]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[9]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[10]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[11]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[12]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[13]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[14]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[15]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[16]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[17]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[18]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[19]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[20]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[21]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[22]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[23]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[24]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[25]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[26]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[27]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[28]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[29]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[30]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[31]\"] }\n ]\n },\n {\n \"$add\":[\n { \"$add\": [\"&TCC_MISS[0]\", \"&TCC_HIT[0]\"] },\n { \"$add\": [\"&TCC_MISS[1]\", \"&TCC_HIT[1]\"] },\n { \"$add\": [\"&TCC_MISS[2]\", \"&TCC_HIT[2]\"] },\n { \"$add\": [\"&TCC_MISS[3]\", \"&TCC_HIT[3]\"] },\n { \"$add\": [\"&TCC_MISS[4]\", \"&TCC_HIT[4]\"] },\n { \"$add\": [\"&TCC_MISS[5]\", \"&TCC_HIT[5]\"] },\n { \"$add\": [\"&TCC_MISS[6]\", \"&TCC_HIT[6]\"] },\n { \"$add\": [\"&TCC_MISS[7]\", \"&TCC_HIT[7]\"] },\n { \"$add\": [\"&TCC_MISS[8]\", \"&TCC_HIT[8]\"] },\n { \"$add\": [\"&TCC_MISS[9]\", \"&TCC_HIT[9]\"] },\n { \"$add\": [\"&TCC_MISS[10]\", \"&TCC_HIT[10]\"] },\n { \"$add\": [\"&TCC_MISS[11]\", \"&TCC_HIT[11]\"] },\n { \"$add\": [\"&TCC_MISS[12]\", \"&TCC_HIT[12]\"] },\n { \"$add\": [\"&TCC_MISS[13]\", \"&TCC_HIT[13]\"] },\n { \"$add\": [\"&TCC_MISS[14]\", \"&TCC_HIT[14]\"] },\n { \"$add\": [\"&TCC_MISS[15]\", \"&TCC_HIT[15]\"] },\n { \"$add\": [\"&TCC_MISS[16]\", \"&TCC_HIT[16]\"] },\n { \"$add\": [\"&TCC_MISS[17]\", \"&TCC_HIT[17]\"] },\n { \"$add\": [\"&TCC_MISS[18]\", \"&TCC_HIT[18]\"] },\n { \"$add\": [\"&TCC_MISS[19]\", \"&TCC_HIT[19]\"] },\n { \"$add\": [\"&TCC_MISS[20]\", \"&TCC_HIT[20]\"] },\n { \"$add\": [\"&TCC_MISS[21]\", \"&TCC_HIT[21]\"] },\n { \"$add\": [\"&TCC_MISS[22]\", \"&TCC_HIT[22]\"] },\n { \"$add\": [\"&TCC_MISS[23]\", \"&TCC_HIT[23]\"] },\n { \"$add\": [\"&TCC_MISS[24]\", \"&TCC_HIT[24]\"] },\n { \"$add\": [\"&TCC_MISS[25]\", \"&TCC_HIT[25]\"] },\n { \"$add\": [\"&TCC_MISS[26]\", \"&TCC_HIT[26]\"] },\n { \"$add\": [\"&TCC_MISS[27]\", \"&TCC_HIT[27]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[28]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[29]\"] },\n { \"$add\": [\"&TCC_MISS[30]\", \"&TCC_HIT[30]\"] },\n { \"$add\": [\"&TCC_MISS[31]\", \"&TCC_HIT[31]\"] }\n ]\n }\n ]},\n null\n ]\n }\n },\n \"stdDev_hit_rate\": {\n \"$stdDevPop\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n { \"$add\": [\"&TCC_MISS[0]\", \"&TCC_HIT[0]\"] },\n { \"$add\": [\"&TCC_MISS[1]\", \"&TCC_HIT[1]\"] },\n { \"$add\": [\"&TCC_MISS[2]\", \"&TCC_HIT[2]\"] },\n { \"$add\": [\"&TCC_MISS[3]\", \"&TCC_HIT[3]\"] },\n { \"$add\": [\"&TCC_MISS[4]\", \"&TCC_HIT[4]\"] },\n { \"$add\": [\"&TCC_MISS[5]\", \"&TCC_HIT[5]\"] },\n { \"$add\": [\"&TCC_MISS[6]\", \"&TCC_HIT[6]\"] },\n { \"$add\": [\"&TCC_MISS[7]\", \"&TCC_HIT[7]\"] },\n { \"$add\": [\"&TCC_MISS[8]\", \"&TCC_HIT[8]\"] },\n { \"$add\": [\"&TCC_MISS[9]\", \"&TCC_HIT[9]\"] },\n { \"$add\": [\"&TCC_MISS[10]\", \"&TCC_HIT[10]\"] },\n { \"$add\": [\"&TCC_MISS[11]\", \"&TCC_HIT[11]\"] },\n { \"$add\": [\"&TCC_MISS[12]\", \"&TCC_HIT[12]\"] },\n { \"$add\": [\"&TCC_MISS[13]\", \"&TCC_HIT[13]\"] },\n { \"$add\": [\"&TCC_MISS[14]\", \"&TCC_HIT[14]\"] },\n { \"$add\": [\"&TCC_MISS[15]\", \"&TCC_HIT[15]\"] },\n { \"$add\": [\"&TCC_MISS[16]\", \"&TCC_HIT[16]\"] },\n { \"$add\": [\"&TCC_MISS[17]\", \"&TCC_HIT[17]\"] },\n { \"$add\": [\"&TCC_MISS[18]\", \"&TCC_HIT[18]\"] },\n { \"$add\": [\"&TCC_MISS[19]\", \"&TCC_HIT[19]\"] },\n { \"$add\": [\"&TCC_MISS[20]\", \"&TCC_HIT[20]\"] },\n { \"$add\": [\"&TCC_MISS[21]\", \"&TCC_HIT[21]\"] },\n { \"$add\": [\"&TCC_MISS[22]\", \"&TCC_HIT[22]\"] },\n { \"$add\": [\"&TCC_MISS[23]\", \"&TCC_HIT[23]\"] },\n { \"$add\": [\"&TCC_MISS[24]\", \"&TCC_HIT[24]\"] },\n { \"$add\": [\"&TCC_MISS[25]\", \"&TCC_HIT[25]\"] },\n { \"$add\": [\"&TCC_MISS[26]\", \"&TCC_HIT[26]\"] },\n { \"$add\": [\"&TCC_MISS[27]\", \"&TCC_HIT[27]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[28]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[29]\"] },\n { \"$add\": [\"&TCC_MISS[30]\", \"&TCC_HIT[30]\"] },\n { \"$add\": [\"&TCC_MISS[31]\", \"&TCC_HIT[31]\"] }\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n { \"$multiply\": [100, \"&TCC_HIT[0]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[1]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[2]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[3]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[4]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[5]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[6]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[7]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[8]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[9]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[10]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[11]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[12]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[13]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[14]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[15]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[16]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[17]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[18]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[19]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[20]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[21]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[22]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[23]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[24]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[25]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[26]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[27]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[28]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[29]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[30]\"] },\n { \"$multiply\": [100, \"&TCC_HIT[31]\"] }\n ]\n },\n {\n \"$add\":[\n { \"$add\": [\"&TCC_MISS[0]\", \"&TCC_HIT[0]\"] },\n { \"$add\": [\"&TCC_MISS[1]\", \"&TCC_HIT[1]\"] },\n { \"$add\": [\"&TCC_MISS[2]\", \"&TCC_HIT[2]\"] },\n { \"$add\": [\"&TCC_MISS[3]\", \"&TCC_HIT[3]\"] },\n { \"$add\": [\"&TCC_MISS[4]\", \"&TCC_HIT[4]\"] },\n { \"$add\": [\"&TCC_MISS[5]\", \"&TCC_HIT[5]\"] },\n { \"$add\": [\"&TCC_MISS[6]\", \"&TCC_HIT[6]\"] },\n { \"$add\": [\"&TCC_MISS[7]\", \"&TCC_HIT[7]\"] },\n { \"$add\": [\"&TCC_MISS[8]\", \"&TCC_HIT[8]\"] },\n { \"$add\": [\"&TCC_MISS[9]\", \"&TCC_HIT[9]\"] },\n { \"$add\": [\"&TCC_MISS[10]\", \"&TCC_HIT[10]\"] },\n { \"$add\": [\"&TCC_MISS[11]\", \"&TCC_HIT[11]\"] },\n { \"$add\": [\"&TCC_MISS[12]\", \"&TCC_HIT[12]\"] },\n { \"$add\": [\"&TCC_MISS[13]\", \"&TCC_HIT[13]\"] },\n { \"$add\": [\"&TCC_MISS[14]\", \"&TCC_HIT[14]\"] },\n { \"$add\": [\"&TCC_MISS[15]\", \"&TCC_HIT[15]\"] },\n { \"$add\": [\"&TCC_MISS[16]\", \"&TCC_HIT[16]\"] },\n { \"$add\": [\"&TCC_MISS[17]\", \"&TCC_HIT[17]\"] },\n { \"$add\": [\"&TCC_MISS[18]\", \"&TCC_HIT[18]\"] },\n { \"$add\": [\"&TCC_MISS[19]\", \"&TCC_HIT[19]\"] },\n { \"$add\": [\"&TCC_MISS[20]\", \"&TCC_HIT[20]\"] },\n { \"$add\": [\"&TCC_MISS[21]\", \"&TCC_HIT[21]\"] },\n { \"$add\": [\"&TCC_MISS[22]\", \"&TCC_HIT[22]\"] },\n { \"$add\": [\"&TCC_MISS[23]\", \"&TCC_HIT[23]\"] },\n { \"$add\": [\"&TCC_MISS[24]\", \"&TCC_HIT[24]\"] },\n { \"$add\": [\"&TCC_MISS[25]\", \"&TCC_HIT[25]\"] },\n { \"$add\": [\"&TCC_MISS[26]\", \"&TCC_HIT[26]\"] },\n { \"$add\": [\"&TCC_MISS[27]\", \"&TCC_HIT[27]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[28]\"] },\n { \"$add\": [\"&TCC_MISS[28]\", \"&TCC_HIT[29]\"] },\n { \"$add\": [\"&TCC_MISS[30]\", \"&TCC_HIT[30]\"] },\n { \"$add\": [\"&TCC_MISS[31]\", \"&TCC_HIT[31]\"] }\n ]\n }\n ]},\n null\n ]\n }\n },\n \"mean_req\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_REQ[0]\"},\n {\"$toInt\": \"&TCC_REQ[1]\"},\n {\"$toInt\": \"&TCC_REQ[2]\"},\n {\"$toInt\": \"&TCC_REQ[3]\"},\n {\"$toInt\": \"&TCC_REQ[4]\"},\n {\"$toInt\": \"&TCC_REQ[5]\"},\n {\"$toInt\": \"&TCC_REQ[6]\"},\n {\"$toInt\": \"&TCC_REQ[7]\"},\n {\"$toInt\": \"&TCC_REQ[8]\"},\n {\"$toInt\": \"&TCC_REQ[9]\"},\n {\"$toInt\": \"&TCC_REQ[10]\"},\n {\"$toInt\": \"&TCC_REQ[11]\"},\n {\"$toInt\": \"&TCC_REQ[12]\"},\n {\"$toInt\": \"&TCC_REQ[13]\"},\n {\"$toInt\": \"&TCC_REQ[14]\"},\n {\"$toInt\": \"&TCC_REQ[15]\"},\n {\"$toInt\": \"&TCC_REQ[16]\"},\n {\"$toInt\": \"&TCC_REQ[17]\"},\n {\"$toInt\": \"&TCC_REQ[18]\"},\n {\"$toInt\": \"&TCC_REQ[19]\"},\n {\"$toInt\": \"&TCC_REQ[20]\"},\n {\"$toInt\": \"&TCC_REQ[21]\"},\n {\"$toInt\": \"&TCC_REQ[22]\"},\n {\"$toInt\": \"&TCC_REQ[23]\"},\n {\"$toInt\": \"&TCC_REQ[24]\"},\n {\"$toInt\": \"&TCC_REQ[25]\"},\n {\"$toInt\": \"&TCC_REQ[26]\"},\n {\"$toInt\": \"&TCC_REQ[27]\"},\n {\"$toInt\": \"&TCC_REQ[28]\"},\n {\"$toInt\": \"&TCC_REQ[29]\"},\n {\"$toInt\": \"&TCC_REQ[30]\"},\n {\"$toInt\": \"&TCC_REQ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_req\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_REQ[0]\"},\n {\"$toInt\": \"&TCC_REQ[1]\"},\n {\"$toInt\": \"&TCC_REQ[2]\"},\n {\"$toInt\": \"&TCC_REQ[3]\"},\n {\"$toInt\": \"&TCC_REQ[4]\"},\n {\"$toInt\": \"&TCC_REQ[5]\"},\n {\"$toInt\": \"&TCC_REQ[6]\"},\n {\"$toInt\": \"&TCC_REQ[7]\"},\n {\"$toInt\": \"&TCC_REQ[8]\"},\n {\"$toInt\": \"&TCC_REQ[9]\"},\n {\"$toInt\": \"&TCC_REQ[10]\"},\n {\"$toInt\": \"&TCC_REQ[11]\"},\n {\"$toInt\": \"&TCC_REQ[12]\"},\n {\"$toInt\": \"&TCC_REQ[13]\"},\n {\"$toInt\": \"&TCC_REQ[14]\"},\n {\"$toInt\": \"&TCC_REQ[15]\"},\n {\"$toInt\": \"&TCC_REQ[16]\"},\n {\"$toInt\": \"&TCC_REQ[17]\"},\n {\"$toInt\": \"&TCC_REQ[18]\"},\n {\"$toInt\": \"&TCC_REQ[19]\"},\n {\"$toInt\": \"&TCC_REQ[20]\"},\n {\"$toInt\": \"&TCC_REQ[21]\"},\n {\"$toInt\": \"&TCC_REQ[22]\"},\n {\"$toInt\": \"&TCC_REQ[23]\"},\n {\"$toInt\": \"&TCC_REQ[24]\"},\n {\"$toInt\": \"&TCC_REQ[25]\"},\n {\"$toInt\": \"&TCC_REQ[26]\"},\n {\"$toInt\": \"&TCC_REQ[27]\"},\n {\"$toInt\": \"&TCC_REQ[28]\"},\n {\"$toInt\": \"&TCC_REQ[29]\"},\n {\"$toInt\": \"&TCC_REQ[30]\"},\n {\"$toInt\": \"&TCC_REQ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_req\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_REQ[0]\"},\n {\"$toInt\": \"&TCC_REQ[1]\"},\n {\"$toInt\": \"&TCC_REQ[2]\"},\n {\"$toInt\": \"&TCC_REQ[3]\"},\n {\"$toInt\": \"&TCC_REQ[4]\"},\n {\"$toInt\": \"&TCC_REQ[5]\"},\n {\"$toInt\": \"&TCC_REQ[6]\"},\n {\"$toInt\": \"&TCC_REQ[7]\"},\n {\"$toInt\": \"&TCC_REQ[8]\"},\n {\"$toInt\": \"&TCC_REQ[9]\"},\n {\"$toInt\": \"&TCC_REQ[10]\"},\n {\"$toInt\": \"&TCC_REQ[11]\"},\n {\"$toInt\": \"&TCC_REQ[12]\"},\n {\"$toInt\": \"&TCC_REQ[13]\"},\n {\"$toInt\": \"&TCC_REQ[14]\"},\n {\"$toInt\": \"&TCC_REQ[15]\"},\n {\"$toInt\": \"&TCC_REQ[16]\"},\n {\"$toInt\": \"&TCC_REQ[17]\"},\n {\"$toInt\": \"&TCC_REQ[18]\"},\n {\"$toInt\": \"&TCC_REQ[19]\"},\n {\"$toInt\": \"&TCC_REQ[20]\"},\n {\"$toInt\": \"&TCC_REQ[21]\"},\n {\"$toInt\": \"&TCC_REQ[22]\"},\n {\"$toInt\": \"&TCC_REQ[23]\"},\n {\"$toInt\": \"&TCC_REQ[24]\"},\n {\"$toInt\": \"&TCC_REQ[25]\"},\n {\"$toInt\": \"&TCC_REQ[26]\"},\n {\"$toInt\": \"&TCC_REQ[27]\"},\n {\"$toInt\": \"&TCC_REQ[28]\"},\n {\"$toInt\": \"&TCC_REQ[29]\"},\n {\"$toInt\": \"&TCC_REQ[30]\"},\n {\"$toInt\": \"&TCC_REQ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_req\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_REQ[0]\"},\n {\"$toInt\": \"&TCC_REQ[1]\"},\n {\"$toInt\": \"&TCC_REQ[2]\"},\n {\"$toInt\": \"&TCC_REQ[3]\"},\n {\"$toInt\": \"&TCC_REQ[4]\"},\n {\"$toInt\": \"&TCC_REQ[5]\"},\n {\"$toInt\": \"&TCC_REQ[6]\"},\n {\"$toInt\": \"&TCC_REQ[7]\"},\n {\"$toInt\": \"&TCC_REQ[8]\"},\n {\"$toInt\": \"&TCC_REQ[9]\"},\n {\"$toInt\": \"&TCC_REQ[10]\"},\n {\"$toInt\": \"&TCC_REQ[11]\"},\n {\"$toInt\": \"&TCC_REQ[12]\"},\n {\"$toInt\": \"&TCC_REQ[13]\"},\n {\"$toInt\": \"&TCC_REQ[14]\"},\n {\"$toInt\": \"&TCC_REQ[15]\"},\n {\"$toInt\": \"&TCC_REQ[16]\"},\n {\"$toInt\": \"&TCC_REQ[17]\"},\n {\"$toInt\": \"&TCC_REQ[18]\"},\n {\"$toInt\": \"&TCC_REQ[19]\"},\n {\"$toInt\": \"&TCC_REQ[20]\"},\n {\"$toInt\": \"&TCC_REQ[21]\"},\n {\"$toInt\": \"&TCC_REQ[22]\"},\n {\"$toInt\": \"&TCC_REQ[23]\"},\n {\"$toInt\": \"&TCC_REQ[24]\"},\n {\"$toInt\": \"&TCC_REQ[25]\"},\n {\"$toInt\": \"&TCC_REQ[26]\"},\n {\"$toInt\": \"&TCC_REQ[27]\"},\n {\"$toInt\": \"&TCC_REQ[28]\"},\n {\"$toInt\": \"&TCC_REQ[29]\"},\n {\"$toInt\": \"&TCC_REQ[30]\"},\n {\"$toInt\": \"&TCC_REQ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_read_req\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_READ[0]\"},\n {\"$toInt\": \"&TCC_READ[1]\"},\n {\"$toInt\": \"&TCC_READ[2]\"},\n {\"$toInt\": \"&TCC_READ[3]\"},\n {\"$toInt\": \"&TCC_READ[4]\"},\n {\"$toInt\": \"&TCC_READ[5]\"},\n {\"$toInt\": \"&TCC_READ[6]\"},\n {\"$toInt\": \"&TCC_READ[7]\"},\n {\"$toInt\": \"&TCC_READ[8]\"},\n {\"$toInt\": \"&TCC_READ[9]\"},\n {\"$toInt\": \"&TCC_READ[10]\"},\n {\"$toInt\": \"&TCC_READ[11]\"},\n {\"$toInt\": \"&TCC_READ[12]\"},\n {\"$toInt\": \"&TCC_READ[13]\"},\n {\"$toInt\": \"&TCC_READ[14]\"},\n {\"$toInt\": \"&TCC_READ[15]\"},\n {\"$toInt\": \"&TCC_READ[16]\"},\n {\"$toInt\": \"&TCC_READ[17]\"},\n {\"$toInt\": \"&TCC_READ[18]\"},\n {\"$toInt\": \"&TCC_READ[19]\"},\n {\"$toInt\": \"&TCC_READ[20]\"},\n {\"$toInt\": \"&TCC_READ[21]\"},\n {\"$toInt\": \"&TCC_READ[22]\"},\n {\"$toInt\": \"&TCC_READ[23]\"},\n {\"$toInt\": \"&TCC_READ[24]\"},\n {\"$toInt\": \"&TCC_READ[25]\"},\n {\"$toInt\": \"&TCC_READ[26]\"},\n {\"$toInt\": \"&TCC_READ[27]\"},\n {\"$toInt\": \"&TCC_READ[28]\"},\n {\"$toInt\": \"&TCC_READ[29]\"},\n {\"$toInt\": \"&TCC_READ[30]\"},\n {\"$toInt\": \"&TCC_READ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_read_req\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_READ[0]\"},\n {\"$toInt\": \"&TCC_READ[1]\"},\n {\"$toInt\": \"&TCC_READ[2]\"},\n {\"$toInt\": \"&TCC_READ[3]\"},\n {\"$toInt\": \"&TCC_READ[4]\"},\n {\"$toInt\": \"&TCC_READ[5]\"},\n {\"$toInt\": \"&TCC_READ[6]\"},\n {\"$toInt\": \"&TCC_READ[7]\"},\n {\"$toInt\": \"&TCC_READ[8]\"},\n {\"$toInt\": \"&TCC_READ[9]\"},\n {\"$toInt\": \"&TCC_READ[10]\"},\n {\"$toInt\": \"&TCC_READ[11]\"},\n {\"$toInt\": \"&TCC_READ[12]\"},\n {\"$toInt\": \"&TCC_READ[13]\"},\n {\"$toInt\": \"&TCC_READ[14]\"},\n {\"$toInt\": \"&TCC_READ[15]\"},\n {\"$toInt\": \"&TCC_READ[16]\"},\n {\"$toInt\": \"&TCC_READ[17]\"},\n {\"$toInt\": \"&TCC_READ[18]\"},\n {\"$toInt\": \"&TCC_READ[19]\"},\n {\"$toInt\": \"&TCC_READ[20]\"},\n {\"$toInt\": \"&TCC_READ[21]\"},\n {\"$toInt\": \"&TCC_READ[22]\"},\n {\"$toInt\": \"&TCC_READ[23]\"},\n {\"$toInt\": \"&TCC_READ[24]\"},\n {\"$toInt\": \"&TCC_READ[25]\"},\n {\"$toInt\": \"&TCC_READ[26]\"},\n {\"$toInt\": \"&TCC_READ[27]\"},\n {\"$toInt\": \"&TCC_READ[28]\"},\n {\"$toInt\": \"&TCC_READ[29]\"},\n {\"$toInt\": \"&TCC_READ[30]\"},\n {\"$toInt\": \"&TCC_READ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_read_req\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_READ[0]\"},\n {\"$toInt\": \"&TCC_READ[1]\"},\n {\"$toInt\": \"&TCC_READ[2]\"},\n {\"$toInt\": \"&TCC_READ[3]\"},\n {\"$toInt\": \"&TCC_READ[4]\"},\n {\"$toInt\": \"&TCC_READ[5]\"},\n {\"$toInt\": \"&TCC_READ[6]\"},\n {\"$toInt\": \"&TCC_READ[7]\"},\n {\"$toInt\": \"&TCC_READ[8]\"},\n {\"$toInt\": \"&TCC_READ[9]\"},\n {\"$toInt\": \"&TCC_READ[10]\"},\n {\"$toInt\": \"&TCC_READ[11]\"},\n {\"$toInt\": \"&TCC_READ[12]\"},\n {\"$toInt\": \"&TCC_READ[13]\"},\n {\"$toInt\": \"&TCC_READ[14]\"},\n {\"$toInt\": \"&TCC_READ[15]\"},\n {\"$toInt\": \"&TCC_READ[16]\"},\n {\"$toInt\": \"&TCC_READ[17]\"},\n {\"$toInt\": \"&TCC_READ[18]\"},\n {\"$toInt\": \"&TCC_READ[19]\"},\n {\"$toInt\": \"&TCC_READ[20]\"},\n {\"$toInt\": \"&TCC_READ[21]\"},\n {\"$toInt\": \"&TCC_READ[22]\"},\n {\"$toInt\": \"&TCC_READ[23]\"},\n {\"$toInt\": \"&TCC_READ[24]\"},\n {\"$toInt\": \"&TCC_READ[25]\"},\n {\"$toInt\": \"&TCC_READ[26]\"},\n {\"$toInt\": \"&TCC_READ[27]\"},\n {\"$toInt\": \"&TCC_READ[28]\"},\n {\"$toInt\": \"&TCC_READ[29]\"},\n {\"$toInt\": \"&TCC_READ[30]\"},\n {\"$toInt\": \"&TCC_READ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_read_req\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_READ[0]\"},\n {\"$toInt\": \"&TCC_READ[1]\"},\n {\"$toInt\": \"&TCC_READ[2]\"},\n {\"$toInt\": \"&TCC_READ[3]\"},\n {\"$toInt\": \"&TCC_READ[4]\"},\n {\"$toInt\": \"&TCC_READ[5]\"},\n {\"$toInt\": \"&TCC_READ[6]\"},\n {\"$toInt\": \"&TCC_READ[7]\"},\n {\"$toInt\": \"&TCC_READ[8]\"},\n {\"$toInt\": \"&TCC_READ[9]\"},\n {\"$toInt\": \"&TCC_READ[10]\"},\n {\"$toInt\": \"&TCC_READ[11]\"},\n {\"$toInt\": \"&TCC_READ[12]\"},\n {\"$toInt\": \"&TCC_READ[13]\"},\n {\"$toInt\": \"&TCC_READ[14]\"},\n {\"$toInt\": \"&TCC_READ[15]\"},\n {\"$toInt\": \"&TCC_READ[16]\"},\n {\"$toInt\": \"&TCC_READ[17]\"},\n {\"$toInt\": \"&TCC_READ[18]\"},\n {\"$toInt\": \"&TCC_READ[19]\"},\n {\"$toInt\": \"&TCC_READ[20]\"},\n {\"$toInt\": \"&TCC_READ[21]\"},\n {\"$toInt\": \"&TCC_READ[22]\"},\n {\"$toInt\": \"&TCC_READ[23]\"},\n {\"$toInt\": \"&TCC_READ[24]\"},\n {\"$toInt\": \"&TCC_READ[25]\"},\n {\"$toInt\": \"&TCC_READ[26]\"},\n {\"$toInt\": \"&TCC_READ[27]\"},\n {\"$toInt\": \"&TCC_READ[28]\"},\n {\"$toInt\": \"&TCC_READ[29]\"},\n {\"$toInt\": \"&TCC_READ[30]\"},\n {\"$toInt\": \"&TCC_READ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_write_req\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_WRITE[0]\"},\n {\"$toInt\": \"&TCC_WRITE[1]\"},\n {\"$toInt\": \"&TCC_WRITE[2]\"},\n {\"$toInt\": \"&TCC_WRITE[3]\"},\n {\"$toInt\": \"&TCC_WRITE[4]\"},\n {\"$toInt\": \"&TCC_WRITE[5]\"},\n {\"$toInt\": \"&TCC_WRITE[6]\"},\n {\"$toInt\": \"&TCC_WRITE[7]\"},\n {\"$toInt\": \"&TCC_WRITE[8]\"},\n {\"$toInt\": \"&TCC_WRITE[9]\"},\n {\"$toInt\": \"&TCC_WRITE[10]\"},\n {\"$toInt\": \"&TCC_WRITE[11]\"},\n {\"$toInt\": \"&TCC_WRITE[12]\"},\n {\"$toInt\": \"&TCC_WRITE[13]\"},\n {\"$toInt\": \"&TCC_WRITE[14]\"},\n {\"$toInt\": \"&TCC_WRITE[15]\"},\n {\"$toInt\": \"&TCC_WRITE[16]\"},\n {\"$toInt\": \"&TCC_WRITE[17]\"},\n {\"$toInt\": \"&TCC_WRITE[18]\"},\n {\"$toInt\": \"&TCC_WRITE[19]\"},\n {\"$toInt\": \"&TCC_WRITE[20]\"},\n {\"$toInt\": \"&TCC_WRITE[21]\"},\n {\"$toInt\": \"&TCC_WRITE[22]\"},\n {\"$toInt\": \"&TCC_WRITE[23]\"},\n {\"$toInt\": \"&TCC_WRITE[24]\"},\n {\"$toInt\": \"&TCC_WRITE[25]\"},\n {\"$toInt\": \"&TCC_WRITE[26]\"},\n {\"$toInt\": \"&TCC_WRITE[27]\"},\n {\"$toInt\": \"&TCC_WRITE[28]\"},\n {\"$toInt\": \"&TCC_WRITE[29]\"},\n {\"$toInt\": \"&TCC_WRITE[30]\"},\n {\"$toInt\": \"&TCC_WRITE[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_write_req\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_WRITE[0]\"},\n {\"$toInt\": \"&TCC_WRITE[1]\"},\n {\"$toInt\": \"&TCC_WRITE[2]\"},\n {\"$toInt\": \"&TCC_WRITE[3]\"},\n {\"$toInt\": \"&TCC_WRITE[4]\"},\n {\"$toInt\": \"&TCC_WRITE[5]\"},\n {\"$toInt\": \"&TCC_WRITE[6]\"},\n {\"$toInt\": \"&TCC_WRITE[7]\"},\n {\"$toInt\": \"&TCC_WRITE[8]\"},\n {\"$toInt\": \"&TCC_WRITE[9]\"},\n {\"$toInt\": \"&TCC_WRITE[10]\"},\n {\"$toInt\": \"&TCC_WRITE[11]\"},\n {\"$toInt\": \"&TCC_WRITE[12]\"},\n {\"$toInt\": \"&TCC_WRITE[13]\"},\n {\"$toInt\": \"&TCC_WRITE[14]\"},\n {\"$toInt\": \"&TCC_WRITE[15]\"},\n {\"$toInt\": \"&TCC_WRITE[16]\"},\n {\"$toInt\": \"&TCC_WRITE[17]\"},\n {\"$toInt\": \"&TCC_WRITE[18]\"},\n {\"$toInt\": \"&TCC_WRITE[19]\"},\n {\"$toInt\": \"&TCC_WRITE[20]\"},\n {\"$toInt\": \"&TCC_WRITE[21]\"},\n {\"$toInt\": \"&TCC_WRITE[22]\"},\n {\"$toInt\": \"&TCC_WRITE[23]\"},\n {\"$toInt\": \"&TCC_WRITE[24]\"},\n {\"$toInt\": \"&TCC_WRITE[25]\"},\n {\"$toInt\": \"&TCC_WRITE[26]\"},\n {\"$toInt\": \"&TCC_WRITE[27]\"},\n {\"$toInt\": \"&TCC_WRITE[28]\"},\n {\"$toInt\": \"&TCC_WRITE[29]\"},\n {\"$toInt\": \"&TCC_WRITE[30]\"},\n {\"$toInt\": \"&TCC_WRITE[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_write_req\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_WRITE[0]\"},\n {\"$toInt\": \"&TCC_WRITE[1]\"},\n {\"$toInt\": \"&TCC_WRITE[2]\"},\n {\"$toInt\": \"&TCC_WRITE[3]\"},\n {\"$toInt\": \"&TCC_WRITE[4]\"},\n {\"$toInt\": \"&TCC_WRITE[5]\"},\n {\"$toInt\": \"&TCC_WRITE[6]\"},\n {\"$toInt\": \"&TCC_WRITE[7]\"},\n {\"$toInt\": \"&TCC_WRITE[8]\"},\n {\"$toInt\": \"&TCC_WRITE[9]\"},\n {\"$toInt\": \"&TCC_WRITE[10]\"},\n {\"$toInt\": \"&TCC_WRITE[11]\"},\n {\"$toInt\": \"&TCC_WRITE[12]\"},\n {\"$toInt\": \"&TCC_WRITE[13]\"},\n {\"$toInt\": \"&TCC_WRITE[14]\"},\n {\"$toInt\": \"&TCC_WRITE[15]\"},\n {\"$toInt\": \"&TCC_WRITE[16]\"},\n {\"$toInt\": \"&TCC_WRITE[17]\"},\n {\"$toInt\": \"&TCC_WRITE[18]\"},\n {\"$toInt\": \"&TCC_WRITE[19]\"},\n {\"$toInt\": \"&TCC_WRITE[20]\"},\n {\"$toInt\": \"&TCC_WRITE[21]\"},\n {\"$toInt\": \"&TCC_WRITE[22]\"},\n {\"$toInt\": \"&TCC_WRITE[23]\"},\n {\"$toInt\": \"&TCC_WRITE[24]\"},\n {\"$toInt\": \"&TCC_WRITE[25]\"},\n {\"$toInt\": \"&TCC_WRITE[26]\"},\n {\"$toInt\": \"&TCC_WRITE[27]\"},\n {\"$toInt\": \"&TCC_WRITE[28]\"},\n {\"$toInt\": \"&TCC_WRITE[29]\"},\n {\"$toInt\": \"&TCC_WRITE[30]\"},\n {\"$toInt\": \"&TCC_WRITE[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_write_req\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_WRITE[0]\"},\n {\"$toInt\": \"&TCC_WRITE[1]\"},\n {\"$toInt\": \"&TCC_WRITE[2]\"},\n {\"$toInt\": \"&TCC_WRITE[3]\"},\n {\"$toInt\": \"&TCC_WRITE[4]\"},\n {\"$toInt\": \"&TCC_WRITE[5]\"},\n {\"$toInt\": \"&TCC_WRITE[6]\"},\n {\"$toInt\": \"&TCC_WRITE[7]\"},\n {\"$toInt\": \"&TCC_WRITE[8]\"},\n {\"$toInt\": \"&TCC_WRITE[9]\"},\n {\"$toInt\": \"&TCC_WRITE[10]\"},\n {\"$toInt\": \"&TCC_WRITE[11]\"},\n {\"$toInt\": \"&TCC_WRITE[12]\"},\n {\"$toInt\": \"&TCC_WRITE[13]\"},\n {\"$toInt\": \"&TCC_WRITE[14]\"},\n {\"$toInt\": \"&TCC_WRITE[15]\"},\n {\"$toInt\": \"&TCC_WRITE[16]\"},\n {\"$toInt\": \"&TCC_WRITE[17]\"},\n {\"$toInt\": \"&TCC_WRITE[18]\"},\n {\"$toInt\": \"&TCC_WRITE[19]\"},\n {\"$toInt\": \"&TCC_WRITE[20]\"},\n {\"$toInt\": \"&TCC_WRITE[21]\"},\n {\"$toInt\": \"&TCC_WRITE[22]\"},\n {\"$toInt\": \"&TCC_WRITE[23]\"},\n {\"$toInt\": \"&TCC_WRITE[24]\"},\n {\"$toInt\": \"&TCC_WRITE[25]\"},\n {\"$toInt\": \"&TCC_WRITE[26]\"},\n {\"$toInt\": \"&TCC_WRITE[27]\"},\n {\"$toInt\": \"&TCC_WRITE[28]\"},\n {\"$toInt\": \"&TCC_WRITE[29]\"},\n {\"$toInt\": \"&TCC_WRITE[30]\"},\n {\"$toInt\": \"&TCC_WRITE[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_atomic_req\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_ATOMIC[0]\"},\n {\"$toInt\": \"&TCC_ATOMIC[1]\"},\n {\"$toInt\": \"&TCC_ATOMIC[2]\"},\n {\"$toInt\": \"&TCC_ATOMIC[3]\"},\n {\"$toInt\": \"&TCC_ATOMIC[4]\"},\n {\"$toInt\": \"&TCC_ATOMIC[5]\"},\n {\"$toInt\": \"&TCC_ATOMIC[6]\"},\n {\"$toInt\": \"&TCC_ATOMIC[7]\"},\n {\"$toInt\": \"&TCC_ATOMIC[8]\"},\n {\"$toInt\": \"&TCC_ATOMIC[9]\"},\n {\"$toInt\": \"&TCC_ATOMIC[10]\"},\n {\"$toInt\": \"&TCC_ATOMIC[11]\"},\n {\"$toInt\": \"&TCC_ATOMIC[12]\"},\n {\"$toInt\": \"&TCC_ATOMIC[13]\"},\n {\"$toInt\": \"&TCC_ATOMIC[14]\"},\n {\"$toInt\": \"&TCC_ATOMIC[15]\"},\n {\"$toInt\": \"&TCC_ATOMIC[16]\"},\n {\"$toInt\": \"&TCC_ATOMIC[17]\"},\n {\"$toInt\": \"&TCC_ATOMIC[18]\"},\n {\"$toInt\": \"&TCC_ATOMIC[19]\"},\n {\"$toInt\": \"&TCC_ATOMIC[20]\"},\n {\"$toInt\": \"&TCC_ATOMIC[21]\"},\n {\"$toInt\": \"&TCC_ATOMIC[22]\"},\n {\"$toInt\": \"&TCC_ATOMIC[23]\"},\n {\"$toInt\": \"&TCC_ATOMIC[24]\"},\n {\"$toInt\": \"&TCC_ATOMIC[25]\"},\n {\"$toInt\": \"&TCC_ATOMIC[26]\"},\n {\"$toInt\": \"&TCC_ATOMIC[27]\"},\n {\"$toInt\": \"&TCC_ATOMIC[28]\"},\n {\"$toInt\": \"&TCC_ATOMIC[29]\"},\n {\"$toInt\": \"&TCC_ATOMIC[30]\"},\n {\"$toInt\": \"&TCC_ATOMIC[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_atomic_req\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_ATOMIC[0]\"},\n {\"$toInt\": \"&TCC_ATOMIC[1]\"},\n {\"$toInt\": \"&TCC_ATOMIC[2]\"},\n {\"$toInt\": \"&TCC_ATOMIC[3]\"},\n {\"$toInt\": \"&TCC_ATOMIC[4]\"},\n {\"$toInt\": \"&TCC_ATOMIC[5]\"},\n {\"$toInt\": \"&TCC_ATOMIC[6]\"},\n {\"$toInt\": \"&TCC_ATOMIC[7]\"},\n {\"$toInt\": \"&TCC_ATOMIC[8]\"},\n {\"$toInt\": \"&TCC_ATOMIC[9]\"},\n {\"$toInt\": \"&TCC_ATOMIC[10]\"},\n {\"$toInt\": \"&TCC_ATOMIC[11]\"},\n {\"$toInt\": \"&TCC_ATOMIC[12]\"},\n {\"$toInt\": \"&TCC_ATOMIC[13]\"},\n {\"$toInt\": \"&TCC_ATOMIC[14]\"},\n {\"$toInt\": \"&TCC_ATOMIC[15]\"},\n {\"$toInt\": \"&TCC_ATOMIC[16]\"},\n {\"$toInt\": \"&TCC_ATOMIC[17]\"},\n {\"$toInt\": \"&TCC_ATOMIC[18]\"},\n {\"$toInt\": \"&TCC_ATOMIC[19]\"},\n {\"$toInt\": \"&TCC_ATOMIC[20]\"},\n {\"$toInt\": \"&TCC_ATOMIC[21]\"},\n {\"$toInt\": \"&TCC_ATOMIC[22]\"},\n {\"$toInt\": \"&TCC_ATOMIC[23]\"},\n {\"$toInt\": \"&TCC_ATOMIC[24]\"},\n {\"$toInt\": \"&TCC_ATOMIC[25]\"},\n {\"$toInt\": \"&TCC_ATOMIC[26]\"},\n {\"$toInt\": \"&TCC_ATOMIC[27]\"},\n {\"$toInt\": \"&TCC_ATOMIC[28]\"},\n {\"$toInt\": \"&TCC_ATOMIC[29]\"},\n {\"$toInt\": \"&TCC_ATOMIC[30]\"},\n {\"$toInt\": \"&TCC_ATOMIC[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_atomic_req\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_ATOMIC[0]\"},\n {\"$toInt\": \"&TCC_ATOMIC[1]\"},\n {\"$toInt\": \"&TCC_ATOMIC[2]\"},\n {\"$toInt\": \"&TCC_ATOMIC[3]\"},\n {\"$toInt\": \"&TCC_ATOMIC[4]\"},\n {\"$toInt\": \"&TCC_ATOMIC[5]\"},\n {\"$toInt\": \"&TCC_ATOMIC[6]\"},\n {\"$toInt\": \"&TCC_ATOMIC[7]\"},\n {\"$toInt\": \"&TCC_ATOMIC[8]\"},\n {\"$toInt\": \"&TCC_ATOMIC[9]\"},\n {\"$toInt\": \"&TCC_ATOMIC[10]\"},\n {\"$toInt\": \"&TCC_ATOMIC[11]\"},\n {\"$toInt\": \"&TCC_ATOMIC[12]\"},\n {\"$toInt\": \"&TCC_ATOMIC[13]\"},\n {\"$toInt\": \"&TCC_ATOMIC[14]\"},\n {\"$toInt\": \"&TCC_ATOMIC[15]\"},\n {\"$toInt\": \"&TCC_ATOMIC[16]\"},\n {\"$toInt\": \"&TCC_ATOMIC[17]\"},\n {\"$toInt\": \"&TCC_ATOMIC[18]\"},\n {\"$toInt\": \"&TCC_ATOMIC[19]\"},\n {\"$toInt\": \"&TCC_ATOMIC[20]\"},\n {\"$toInt\": \"&TCC_ATOMIC[21]\"},\n {\"$toInt\": \"&TCC_ATOMIC[22]\"},\n {\"$toInt\": \"&TCC_ATOMIC[23]\"},\n {\"$toInt\": \"&TCC_ATOMIC[24]\"},\n {\"$toInt\": \"&TCC_ATOMIC[25]\"},\n {\"$toInt\": \"&TCC_ATOMIC[26]\"},\n {\"$toInt\": \"&TCC_ATOMIC[27]\"},\n {\"$toInt\": \"&TCC_ATOMIC[28]\"},\n {\"$toInt\": \"&TCC_ATOMIC[29]\"},\n {\"$toInt\": \"&TCC_ATOMIC[30]\"},\n {\"$toInt\": \"&TCC_ATOMIC[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_atomic_req\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_ATOMIC[0]\"},\n {\"$toInt\": \"&TCC_ATOMIC[1]\"},\n {\"$toInt\": \"&TCC_ATOMIC[2]\"},\n {\"$toInt\": \"&TCC_ATOMIC[3]\"},\n {\"$toInt\": \"&TCC_ATOMIC[4]\"},\n {\"$toInt\": \"&TCC_ATOMIC[5]\"},\n {\"$toInt\": \"&TCC_ATOMIC[6]\"},\n {\"$toInt\": \"&TCC_ATOMIC[7]\"},\n {\"$toInt\": \"&TCC_ATOMIC[8]\"},\n {\"$toInt\": \"&TCC_ATOMIC[9]\"},\n {\"$toInt\": \"&TCC_ATOMIC[10]\"},\n {\"$toInt\": \"&TCC_ATOMIC[11]\"},\n {\"$toInt\": \"&TCC_ATOMIC[12]\"},\n {\"$toInt\": \"&TCC_ATOMIC[13]\"},\n {\"$toInt\": \"&TCC_ATOMIC[14]\"},\n {\"$toInt\": \"&TCC_ATOMIC[15]\"},\n {\"$toInt\": \"&TCC_ATOMIC[16]\"},\n {\"$toInt\": \"&TCC_ATOMIC[17]\"},\n {\"$toInt\": \"&TCC_ATOMIC[18]\"},\n {\"$toInt\": \"&TCC_ATOMIC[19]\"},\n {\"$toInt\": \"&TCC_ATOMIC[20]\"},\n {\"$toInt\": \"&TCC_ATOMIC[21]\"},\n {\"$toInt\": \"&TCC_ATOMIC[22]\"},\n {\"$toInt\": \"&TCC_ATOMIC[23]\"},\n {\"$toInt\": \"&TCC_ATOMIC[24]\"},\n {\"$toInt\": \"&TCC_ATOMIC[25]\"},\n {\"$toInt\": \"&TCC_ATOMIC[26]\"},\n {\"$toInt\": \"&TCC_ATOMIC[27]\"},\n {\"$toInt\": \"&TCC_ATOMIC[28]\"},\n {\"$toInt\": \"&TCC_ATOMIC[29]\"},\n {\"$toInt\": \"&TCC_ATOMIC[30]\"},\n {\"$toInt\": \"&TCC_ATOMIC[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_eaRead_req\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_eaRead_req\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_eaRead_req\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_eaRead_req\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_eaWrite_req\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_eaWrite_req\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_eaWrite_req\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_eaWrite_req\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_eaAtomic_req\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_ATOMIC[0]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[1]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[2]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[3]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[4]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[5]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[6]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[7]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[8]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[9]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[10]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[11]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[12]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[13]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[14]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[15]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[16]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[17]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[18]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[19]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[20]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[21]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[22]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[23]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[24]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[25]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[26]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[27]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[28]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[29]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[30]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_eaAtomic_req\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_ATOMIC[0]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[1]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[2]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[3]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[4]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[5]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[6]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[7]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[8]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[9]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[10]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[11]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[12]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[13]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[14]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[15]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[16]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[17]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[18]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[19]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[20]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[21]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[22]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[23]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[24]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[25]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[26]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[27]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[28]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[29]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[30]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_eaAtomic_req\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_ATOMIC[0]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[1]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[2]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[3]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[4]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[5]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[6]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[7]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[8]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[9]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[10]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[11]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[12]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[13]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[14]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[15]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[16]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[17]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[18]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[19]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[20]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[21]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[22]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[23]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[24]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[25]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[26]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[27]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[28]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[29]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[30]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_eaAtomic_req\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_ATOMIC[0]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[1]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[2]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[3]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[4]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[5]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[6]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[7]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[8]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[9]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[10]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[11]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[12]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[13]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[14]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[15]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[16]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[17]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[18]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[19]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[20]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[21]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[22]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[23]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[24]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[25]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[26]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[27]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[28]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[29]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[30]\"},\n {\"$toInt\": \"&TCC_EA_ATOMIC[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_eaRead_lat\": {\n \"$avg\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n \"&TCC_EA_RDREQ[0]\",\n \"&TCC_EA_RDREQ[1]\",\n \"&TCC_EA_RDREQ[2]\",\n \"&TCC_EA_RDREQ[3]\",\n \"&TCC_EA_RDREQ[4]\",\n \"&TCC_EA_RDREQ[5]\",\n \"&TCC_EA_RDREQ[6]\",\n \"&TCC_EA_RDREQ[7]\",\n \"&TCC_EA_RDREQ[8]\",\n \"&TCC_EA_RDREQ[9]\",\n \"&TCC_EA_RDREQ[10]\",\n \"&TCC_EA_RDREQ[11]\",\n \"&TCC_EA_RDREQ[12]\",\n \"&TCC_EA_RDREQ[13]\",\n \"&TCC_EA_RDREQ[14]\",\n \"&TCC_EA_RDREQ[15]\",\n \"&TCC_EA_RDREQ[16]\",\n \"&TCC_EA_RDREQ[17]\",\n \"&TCC_EA_RDREQ[18]\",\n \"&TCC_EA_RDREQ[19]\",\n \"&TCC_EA_RDREQ[20]\",\n \"&TCC_EA_RDREQ[21]\",\n \"&TCC_EA_RDREQ[22]\",\n \"&TCC_EA_RDREQ[23]\",\n \"&TCC_EA_RDREQ[24]\",\n \"&TCC_EA_RDREQ[25]\",\n \"&TCC_EA_RDREQ[26]\",\n \"&TCC_EA_RDREQ[27]\",\n \"&TCC_EA_RDREQ[28]\",\n \"&TCC_EA_RDREQ[29]\",\n \"&TCC_EA_RDREQ[30]\",\n \"&TCC_EA_RDREQ[31]\"\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n \"&TCC_EA_RDREQ_LEVEL[0]\",\n \"&TCC_EA_RDREQ_LEVEL[1]\",\n \"&TCC_EA_RDREQ_LEVEL[2]\",\n \"&TCC_EA_RDREQ_LEVEL[3]\",\n \"&TCC_EA_RDREQ_LEVEL[4]\",\n \"&TCC_EA_RDREQ_LEVEL[5]\",\n \"&TCC_EA_RDREQ_LEVEL[6]\",\n \"&TCC_EA_RDREQ_LEVEL[7]\",\n \"&TCC_EA_RDREQ_LEVEL[8]\",\n \"&TCC_EA_RDREQ_LEVEL[9]\",\n \"&TCC_EA_RDREQ_LEVEL[10]\",\n \"&TCC_EA_RDREQ_LEVEL[11]\",\n \"&TCC_EA_RDREQ_LEVEL[12]\",\n \"&TCC_EA_RDREQ_LEVEL[13]\",\n \"&TCC_EA_RDREQ_LEVEL[14]\",\n \"&TCC_EA_RDREQ_LEVEL[15]\",\n \"&TCC_EA_RDREQ_LEVEL[16]\",\n \"&TCC_EA_RDREQ_LEVEL[17]\",\n \"&TCC_EA_RDREQ_LEVEL[18]\",\n \"&TCC_EA_RDREQ_LEVEL[19]\",\n \"&TCC_EA_RDREQ_LEVEL[20]\",\n \"&TCC_EA_RDREQ_LEVEL[21]\",\n \"&TCC_EA_RDREQ_LEVEL[22]\",\n \"&TCC_EA_RDREQ_LEVEL[23]\",\n \"&TCC_EA_RDREQ_LEVEL[24]\",\n \"&TCC_EA_RDREQ_LEVEL[25]\",\n \"&TCC_EA_RDREQ_LEVEL[26]\",\n \"&TCC_EA_RDREQ_LEVEL[27]\",\n \"&TCC_EA_RDREQ_LEVEL[28]\",\n \"&TCC_EA_RDREQ_LEVEL[29]\",\n \"&TCC_EA_RDREQ_LEVEL[30]\",\n \"&TCC_EA_RDREQ_LEVEL[31]\"\n ]\n },\n {\n \"$add\":[\n \"&TCC_EA_RDREQ[0]\",\n \"&TCC_EA_RDREQ[1]\",\n \"&TCC_EA_RDREQ[2]\",\n \"&TCC_EA_RDREQ[3]\",\n \"&TCC_EA_RDREQ[4]\",\n \"&TCC_EA_RDREQ[5]\",\n \"&TCC_EA_RDREQ[6]\",\n \"&TCC_EA_RDREQ[7]\",\n \"&TCC_EA_RDREQ[8]\",\n \"&TCC_EA_RDREQ[9]\",\n \"&TCC_EA_RDREQ[10]\",\n \"&TCC_EA_RDREQ[11]\",\n \"&TCC_EA_RDREQ[12]\",\n \"&TCC_EA_RDREQ[13]\",\n \"&TCC_EA_RDREQ[14]\",\n \"&TCC_EA_RDREQ[15]\",\n \"&TCC_EA_RDREQ[16]\",\n \"&TCC_EA_RDREQ[17]\",\n \"&TCC_EA_RDREQ[18]\",\n \"&TCC_EA_RDREQ[19]\",\n \"&TCC_EA_RDREQ[20]\",\n \"&TCC_EA_RDREQ[21]\",\n \"&TCC_EA_RDREQ[22]\",\n \"&TCC_EA_RDREQ[23]\",\n \"&TCC_EA_RDREQ[24]\",\n \"&TCC_EA_RDREQ[25]\",\n \"&TCC_EA_RDREQ[26]\",\n \"&TCC_EA_RDREQ[27]\",\n \"&TCC_EA_RDREQ[28]\",\n \"&TCC_EA_RDREQ[29]\",\n \"&TCC_EA_RDREQ[30]\",\n \"&TCC_EA_RDREQ[31]\"\n ]\n }\n ]},\n null\n ]\n }\n },\n \"min_eaRead_lat\": {\n \"$min\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n \"&TCC_EA_RDREQ[0]\",\n \"&TCC_EA_RDREQ[1]\",\n \"&TCC_EA_RDREQ[2]\",\n \"&TCC_EA_RDREQ[3]\",\n \"&TCC_EA_RDREQ[4]\",\n \"&TCC_EA_RDREQ[5]\",\n \"&TCC_EA_RDREQ[6]\",\n \"&TCC_EA_RDREQ[7]\",\n \"&TCC_EA_RDREQ[8]\",\n \"&TCC_EA_RDREQ[9]\",\n \"&TCC_EA_RDREQ[10]\",\n \"&TCC_EA_RDREQ[11]\",\n \"&TCC_EA_RDREQ[12]\",\n \"&TCC_EA_RDREQ[13]\",\n \"&TCC_EA_RDREQ[14]\",\n \"&TCC_EA_RDREQ[15]\",\n \"&TCC_EA_RDREQ[16]\",\n \"&TCC_EA_RDREQ[17]\",\n \"&TCC_EA_RDREQ[18]\",\n \"&TCC_EA_RDREQ[19]\",\n \"&TCC_EA_RDREQ[20]\",\n \"&TCC_EA_RDREQ[21]\",\n \"&TCC_EA_RDREQ[22]\",\n \"&TCC_EA_RDREQ[23]\",\n \"&TCC_EA_RDREQ[24]\",\n \"&TCC_EA_RDREQ[25]\",\n \"&TCC_EA_RDREQ[26]\",\n \"&TCC_EA_RDREQ[27]\",\n \"&TCC_EA_RDREQ[28]\",\n \"&TCC_EA_RDREQ[29]\",\n \"&TCC_EA_RDREQ[30]\",\n \"&TCC_EA_RDREQ[31]\"\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n \"&TCC_EA_RDREQ_LEVEL[0]\",\n \"&TCC_EA_RDREQ_LEVEL[1]\",\n \"&TCC_EA_RDREQ_LEVEL[2]\",\n \"&TCC_EA_RDREQ_LEVEL[3]\",\n \"&TCC_EA_RDREQ_LEVEL[4]\",\n \"&TCC_EA_RDREQ_LEVEL[5]\",\n \"&TCC_EA_RDREQ_LEVEL[6]\",\n \"&TCC_EA_RDREQ_LEVEL[7]\",\n \"&TCC_EA_RDREQ_LEVEL[8]\",\n \"&TCC_EA_RDREQ_LEVEL[9]\",\n \"&TCC_EA_RDREQ_LEVEL[10]\",\n \"&TCC_EA_RDREQ_LEVEL[11]\",\n \"&TCC_EA_RDREQ_LEVEL[12]\",\n \"&TCC_EA_RDREQ_LEVEL[13]\",\n \"&TCC_EA_RDREQ_LEVEL[14]\",\n \"&TCC_EA_RDREQ_LEVEL[15]\",\n \"&TCC_EA_RDREQ_LEVEL[16]\",\n \"&TCC_EA_RDREQ_LEVEL[17]\",\n \"&TCC_EA_RDREQ_LEVEL[18]\",\n \"&TCC_EA_RDREQ_LEVEL[19]\",\n \"&TCC_EA_RDREQ_LEVEL[20]\",\n \"&TCC_EA_RDREQ_LEVEL[21]\",\n \"&TCC_EA_RDREQ_LEVEL[22]\",\n \"&TCC_EA_RDREQ_LEVEL[23]\",\n \"&TCC_EA_RDREQ_LEVEL[24]\",\n \"&TCC_EA_RDREQ_LEVEL[25]\",\n \"&TCC_EA_RDREQ_LEVEL[26]\",\n \"&TCC_EA_RDREQ_LEVEL[27]\",\n \"&TCC_EA_RDREQ_LEVEL[28]\",\n \"&TCC_EA_RDREQ_LEVEL[29]\",\n \"&TCC_EA_RDREQ_LEVEL[30]\",\n \"&TCC_EA_RDREQ_LEVEL[31]\"\n ]\n },\n {\n \"$add\":[\n \"&TCC_EA_RDREQ[0]\",\n \"&TCC_EA_RDREQ[1]\",\n \"&TCC_EA_RDREQ[2]\",\n \"&TCC_EA_RDREQ[3]\",\n \"&TCC_EA_RDREQ[4]\",\n \"&TCC_EA_RDREQ[5]\",\n \"&TCC_EA_RDREQ[6]\",\n \"&TCC_EA_RDREQ[7]\",\n \"&TCC_EA_RDREQ[8]\",\n \"&TCC_EA_RDREQ[9]\",\n \"&TCC_EA_RDREQ[10]\",\n \"&TCC_EA_RDREQ[11]\",\n \"&TCC_EA_RDREQ[12]\",\n \"&TCC_EA_RDREQ[13]\",\n \"&TCC_EA_RDREQ[14]\",\n \"&TCC_EA_RDREQ[15]\",\n \"&TCC_EA_RDREQ[16]\",\n \"&TCC_EA_RDREQ[17]\",\n \"&TCC_EA_RDREQ[18]\",\n \"&TCC_EA_RDREQ[19]\",\n \"&TCC_EA_RDREQ[20]\",\n \"&TCC_EA_RDREQ[21]\",\n \"&TCC_EA_RDREQ[22]\",\n \"&TCC_EA_RDREQ[23]\",\n \"&TCC_EA_RDREQ[24]\",\n \"&TCC_EA_RDREQ[25]\",\n \"&TCC_EA_RDREQ[26]\",\n \"&TCC_EA_RDREQ[27]\",\n \"&TCC_EA_RDREQ[28]\",\n \"&TCC_EA_RDREQ[29]\",\n \"&TCC_EA_RDREQ[30]\",\n \"&TCC_EA_RDREQ[31]\"\n ]\n }\n ]},\n null\n ]\n }\n },\n \"max_eaRead_lat\": {\n \"$max\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n \"&TCC_EA_RDREQ[0]\",\n \"&TCC_EA_RDREQ[1]\",\n \"&TCC_EA_RDREQ[2]\",\n \"&TCC_EA_RDREQ[3]\",\n \"&TCC_EA_RDREQ[4]\",\n \"&TCC_EA_RDREQ[5]\",\n \"&TCC_EA_RDREQ[6]\",\n \"&TCC_EA_RDREQ[7]\",\n \"&TCC_EA_RDREQ[8]\",\n \"&TCC_EA_RDREQ[9]\",\n \"&TCC_EA_RDREQ[10]\",\n \"&TCC_EA_RDREQ[11]\",\n \"&TCC_EA_RDREQ[12]\",\n \"&TCC_EA_RDREQ[13]\",\n \"&TCC_EA_RDREQ[14]\",\n \"&TCC_EA_RDREQ[15]\",\n \"&TCC_EA_RDREQ[16]\",\n \"&TCC_EA_RDREQ[17]\",\n \"&TCC_EA_RDREQ[18]\",\n \"&TCC_EA_RDREQ[19]\",\n \"&TCC_EA_RDREQ[20]\",\n \"&TCC_EA_RDREQ[21]\",\n \"&TCC_EA_RDREQ[22]\",\n \"&TCC_EA_RDREQ[23]\",\n \"&TCC_EA_RDREQ[24]\",\n \"&TCC_EA_RDREQ[25]\",\n \"&TCC_EA_RDREQ[26]\",\n \"&TCC_EA_RDREQ[27]\",\n \"&TCC_EA_RDREQ[28]\",\n \"&TCC_EA_RDREQ[29]\",\n \"&TCC_EA_RDREQ[30]\",\n \"&TCC_EA_RDREQ[31]\"\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n \"&TCC_EA_RDREQ_LEVEL[0]\",\n \"&TCC_EA_RDREQ_LEVEL[1]\",\n \"&TCC_EA_RDREQ_LEVEL[2]\",\n \"&TCC_EA_RDREQ_LEVEL[3]\",\n \"&TCC_EA_RDREQ_LEVEL[4]\",\n \"&TCC_EA_RDREQ_LEVEL[5]\",\n \"&TCC_EA_RDREQ_LEVEL[6]\",\n \"&TCC_EA_RDREQ_LEVEL[7]\",\n \"&TCC_EA_RDREQ_LEVEL[8]\",\n \"&TCC_EA_RDREQ_LEVEL[9]\",\n \"&TCC_EA_RDREQ_LEVEL[10]\",\n \"&TCC_EA_RDREQ_LEVEL[11]\",\n \"&TCC_EA_RDREQ_LEVEL[12]\",\n \"&TCC_EA_RDREQ_LEVEL[13]\",\n \"&TCC_EA_RDREQ_LEVEL[14]\",\n \"&TCC_EA_RDREQ_LEVEL[15]\",\n \"&TCC_EA_RDREQ_LEVEL[16]\",\n \"&TCC_EA_RDREQ_LEVEL[17]\",\n \"&TCC_EA_RDREQ_LEVEL[18]\",\n \"&TCC_EA_RDREQ_LEVEL[19]\",\n \"&TCC_EA_RDREQ_LEVEL[20]\",\n \"&TCC_EA_RDREQ_LEVEL[21]\",\n \"&TCC_EA_RDREQ_LEVEL[22]\",\n \"&TCC_EA_RDREQ_LEVEL[23]\",\n \"&TCC_EA_RDREQ_LEVEL[24]\",\n \"&TCC_EA_RDREQ_LEVEL[25]\",\n \"&TCC_EA_RDREQ_LEVEL[26]\",\n \"&TCC_EA_RDREQ_LEVEL[27]\",\n \"&TCC_EA_RDREQ_LEVEL[28]\",\n \"&TCC_EA_RDREQ_LEVEL[29]\",\n \"&TCC_EA_RDREQ_LEVEL[30]\",\n \"&TCC_EA_RDREQ_LEVEL[31]\"\n ]\n },\n {\n \"$add\":[\n \"&TCC_EA_RDREQ[0]\",\n \"&TCC_EA_RDREQ[1]\",\n \"&TCC_EA_RDREQ[2]\",\n \"&TCC_EA_RDREQ[3]\",\n \"&TCC_EA_RDREQ[4]\",\n \"&TCC_EA_RDREQ[5]\",\n \"&TCC_EA_RDREQ[6]\",\n \"&TCC_EA_RDREQ[7]\",\n \"&TCC_EA_RDREQ[8]\",\n \"&TCC_EA_RDREQ[9]\",\n \"&TCC_EA_RDREQ[10]\",\n \"&TCC_EA_RDREQ[11]\",\n \"&TCC_EA_RDREQ[12]\",\n \"&TCC_EA_RDREQ[13]\",\n \"&TCC_EA_RDREQ[14]\",\n \"&TCC_EA_RDREQ[15]\",\n \"&TCC_EA_RDREQ[16]\",\n \"&TCC_EA_RDREQ[17]\",\n \"&TCC_EA_RDREQ[18]\",\n \"&TCC_EA_RDREQ[19]\",\n \"&TCC_EA_RDREQ[20]\",\n \"&TCC_EA_RDREQ[21]\",\n \"&TCC_EA_RDREQ[22]\",\n \"&TCC_EA_RDREQ[23]\",\n \"&TCC_EA_RDREQ[24]\",\n \"&TCC_EA_RDREQ[25]\",\n \"&TCC_EA_RDREQ[26]\",\n \"&TCC_EA_RDREQ[27]\",\n \"&TCC_EA_RDREQ[28]\",\n \"&TCC_EA_RDREQ[29]\",\n \"&TCC_EA_RDREQ[30]\",\n \"&TCC_EA_RDREQ[31]\"\n ]\n }\n ]},\n null\n ]\n }\n },\n \"stdDev_eaRead_lat\": {\n \"$stdDevPop\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n \"&TCC_EA_RDREQ[0]\",\n \"&TCC_EA_RDREQ[1]\",\n \"&TCC_EA_RDREQ[2]\",\n \"&TCC_EA_RDREQ[3]\",\n \"&TCC_EA_RDREQ[4]\",\n \"&TCC_EA_RDREQ[5]\",\n \"&TCC_EA_RDREQ[6]\",\n \"&TCC_EA_RDREQ[7]\",\n \"&TCC_EA_RDREQ[8]\",\n \"&TCC_EA_RDREQ[9]\",\n \"&TCC_EA_RDREQ[10]\",\n \"&TCC_EA_RDREQ[11]\",\n \"&TCC_EA_RDREQ[12]\",\n \"&TCC_EA_RDREQ[13]\",\n \"&TCC_EA_RDREQ[14]\",\n \"&TCC_EA_RDREQ[15]\",\n \"&TCC_EA_RDREQ[16]\",\n \"&TCC_EA_RDREQ[17]\",\n \"&TCC_EA_RDREQ[18]\",\n \"&TCC_EA_RDREQ[19]\",\n \"&TCC_EA_RDREQ[20]\",\n \"&TCC_EA_RDREQ[21]\",\n \"&TCC_EA_RDREQ[22]\",\n \"&TCC_EA_RDREQ[23]\",\n \"&TCC_EA_RDREQ[24]\",\n \"&TCC_EA_RDREQ[25]\",\n \"&TCC_EA_RDREQ[26]\",\n \"&TCC_EA_RDREQ[27]\",\n \"&TCC_EA_RDREQ[28]\",\n \"&TCC_EA_RDREQ[29]\",\n \"&TCC_EA_RDREQ[30]\",\n \"&TCC_EA_RDREQ[31]\"\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n \"&TCC_EA_RDREQ_LEVEL[0]\",\n \"&TCC_EA_RDREQ_LEVEL[1]\",\n \"&TCC_EA_RDREQ_LEVEL[2]\",\n \"&TCC_EA_RDREQ_LEVEL[3]\",\n \"&TCC_EA_RDREQ_LEVEL[4]\",\n \"&TCC_EA_RDREQ_LEVEL[5]\",\n \"&TCC_EA_RDREQ_LEVEL[6]\",\n \"&TCC_EA_RDREQ_LEVEL[7]\",\n \"&TCC_EA_RDREQ_LEVEL[8]\",\n \"&TCC_EA_RDREQ_LEVEL[9]\",\n \"&TCC_EA_RDREQ_LEVEL[10]\",\n \"&TCC_EA_RDREQ_LEVEL[11]\",\n \"&TCC_EA_RDREQ_LEVEL[12]\",\n \"&TCC_EA_RDREQ_LEVEL[13]\",\n \"&TCC_EA_RDREQ_LEVEL[14]\",\n \"&TCC_EA_RDREQ_LEVEL[15]\",\n \"&TCC_EA_RDREQ_LEVEL[16]\",\n \"&TCC_EA_RDREQ_LEVEL[17]\",\n \"&TCC_EA_RDREQ_LEVEL[18]\",\n \"&TCC_EA_RDREQ_LEVEL[19]\",\n \"&TCC_EA_RDREQ_LEVEL[20]\",\n \"&TCC_EA_RDREQ_LEVEL[21]\",\n \"&TCC_EA_RDREQ_LEVEL[22]\",\n \"&TCC_EA_RDREQ_LEVEL[23]\",\n \"&TCC_EA_RDREQ_LEVEL[24]\",\n \"&TCC_EA_RDREQ_LEVEL[25]\",\n \"&TCC_EA_RDREQ_LEVEL[26]\",\n \"&TCC_EA_RDREQ_LEVEL[27]\",\n \"&TCC_EA_RDREQ_LEVEL[28]\",\n \"&TCC_EA_RDREQ_LEVEL[29]\",\n \"&TCC_EA_RDREQ_LEVEL[30]\",\n \"&TCC_EA_RDREQ_LEVEL[31]\"\n ]\n },\n {\n \"$add\":[\n \"&TCC_EA_RDREQ[0]\",\n \"&TCC_EA_RDREQ[1]\",\n \"&TCC_EA_RDREQ[2]\",\n \"&TCC_EA_RDREQ[3]\",\n \"&TCC_EA_RDREQ[4]\",\n \"&TCC_EA_RDREQ[5]\",\n \"&TCC_EA_RDREQ[6]\",\n \"&TCC_EA_RDREQ[7]\",\n \"&TCC_EA_RDREQ[8]\",\n \"&TCC_EA_RDREQ[9]\",\n \"&TCC_EA_RDREQ[10]\",\n \"&TCC_EA_RDREQ[11]\",\n \"&TCC_EA_RDREQ[12]\",\n \"&TCC_EA_RDREQ[13]\",\n \"&TCC_EA_RDREQ[14]\",\n \"&TCC_EA_RDREQ[15]\",\n \"&TCC_EA_RDREQ[16]\",\n \"&TCC_EA_RDREQ[17]\",\n \"&TCC_EA_RDREQ[18]\",\n \"&TCC_EA_RDREQ[19]\",\n \"&TCC_EA_RDREQ[20]\",\n \"&TCC_EA_RDREQ[21]\",\n \"&TCC_EA_RDREQ[22]\",\n \"&TCC_EA_RDREQ[23]\",\n \"&TCC_EA_RDREQ[24]\",\n \"&TCC_EA_RDREQ[25]\",\n \"&TCC_EA_RDREQ[26]\",\n \"&TCC_EA_RDREQ[27]\",\n \"&TCC_EA_RDREQ[28]\",\n \"&TCC_EA_RDREQ[29]\",\n \"&TCC_EA_RDREQ[30]\",\n \"&TCC_EA_RDREQ[31]\"\n ]\n }\n ]},\n null\n ]\n }\n },\n \"mean_eaWrite_lat\": {\n \"$avg\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n \"&TCC_EA_WRREQ[0]\",\n \"&TCC_EA_WRREQ[1]\",\n \"&TCC_EA_WRREQ[2]\",\n \"&TCC_EA_WRREQ[3]\",\n \"&TCC_EA_WRREQ[4]\",\n \"&TCC_EA_WRREQ[5]\",\n \"&TCC_EA_WRREQ[6]\",\n \"&TCC_EA_WRREQ[7]\",\n \"&TCC_EA_WRREQ[8]\",\n \"&TCC_EA_WRREQ[9]\",\n \"&TCC_EA_WRREQ[10]\",\n \"&TCC_EA_WRREQ[11]\",\n \"&TCC_EA_WRREQ[12]\",\n \"&TCC_EA_WRREQ[13]\",\n \"&TCC_EA_WRREQ[14]\",\n \"&TCC_EA_WRREQ[15]\",\n \"&TCC_EA_WRREQ[16]\",\n \"&TCC_EA_WRREQ[17]\",\n \"&TCC_EA_WRREQ[18]\",\n \"&TCC_EA_WRREQ[19]\",\n \"&TCC_EA_WRREQ[20]\",\n \"&TCC_EA_WRREQ[21]\",\n \"&TCC_EA_WRREQ[22]\",\n \"&TCC_EA_WRREQ[23]\",\n \"&TCC_EA_WRREQ[24]\",\n \"&TCC_EA_WRREQ[25]\",\n \"&TCC_EA_WRREQ[26]\",\n \"&TCC_EA_WRREQ[27]\",\n \"&TCC_EA_WRREQ[28]\",\n \"&TCC_EA_WRREQ[29]\",\n \"&TCC_EA_WRREQ[30]\",\n \"&TCC_EA_WRREQ[31]\"\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n \"&TCC_EA_WRREQ_LEVEL[0]\",\n \"&TCC_EA_WRREQ_LEVEL[1]\",\n \"&TCC_EA_WRREQ_LEVEL[2]\",\n \"&TCC_EA_WRREQ_LEVEL[3]\",\n \"&TCC_EA_WRREQ_LEVEL[4]\",\n \"&TCC_EA_WRREQ_LEVEL[5]\",\n \"&TCC_EA_WRREQ_LEVEL[6]\",\n \"&TCC_EA_WRREQ_LEVEL[7]\",\n \"&TCC_EA_WRREQ_LEVEL[8]\",\n \"&TCC_EA_WRREQ_LEVEL[9]\",\n \"&TCC_EA_WRREQ_LEVEL[10]\",\n \"&TCC_EA_WRREQ_LEVEL[11]\",\n \"&TCC_EA_WRREQ_LEVEL[12]\",\n \"&TCC_EA_WRREQ_LEVEL[13]\",\n \"&TCC_EA_WRREQ_LEVEL[14]\",\n \"&TCC_EA_WRREQ_LEVEL[15]\",\n \"&TCC_EA_WRREQ_LEVEL[16]\",\n \"&TCC_EA_WRREQ_LEVEL[17]\",\n \"&TCC_EA_WRREQ_LEVEL[18]\",\n \"&TCC_EA_WRREQ_LEVEL[19]\",\n \"&TCC_EA_WRREQ_LEVEL[20]\",\n \"&TCC_EA_WRREQ_LEVEL[21]\",\n \"&TCC_EA_WRREQ_LEVEL[22]\",\n \"&TCC_EA_WRREQ_LEVEL[23]\",\n \"&TCC_EA_WRREQ_LEVEL[24]\",\n \"&TCC_EA_WRREQ_LEVEL[25]\",\n \"&TCC_EA_WRREQ_LEVEL[26]\",\n \"&TCC_EA_WRREQ_LEVEL[27]\",\n \"&TCC_EA_WRREQ_LEVEL[28]\",\n \"&TCC_EA_WRREQ_LEVEL[29]\",\n \"&TCC_EA_WRREQ_LEVEL[30]\",\n \"&TCC_EA_WRREQ_LEVEL[31]\"\n ]\n },\n {\n \"$add\":[\n \"&TCC_EA_WRREQ[0]\",\n \"&TCC_EA_WRREQ[1]\",\n \"&TCC_EA_WRREQ[2]\",\n \"&TCC_EA_WRREQ[3]\",\n \"&TCC_EA_WRREQ[4]\",\n \"&TCC_EA_WRREQ[5]\",\n \"&TCC_EA_WRREQ[6]\",\n \"&TCC_EA_WRREQ[7]\",\n \"&TCC_EA_WRREQ[8]\",\n \"&TCC_EA_WRREQ[9]\",\n \"&TCC_EA_WRREQ[10]\",\n \"&TCC_EA_WRREQ[11]\",\n \"&TCC_EA_WRREQ[12]\",\n \"&TCC_EA_WRREQ[13]\",\n \"&TCC_EA_WRREQ[14]\",\n \"&TCC_EA_WRREQ[15]\",\n \"&TCC_EA_WRREQ[16]\",\n \"&TCC_EA_WRREQ[17]\",\n \"&TCC_EA_WRREQ[18]\",\n \"&TCC_EA_WRREQ[19]\",\n \"&TCC_EA_WRREQ[20]\",\n \"&TCC_EA_WRREQ[21]\",\n \"&TCC_EA_WRREQ[22]\",\n \"&TCC_EA_WRREQ[23]\",\n \"&TCC_EA_WRREQ[24]\",\n \"&TCC_EA_WRREQ[25]\",\n \"&TCC_EA_WRREQ[26]\",\n \"&TCC_EA_WRREQ[27]\",\n \"&TCC_EA_WRREQ[28]\",\n \"&TCC_EA_WRREQ[29]\",\n \"&TCC_EA_WRREQ[30]\",\n \"&TCC_EA_WRREQ[31]\"\n ]\n }\n ]},\n null\n ]\n }\n },\n \"min_eaWrite_lat\": {\n \"$min\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n \"&TCC_EA_WRREQ[0]\",\n \"&TCC_EA_WRREQ[1]\",\n \"&TCC_EA_WRREQ[2]\",\n \"&TCC_EA_WRREQ[3]\",\n \"&TCC_EA_WRREQ[4]\",\n \"&TCC_EA_WRREQ[5]\",\n \"&TCC_EA_WRREQ[6]\",\n \"&TCC_EA_WRREQ[7]\",\n \"&TCC_EA_WRREQ[8]\",\n \"&TCC_EA_WRREQ[9]\",\n \"&TCC_EA_WRREQ[10]\",\n \"&TCC_EA_WRREQ[11]\",\n \"&TCC_EA_WRREQ[12]\",\n \"&TCC_EA_WRREQ[13]\",\n \"&TCC_EA_WRREQ[14]\",\n \"&TCC_EA_WRREQ[15]\",\n \"&TCC_EA_WRREQ[16]\",\n \"&TCC_EA_WRREQ[17]\",\n \"&TCC_EA_WRREQ[18]\",\n \"&TCC_EA_WRREQ[19]\",\n \"&TCC_EA_WRREQ[20]\",\n \"&TCC_EA_WRREQ[21]\",\n \"&TCC_EA_WRREQ[22]\",\n \"&TCC_EA_WRREQ[23]\",\n \"&TCC_EA_WRREQ[24]\",\n \"&TCC_EA_WRREQ[25]\",\n \"&TCC_EA_WRREQ[26]\",\n \"&TCC_EA_WRREQ[27]\",\n \"&TCC_EA_WRREQ[28]\",\n \"&TCC_EA_WRREQ[29]\",\n \"&TCC_EA_WRREQ[30]\",\n \"&TCC_EA_WRREQ[31]\"\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n \"&TCC_EA_WRREQ_LEVEL[0]\",\n \"&TCC_EA_WRREQ_LEVEL[1]\",\n \"&TCC_EA_WRREQ_LEVEL[2]\",\n \"&TCC_EA_WRREQ_LEVEL[3]\",\n \"&TCC_EA_WRREQ_LEVEL[4]\",\n \"&TCC_EA_WRREQ_LEVEL[5]\",\n \"&TCC_EA_WRREQ_LEVEL[6]\",\n \"&TCC_EA_WRREQ_LEVEL[7]\",\n \"&TCC_EA_WRREQ_LEVEL[8]\",\n \"&TCC_EA_WRREQ_LEVEL[9]\",\n \"&TCC_EA_WRREQ_LEVEL[10]\",\n \"&TCC_EA_WRREQ_LEVEL[11]\",\n \"&TCC_EA_WRREQ_LEVEL[12]\",\n \"&TCC_EA_WRREQ_LEVEL[13]\",\n \"&TCC_EA_WRREQ_LEVEL[14]\",\n \"&TCC_EA_WRREQ_LEVEL[15]\",\n \"&TCC_EA_WRREQ_LEVEL[16]\",\n \"&TCC_EA_WRREQ_LEVEL[17]\",\n \"&TCC_EA_WRREQ_LEVEL[18]\",\n \"&TCC_EA_WRREQ_LEVEL[19]\",\n \"&TCC_EA_WRREQ_LEVEL[20]\",\n \"&TCC_EA_WRREQ_LEVEL[21]\",\n \"&TCC_EA_WRREQ_LEVEL[22]\",\n \"&TCC_EA_WRREQ_LEVEL[23]\",\n \"&TCC_EA_WRREQ_LEVEL[24]\",\n \"&TCC_EA_WRREQ_LEVEL[25]\",\n \"&TCC_EA_WRREQ_LEVEL[26]\",\n \"&TCC_EA_WRREQ_LEVEL[27]\",\n \"&TCC_EA_WRREQ_LEVEL[28]\",\n \"&TCC_EA_WRREQ_LEVEL[29]\",\n \"&TCC_EA_WRREQ_LEVEL[30]\",\n \"&TCC_EA_WRREQ_LEVEL[31]\"\n ]\n },\n {\n \"$add\":[\n \"&TCC_EA_WRREQ[0]\",\n \"&TCC_EA_WRREQ[1]\",\n \"&TCC_EA_WRREQ[2]\",\n \"&TCC_EA_WRREQ[3]\",\n \"&TCC_EA_WRREQ[4]\",\n \"&TCC_EA_WRREQ[5]\",\n \"&TCC_EA_WRREQ[6]\",\n \"&TCC_EA_WRREQ[7]\",\n \"&TCC_EA_WRREQ[8]\",\n \"&TCC_EA_WRREQ[9]\",\n \"&TCC_EA_WRREQ[10]\",\n \"&TCC_EA_WRREQ[11]\",\n \"&TCC_EA_WRREQ[12]\",\n \"&TCC_EA_WRREQ[13]\",\n \"&TCC_EA_WRREQ[14]\",\n \"&TCC_EA_WRREQ[15]\",\n \"&TCC_EA_WRREQ[16]\",\n \"&TCC_EA_WRREQ[17]\",\n \"&TCC_EA_WRREQ[18]\",\n \"&TCC_EA_WRREQ[19]\",\n \"&TCC_EA_WRREQ[20]\",\n \"&TCC_EA_WRREQ[21]\",\n \"&TCC_EA_WRREQ[22]\",\n \"&TCC_EA_WRREQ[23]\",\n \"&TCC_EA_WRREQ[24]\",\n \"&TCC_EA_WRREQ[25]\",\n \"&TCC_EA_WRREQ[26]\",\n \"&TCC_EA_WRREQ[27]\",\n \"&TCC_EA_WRREQ[28]\",\n \"&TCC_EA_WRREQ[29]\",\n \"&TCC_EA_WRREQ[30]\",\n \"&TCC_EA_WRREQ[31]\"\n ]\n }\n ]},\n null\n ]\n }\n },\n \"max_eaWrite_lat\": {\n \"$max\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n \"&TCC_EA_WRREQ[0]\",\n \"&TCC_EA_WRREQ[1]\",\n \"&TCC_EA_WRREQ[2]\",\n \"&TCC_EA_WRREQ[3]\",\n \"&TCC_EA_WRREQ[4]\",\n \"&TCC_EA_WRREQ[5]\",\n \"&TCC_EA_WRREQ[6]\",\n \"&TCC_EA_WRREQ[7]\",\n \"&TCC_EA_WRREQ[8]\",\n \"&TCC_EA_WRREQ[9]\",\n \"&TCC_EA_WRREQ[10]\",\n \"&TCC_EA_WRREQ[11]\",\n \"&TCC_EA_WRREQ[12]\",\n \"&TCC_EA_WRREQ[13]\",\n \"&TCC_EA_WRREQ[14]\",\n \"&TCC_EA_WRREQ[15]\",\n \"&TCC_EA_WRREQ[16]\",\n \"&TCC_EA_WRREQ[17]\",\n \"&TCC_EA_WRREQ[18]\",\n \"&TCC_EA_WRREQ[19]\",\n \"&TCC_EA_WRREQ[20]\",\n \"&TCC_EA_WRREQ[21]\",\n \"&TCC_EA_WRREQ[22]\",\n \"&TCC_EA_WRREQ[23]\",\n \"&TCC_EA_WRREQ[24]\",\n \"&TCC_EA_WRREQ[25]\",\n \"&TCC_EA_WRREQ[26]\",\n \"&TCC_EA_WRREQ[27]\",\n \"&TCC_EA_WRREQ[28]\",\n \"&TCC_EA_WRREQ[29]\",\n \"&TCC_EA_WRREQ[30]\",\n \"&TCC_EA_WRREQ[31]\"\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n \"&TCC_EA_WRREQ_LEVEL[0]\",\n \"&TCC_EA_WRREQ_LEVEL[1]\",\n \"&TCC_EA_WRREQ_LEVEL[2]\",\n \"&TCC_EA_WRREQ_LEVEL[3]\",\n \"&TCC_EA_WRREQ_LEVEL[4]\",\n \"&TCC_EA_WRREQ_LEVEL[5]\",\n \"&TCC_EA_WRREQ_LEVEL[6]\",\n \"&TCC_EA_WRREQ_LEVEL[7]\",\n \"&TCC_EA_WRREQ_LEVEL[8]\",\n \"&TCC_EA_WRREQ_LEVEL[9]\",\n \"&TCC_EA_WRREQ_LEVEL[10]\",\n \"&TCC_EA_WRREQ_LEVEL[11]\",\n \"&TCC_EA_WRREQ_LEVEL[12]\",\n \"&TCC_EA_WRREQ_LEVEL[13]\",\n \"&TCC_EA_WRREQ_LEVEL[14]\",\n \"&TCC_EA_WRREQ_LEVEL[15]\",\n \"&TCC_EA_WRREQ_LEVEL[16]\",\n \"&TCC_EA_WRREQ_LEVEL[17]\",\n \"&TCC_EA_WRREQ_LEVEL[18]\",\n \"&TCC_EA_WRREQ_LEVEL[19]\",\n \"&TCC_EA_WRREQ_LEVEL[20]\",\n \"&TCC_EA_WRREQ_LEVEL[21]\",\n \"&TCC_EA_WRREQ_LEVEL[22]\",\n \"&TCC_EA_WRREQ_LEVEL[23]\",\n \"&TCC_EA_WRREQ_LEVEL[24]\",\n \"&TCC_EA_WRREQ_LEVEL[25]\",\n \"&TCC_EA_WRREQ_LEVEL[26]\",\n \"&TCC_EA_WRREQ_LEVEL[27]\",\n \"&TCC_EA_WRREQ_LEVEL[28]\",\n \"&TCC_EA_WRREQ_LEVEL[29]\",\n \"&TCC_EA_WRREQ_LEVEL[30]\",\n \"&TCC_EA_WRREQ_LEVEL[31]\"\n ]\n },\n {\n \"$add\":[\n \"&TCC_EA_WRREQ[0]\",\n \"&TCC_EA_WRREQ[1]\",\n \"&TCC_EA_WRREQ[2]\",\n \"&TCC_EA_WRREQ[3]\",\n \"&TCC_EA_WRREQ[4]\",\n \"&TCC_EA_WRREQ[5]\",\n \"&TCC_EA_WRREQ[6]\",\n \"&TCC_EA_WRREQ[7]\",\n \"&TCC_EA_WRREQ[8]\",\n \"&TCC_EA_WRREQ[9]\",\n \"&TCC_EA_WRREQ[10]\",\n \"&TCC_EA_WRREQ[11]\",\n \"&TCC_EA_WRREQ[12]\",\n \"&TCC_EA_WRREQ[13]\",\n \"&TCC_EA_WRREQ[14]\",\n \"&TCC_EA_WRREQ[15]\",\n \"&TCC_EA_WRREQ[16]\",\n \"&TCC_EA_WRREQ[17]\",\n \"&TCC_EA_WRREQ[18]\",\n \"&TCC_EA_WRREQ[19]\",\n \"&TCC_EA_WRREQ[20]\",\n \"&TCC_EA_WRREQ[21]\",\n \"&TCC_EA_WRREQ[22]\",\n \"&TCC_EA_WRREQ[23]\",\n \"&TCC_EA_WRREQ[24]\",\n \"&TCC_EA_WRREQ[25]\",\n \"&TCC_EA_WRREQ[26]\",\n \"&TCC_EA_WRREQ[27]\",\n \"&TCC_EA_WRREQ[28]\",\n \"&TCC_EA_WRREQ[29]\",\n \"&TCC_EA_WRREQ[30]\",\n \"&TCC_EA_WRREQ[31]\"\n ]\n }\n ]},\n null\n ]\n }\n },\n \"stdDev_eaWrite_lat\": {\n \"$stdDevPop\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n \"&TCC_EA_WRREQ[0]\",\n \"&TCC_EA_WRREQ[1]\",\n \"&TCC_EA_WRREQ[2]\",\n \"&TCC_EA_WRREQ[3]\",\n \"&TCC_EA_WRREQ[4]\",\n \"&TCC_EA_WRREQ[5]\",\n \"&TCC_EA_WRREQ[6]\",\n \"&TCC_EA_WRREQ[7]\",\n \"&TCC_EA_WRREQ[8]\",\n \"&TCC_EA_WRREQ[9]\",\n \"&TCC_EA_WRREQ[10]\",\n \"&TCC_EA_WRREQ[11]\",\n \"&TCC_EA_WRREQ[12]\",\n \"&TCC_EA_WRREQ[13]\",\n \"&TCC_EA_WRREQ[14]\",\n \"&TCC_EA_WRREQ[15]\",\n \"&TCC_EA_WRREQ[16]\",\n \"&TCC_EA_WRREQ[17]\",\n \"&TCC_EA_WRREQ[18]\",\n \"&TCC_EA_WRREQ[19]\",\n \"&TCC_EA_WRREQ[20]\",\n \"&TCC_EA_WRREQ[21]\",\n \"&TCC_EA_WRREQ[22]\",\n \"&TCC_EA_WRREQ[23]\",\n \"&TCC_EA_WRREQ[24]\",\n \"&TCC_EA_WRREQ[25]\",\n \"&TCC_EA_WRREQ[26]\",\n \"&TCC_EA_WRREQ[27]\",\n \"&TCC_EA_WRREQ[28]\",\n \"&TCC_EA_WRREQ[29]\",\n \"&TCC_EA_WRREQ[30]\",\n \"&TCC_EA_WRREQ[31]\"\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n \"&TCC_EA_WRREQ_LEVEL[0]\",\n \"&TCC_EA_WRREQ_LEVEL[1]\",\n \"&TCC_EA_WRREQ_LEVEL[2]\",\n \"&TCC_EA_WRREQ_LEVEL[3]\",\n \"&TCC_EA_WRREQ_LEVEL[4]\",\n \"&TCC_EA_WRREQ_LEVEL[5]\",\n \"&TCC_EA_WRREQ_LEVEL[6]\",\n \"&TCC_EA_WRREQ_LEVEL[7]\",\n \"&TCC_EA_WRREQ_LEVEL[8]\",\n \"&TCC_EA_WRREQ_LEVEL[9]\",\n \"&TCC_EA_WRREQ_LEVEL[10]\",\n \"&TCC_EA_WRREQ_LEVEL[11]\",\n \"&TCC_EA_WRREQ_LEVEL[12]\",\n \"&TCC_EA_WRREQ_LEVEL[13]\",\n \"&TCC_EA_WRREQ_LEVEL[14]\",\n \"&TCC_EA_WRREQ_LEVEL[15]\",\n \"&TCC_EA_WRREQ_LEVEL[16]\",\n \"&TCC_EA_WRREQ_LEVEL[17]\",\n \"&TCC_EA_WRREQ_LEVEL[18]\",\n \"&TCC_EA_WRREQ_LEVEL[19]\",\n \"&TCC_EA_WRREQ_LEVEL[20]\",\n \"&TCC_EA_WRREQ_LEVEL[21]\",\n \"&TCC_EA_WRREQ_LEVEL[22]\",\n \"&TCC_EA_WRREQ_LEVEL[23]\",\n \"&TCC_EA_WRREQ_LEVEL[24]\",\n \"&TCC_EA_WRREQ_LEVEL[25]\",\n \"&TCC_EA_WRREQ_LEVEL[26]\",\n \"&TCC_EA_WRREQ_LEVEL[27]\",\n \"&TCC_EA_WRREQ_LEVEL[28]\",\n \"&TCC_EA_WRREQ_LEVEL[29]\",\n \"&TCC_EA_WRREQ_LEVEL[30]\",\n \"&TCC_EA_WRREQ_LEVEL[31]\"\n ]\n },\n {\n \"$add\":[\n \"&TCC_EA_WRREQ[0]\",\n \"&TCC_EA_WRREQ[1]\",\n \"&TCC_EA_WRREQ[2]\",\n \"&TCC_EA_WRREQ[3]\",\n \"&TCC_EA_WRREQ[4]\",\n \"&TCC_EA_WRREQ[5]\",\n \"&TCC_EA_WRREQ[6]\",\n \"&TCC_EA_WRREQ[7]\",\n \"&TCC_EA_WRREQ[8]\",\n \"&TCC_EA_WRREQ[9]\",\n \"&TCC_EA_WRREQ[10]\",\n \"&TCC_EA_WRREQ[11]\",\n \"&TCC_EA_WRREQ[12]\",\n \"&TCC_EA_WRREQ[13]\",\n \"&TCC_EA_WRREQ[14]\",\n \"&TCC_EA_WRREQ[15]\",\n \"&TCC_EA_WRREQ[16]\",\n \"&TCC_EA_WRREQ[17]\",\n \"&TCC_EA_WRREQ[18]\",\n \"&TCC_EA_WRREQ[19]\",\n \"&TCC_EA_WRREQ[20]\",\n \"&TCC_EA_WRREQ[21]\",\n \"&TCC_EA_WRREQ[22]\",\n \"&TCC_EA_WRREQ[23]\",\n \"&TCC_EA_WRREQ[24]\",\n \"&TCC_EA_WRREQ[25]\",\n \"&TCC_EA_WRREQ[26]\",\n \"&TCC_EA_WRREQ[27]\",\n \"&TCC_EA_WRREQ[28]\",\n \"&TCC_EA_WRREQ[29]\",\n \"&TCC_EA_WRREQ[30]\",\n \"&TCC_EA_WRREQ[31]\"\n ]\n }\n ]},\n null\n ]\n }\n },\n \"mean_eaAtomic_lat\": {\n \"$avg\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n \"&TCC_EA_ATOMIC[0]\",\n \"&TCC_EA_ATOMIC[1]\",\n \"&TCC_EA_ATOMIC[2]\",\n \"&TCC_EA_ATOMIC[3]\",\n \"&TCC_EA_ATOMIC[4]\",\n \"&TCC_EA_ATOMIC[5]\",\n \"&TCC_EA_ATOMIC[6]\",\n \"&TCC_EA_ATOMIC[7]\",\n \"&TCC_EA_ATOMIC[8]\",\n \"&TCC_EA_ATOMIC[9]\",\n \"&TCC_EA_ATOMIC[10]\",\n \"&TCC_EA_ATOMIC[11]\",\n \"&TCC_EA_ATOMIC[12]\",\n \"&TCC_EA_ATOMIC[13]\",\n \"&TCC_EA_ATOMIC[14]\",\n \"&TCC_EA_ATOMIC[15]\",\n \"&TCC_EA_ATOMIC[16]\",\n \"&TCC_EA_ATOMIC[17]\",\n \"&TCC_EA_ATOMIC[18]\",\n \"&TCC_EA_ATOMIC[19]\",\n \"&TCC_EA_ATOMIC[20]\",\n \"&TCC_EA_ATOMIC[21]\",\n \"&TCC_EA_ATOMIC[22]\",\n \"&TCC_EA_ATOMIC[23]\",\n \"&TCC_EA_ATOMIC[24]\",\n \"&TCC_EA_ATOMIC[25]\",\n \"&TCC_EA_ATOMIC[26]\",\n \"&TCC_EA_ATOMIC[27]\",\n \"&TCC_EA_ATOMIC[28]\",\n \"&TCC_EA_ATOMIC[29]\",\n \"&TCC_EA_ATOMIC[30]\",\n \"&TCC_EA_ATOMIC[31]\"\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n \"&TCC_EA_ATOMIC_LEVEL[0]\",\n \"&TCC_EA_ATOMIC_LEVEL[1]\",\n \"&TCC_EA_ATOMIC_LEVEL[2]\",\n \"&TCC_EA_ATOMIC_LEVEL[3]\",\n \"&TCC_EA_ATOMIC_LEVEL[4]\",\n \"&TCC_EA_ATOMIC_LEVEL[5]\",\n \"&TCC_EA_ATOMIC_LEVEL[6]\",\n \"&TCC_EA_ATOMIC_LEVEL[7]\",\n \"&TCC_EA_ATOMIC_LEVEL[8]\",\n \"&TCC_EA_ATOMIC_LEVEL[9]\",\n \"&TCC_EA_ATOMIC_LEVEL[10]\",\n \"&TCC_EA_ATOMIC_LEVEL[11]\",\n \"&TCC_EA_ATOMIC_LEVEL[12]\",\n \"&TCC_EA_ATOMIC_LEVEL[13]\",\n \"&TCC_EA_ATOMIC_LEVEL[14]\",\n \"&TCC_EA_ATOMIC_LEVEL[15]\",\n \"&TCC_EA_ATOMIC_LEVEL[16]\",\n \"&TCC_EA_ATOMIC_LEVEL[17]\",\n \"&TCC_EA_ATOMIC_LEVEL[18]\",\n \"&TCC_EA_ATOMIC_LEVEL[19]\",\n \"&TCC_EA_ATOMIC_LEVEL[20]\",\n \"&TCC_EA_ATOMIC_LEVEL[21]\",\n \"&TCC_EA_ATOMIC_LEVEL[22]\",\n \"&TCC_EA_ATOMIC_LEVEL[23]\",\n \"&TCC_EA_ATOMIC_LEVEL[24]\",\n \"&TCC_EA_ATOMIC_LEVEL[25]\",\n \"&TCC_EA_ATOMIC_LEVEL[26]\",\n \"&TCC_EA_ATOMIC_LEVEL[27]\",\n \"&TCC_EA_ATOMIC_LEVEL[28]\",\n \"&TCC_EA_ATOMIC_LEVEL[29]\",\n \"&TCC_EA_ATOMIC_LEVEL[30]\",\n \"&TCC_EA_ATOMIC_LEVEL[31]\"\n ]\n },\n {\n \"$add\":[\n \"&TCC_EA_ATOMIC[0]\",\n \"&TCC_EA_ATOMIC[1]\",\n \"&TCC_EA_ATOMIC[2]\",\n \"&TCC_EA_ATOMIC[3]\",\n \"&TCC_EA_ATOMIC[4]\",\n \"&TCC_EA_ATOMIC[5]\",\n \"&TCC_EA_ATOMIC[6]\",\n \"&TCC_EA_ATOMIC[7]\",\n \"&TCC_EA_ATOMIC[8]\",\n \"&TCC_EA_ATOMIC[9]\",\n \"&TCC_EA_ATOMIC[10]\",\n \"&TCC_EA_ATOMIC[11]\",\n \"&TCC_EA_ATOMIC[12]\",\n \"&TCC_EA_ATOMIC[13]\",\n \"&TCC_EA_ATOMIC[14]\",\n \"&TCC_EA_ATOMIC[15]\",\n \"&TCC_EA_ATOMIC[16]\",\n \"&TCC_EA_ATOMIC[17]\",\n \"&TCC_EA_ATOMIC[18]\",\n \"&TCC_EA_ATOMIC[19]\",\n \"&TCC_EA_ATOMIC[20]\",\n \"&TCC_EA_ATOMIC[21]\",\n \"&TCC_EA_ATOMIC[22]\",\n \"&TCC_EA_ATOMIC[23]\",\n \"&TCC_EA_ATOMIC[24]\",\n \"&TCC_EA_ATOMIC[25]\",\n \"&TCC_EA_ATOMIC[26]\",\n \"&TCC_EA_ATOMIC[27]\",\n \"&TCC_EA_ATOMIC[28]\",\n \"&TCC_EA_ATOMIC[29]\",\n \"&TCC_EA_ATOMIC[30]\",\n \"&TCC_EA_ATOMIC[31]\"\n ]\n }\n ]},\n null\n ]\n }\n },\n \"min_eaAtomic_lat\": {\n \"$min\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n \"&TCC_EA_ATOMIC[0]\",\n \"&TCC_EA_ATOMIC[1]\",\n \"&TCC_EA_ATOMIC[2]\",\n \"&TCC_EA_ATOMIC[3]\",\n \"&TCC_EA_ATOMIC[4]\",\n \"&TCC_EA_ATOMIC[5]\",\n \"&TCC_EA_ATOMIC[6]\",\n \"&TCC_EA_ATOMIC[7]\",\n \"&TCC_EA_ATOMIC[8]\",\n \"&TCC_EA_ATOMIC[9]\",\n \"&TCC_EA_ATOMIC[10]\",\n \"&TCC_EA_ATOMIC[11]\",\n \"&TCC_EA_ATOMIC[12]\",\n \"&TCC_EA_ATOMIC[13]\",\n \"&TCC_EA_ATOMIC[14]\",\n \"&TCC_EA_ATOMIC[15]\",\n \"&TCC_EA_ATOMIC[16]\",\n \"&TCC_EA_ATOMIC[17]\",\n \"&TCC_EA_ATOMIC[18]\",\n \"&TCC_EA_ATOMIC[19]\",\n \"&TCC_EA_ATOMIC[20]\",\n \"&TCC_EA_ATOMIC[21]\",\n \"&TCC_EA_ATOMIC[22]\",\n \"&TCC_EA_ATOMIC[23]\",\n \"&TCC_EA_ATOMIC[24]\",\n \"&TCC_EA_ATOMIC[25]\",\n \"&TCC_EA_ATOMIC[26]\",\n \"&TCC_EA_ATOMIC[27]\",\n \"&TCC_EA_ATOMIC[28]\",\n \"&TCC_EA_ATOMIC[29]\",\n \"&TCC_EA_ATOMIC[30]\",\n \"&TCC_EA_ATOMIC[31]\"\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n \"&TCC_EA_ATOMIC_LEVEL[0]\",\n \"&TCC_EA_ATOMIC_LEVEL[1]\",\n \"&TCC_EA_ATOMIC_LEVEL[2]\",\n \"&TCC_EA_ATOMIC_LEVEL[3]\",\n \"&TCC_EA_ATOMIC_LEVEL[4]\",\n \"&TCC_EA_ATOMIC_LEVEL[5]\",\n \"&TCC_EA_ATOMIC_LEVEL[6]\",\n \"&TCC_EA_ATOMIC_LEVEL[7]\",\n \"&TCC_EA_ATOMIC_LEVEL[8]\",\n \"&TCC_EA_ATOMIC_LEVEL[9]\",\n \"&TCC_EA_ATOMIC_LEVEL[10]\",\n \"&TCC_EA_ATOMIC_LEVEL[11]\",\n \"&TCC_EA_ATOMIC_LEVEL[12]\",\n \"&TCC_EA_ATOMIC_LEVEL[13]\",\n \"&TCC_EA_ATOMIC_LEVEL[14]\",\n \"&TCC_EA_ATOMIC_LEVEL[15]\",\n \"&TCC_EA_ATOMIC_LEVEL[16]\",\n \"&TCC_EA_ATOMIC_LEVEL[17]\",\n \"&TCC_EA_ATOMIC_LEVEL[18]\",\n \"&TCC_EA_ATOMIC_LEVEL[19]\",\n \"&TCC_EA_ATOMIC_LEVEL[20]\",\n \"&TCC_EA_ATOMIC_LEVEL[21]\",\n \"&TCC_EA_ATOMIC_LEVEL[22]\",\n \"&TCC_EA_ATOMIC_LEVEL[23]\",\n \"&TCC_EA_ATOMIC_LEVEL[24]\",\n \"&TCC_EA_ATOMIC_LEVEL[25]\",\n \"&TCC_EA_ATOMIC_LEVEL[26]\",\n \"&TCC_EA_ATOMIC_LEVEL[27]\",\n \"&TCC_EA_ATOMIC_LEVEL[28]\",\n \"&TCC_EA_ATOMIC_LEVEL[29]\",\n \"&TCC_EA_ATOMIC_LEVEL[30]\",\n \"&TCC_EA_ATOMIC_LEVEL[31]\"\n ]\n },\n {\n \"$add\":[\n \"&TCC_EA_ATOMIC[0]\",\n \"&TCC_EA_ATOMIC[1]\",\n \"&TCC_EA_ATOMIC[2]\",\n \"&TCC_EA_ATOMIC[3]\",\n \"&TCC_EA_ATOMIC[4]\",\n \"&TCC_EA_ATOMIC[5]\",\n \"&TCC_EA_ATOMIC[6]\",\n \"&TCC_EA_ATOMIC[7]\",\n \"&TCC_EA_ATOMIC[8]\",\n \"&TCC_EA_ATOMIC[9]\",\n \"&TCC_EA_ATOMIC[10]\",\n \"&TCC_EA_ATOMIC[11]\",\n \"&TCC_EA_ATOMIC[12]\",\n \"&TCC_EA_ATOMIC[13]\",\n \"&TCC_EA_ATOMIC[14]\",\n \"&TCC_EA_ATOMIC[15]\",\n \"&TCC_EA_ATOMIC[16]\",\n \"&TCC_EA_ATOMIC[17]\",\n \"&TCC_EA_ATOMIC[18]\",\n \"&TCC_EA_ATOMIC[19]\",\n \"&TCC_EA_ATOMIC[20]\",\n \"&TCC_EA_ATOMIC[21]\",\n \"&TCC_EA_ATOMIC[22]\",\n \"&TCC_EA_ATOMIC[23]\",\n \"&TCC_EA_ATOMIC[24]\",\n \"&TCC_EA_ATOMIC[25]\",\n \"&TCC_EA_ATOMIC[26]\",\n \"&TCC_EA_ATOMIC[27]\",\n \"&TCC_EA_ATOMIC[28]\",\n \"&TCC_EA_ATOMIC[29]\",\n \"&TCC_EA_ATOMIC[30]\",\n \"&TCC_EA_ATOMIC[31]\"\n ]\n }\n ]},\n null\n ]\n }\n },\n \"max_eaAtomic_lat\": {\n \"$max\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n \"&TCC_EA_ATOMIC[0]\",\n \"&TCC_EA_ATOMIC[1]\",\n \"&TCC_EA_ATOMIC[2]\",\n \"&TCC_EA_ATOMIC[3]\",\n \"&TCC_EA_ATOMIC[4]\",\n \"&TCC_EA_ATOMIC[5]\",\n \"&TCC_EA_ATOMIC[6]\",\n \"&TCC_EA_ATOMIC[7]\",\n \"&TCC_EA_ATOMIC[8]\",\n \"&TCC_EA_ATOMIC[9]\",\n \"&TCC_EA_ATOMIC[10]\",\n \"&TCC_EA_ATOMIC[11]\",\n \"&TCC_EA_ATOMIC[12]\",\n \"&TCC_EA_ATOMIC[13]\",\n \"&TCC_EA_ATOMIC[14]\",\n \"&TCC_EA_ATOMIC[15]\",\n \"&TCC_EA_ATOMIC[16]\",\n \"&TCC_EA_ATOMIC[17]\",\n \"&TCC_EA_ATOMIC[18]\",\n \"&TCC_EA_ATOMIC[19]\",\n \"&TCC_EA_ATOMIC[20]\",\n \"&TCC_EA_ATOMIC[21]\",\n \"&TCC_EA_ATOMIC[22]\",\n \"&TCC_EA_ATOMIC[23]\",\n \"&TCC_EA_ATOMIC[24]\",\n \"&TCC_EA_ATOMIC[25]\",\n \"&TCC_EA_ATOMIC[26]\",\n \"&TCC_EA_ATOMIC[27]\",\n \"&TCC_EA_ATOMIC[28]\",\n \"&TCC_EA_ATOMIC[29]\",\n \"&TCC_EA_ATOMIC[30]\",\n \"&TCC_EA_ATOMIC[31]\"\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n \"&TCC_EA_ATOMIC_LEVEL[0]\",\n \"&TCC_EA_ATOMIC_LEVEL[1]\",\n \"&TCC_EA_ATOMIC_LEVEL[2]\",\n \"&TCC_EA_ATOMIC_LEVEL[3]\",\n \"&TCC_EA_ATOMIC_LEVEL[4]\",\n \"&TCC_EA_ATOMIC_LEVEL[5]\",\n \"&TCC_EA_ATOMIC_LEVEL[6]\",\n \"&TCC_EA_ATOMIC_LEVEL[7]\",\n \"&TCC_EA_ATOMIC_LEVEL[8]\",\n \"&TCC_EA_ATOMIC_LEVEL[9]\",\n \"&TCC_EA_ATOMIC_LEVEL[10]\",\n \"&TCC_EA_ATOMIC_LEVEL[11]\",\n \"&TCC_EA_ATOMIC_LEVEL[12]\",\n \"&TCC_EA_ATOMIC_LEVEL[13]\",\n \"&TCC_EA_ATOMIC_LEVEL[14]\",\n \"&TCC_EA_ATOMIC_LEVEL[15]\",\n \"&TCC_EA_ATOMIC_LEVEL[16]\",\n \"&TCC_EA_ATOMIC_LEVEL[17]\",\n \"&TCC_EA_ATOMIC_LEVEL[18]\",\n \"&TCC_EA_ATOMIC_LEVEL[19]\",\n \"&TCC_EA_ATOMIC_LEVEL[20]\",\n \"&TCC_EA_ATOMIC_LEVEL[21]\",\n \"&TCC_EA_ATOMIC_LEVEL[22]\",\n \"&TCC_EA_ATOMIC_LEVEL[23]\",\n \"&TCC_EA_ATOMIC_LEVEL[24]\",\n \"&TCC_EA_ATOMIC_LEVEL[25]\",\n \"&TCC_EA_ATOMIC_LEVEL[26]\",\n \"&TCC_EA_ATOMIC_LEVEL[27]\",\n \"&TCC_EA_ATOMIC_LEVEL[28]\",\n \"&TCC_EA_ATOMIC_LEVEL[29]\",\n \"&TCC_EA_ATOMIC_LEVEL[30]\",\n \"&TCC_EA_ATOMIC_LEVEL[31]\"\n ]\n },\n {\n \"$add\":[\n \"&TCC_EA_ATOMIC[0]\",\n \"&TCC_EA_ATOMIC[1]\",\n \"&TCC_EA_ATOMIC[2]\",\n \"&TCC_EA_ATOMIC[3]\",\n \"&TCC_EA_ATOMIC[4]\",\n \"&TCC_EA_ATOMIC[5]\",\n \"&TCC_EA_ATOMIC[6]\",\n \"&TCC_EA_ATOMIC[7]\",\n \"&TCC_EA_ATOMIC[8]\",\n \"&TCC_EA_ATOMIC[9]\",\n \"&TCC_EA_ATOMIC[10]\",\n \"&TCC_EA_ATOMIC[11]\",\n \"&TCC_EA_ATOMIC[12]\",\n \"&TCC_EA_ATOMIC[13]\",\n \"&TCC_EA_ATOMIC[14]\",\n \"&TCC_EA_ATOMIC[15]\",\n \"&TCC_EA_ATOMIC[16]\",\n \"&TCC_EA_ATOMIC[17]\",\n \"&TCC_EA_ATOMIC[18]\",\n \"&TCC_EA_ATOMIC[19]\",\n \"&TCC_EA_ATOMIC[20]\",\n \"&TCC_EA_ATOMIC[21]\",\n \"&TCC_EA_ATOMIC[22]\",\n \"&TCC_EA_ATOMIC[23]\",\n \"&TCC_EA_ATOMIC[24]\",\n \"&TCC_EA_ATOMIC[25]\",\n \"&TCC_EA_ATOMIC[26]\",\n \"&TCC_EA_ATOMIC[27]\",\n \"&TCC_EA_ATOMIC[28]\",\n \"&TCC_EA_ATOMIC[29]\",\n \"&TCC_EA_ATOMIC[30]\",\n \"&TCC_EA_ATOMIC[31]\"\n ]\n }\n ]},\n null\n ]\n }\n },\n \"stdDev_eaAtomic_lat\": {\n \"$stdDevPop\":{\n \"$cond\": [\n {\"$ne\": [\n {\n \"$add\":[\n \"&TCC_EA_ATOMIC[0]\",\n \"&TCC_EA_ATOMIC[1]\",\n \"&TCC_EA_ATOMIC[2]\",\n \"&TCC_EA_ATOMIC[3]\",\n \"&TCC_EA_ATOMIC[4]\",\n \"&TCC_EA_ATOMIC[5]\",\n \"&TCC_EA_ATOMIC[6]\",\n \"&TCC_EA_ATOMIC[7]\",\n \"&TCC_EA_ATOMIC[8]\",\n \"&TCC_EA_ATOMIC[9]\",\n \"&TCC_EA_ATOMIC[10]\",\n \"&TCC_EA_ATOMIC[11]\",\n \"&TCC_EA_ATOMIC[12]\",\n \"&TCC_EA_ATOMIC[13]\",\n \"&TCC_EA_ATOMIC[14]\",\n \"&TCC_EA_ATOMIC[15]\",\n \"&TCC_EA_ATOMIC[16]\",\n \"&TCC_EA_ATOMIC[17]\",\n \"&TCC_EA_ATOMIC[18]\",\n \"&TCC_EA_ATOMIC[19]\",\n \"&TCC_EA_ATOMIC[20]\",\n \"&TCC_EA_ATOMIC[21]\",\n \"&TCC_EA_ATOMIC[22]\",\n \"&TCC_EA_ATOMIC[23]\",\n \"&TCC_EA_ATOMIC[24]\",\n \"&TCC_EA_ATOMIC[25]\",\n \"&TCC_EA_ATOMIC[26]\",\n \"&TCC_EA_ATOMIC[27]\",\n \"&TCC_EA_ATOMIC[28]\",\n \"&TCC_EA_ATOMIC[29]\",\n \"&TCC_EA_ATOMIC[30]\",\n \"&TCC_EA_ATOMIC[31]\"\n ]\n },\n 0\n ]},\n {\"$divide\": [\n {\n \"$add\":[\n \"&TCC_EA_ATOMIC_LEVEL[0]\",\n \"&TCC_EA_ATOMIC_LEVEL[1]\",\n \"&TCC_EA_ATOMIC_LEVEL[2]\",\n \"&TCC_EA_ATOMIC_LEVEL[3]\",\n \"&TCC_EA_ATOMIC_LEVEL[4]\",\n \"&TCC_EA_ATOMIC_LEVEL[5]\",\n \"&TCC_EA_ATOMIC_LEVEL[6]\",\n \"&TCC_EA_ATOMIC_LEVEL[7]\",\n \"&TCC_EA_ATOMIC_LEVEL[8]\",\n \"&TCC_EA_ATOMIC_LEVEL[9]\",\n \"&TCC_EA_ATOMIC_LEVEL[10]\",\n \"&TCC_EA_ATOMIC_LEVEL[11]\",\n \"&TCC_EA_ATOMIC_LEVEL[12]\",\n \"&TCC_EA_ATOMIC_LEVEL[13]\",\n \"&TCC_EA_ATOMIC_LEVEL[14]\",\n \"&TCC_EA_ATOMIC_LEVEL[15]\",\n \"&TCC_EA_ATOMIC_LEVEL[16]\",\n \"&TCC_EA_ATOMIC_LEVEL[17]\",\n \"&TCC_EA_ATOMIC_LEVEL[18]\",\n \"&TCC_EA_ATOMIC_LEVEL[19]\",\n \"&TCC_EA_ATOMIC_LEVEL[20]\",\n \"&TCC_EA_ATOMIC_LEVEL[21]\",\n \"&TCC_EA_ATOMIC_LEVEL[22]\",\n \"&TCC_EA_ATOMIC_LEVEL[23]\",\n \"&TCC_EA_ATOMIC_LEVEL[24]\",\n \"&TCC_EA_ATOMIC_LEVEL[25]\",\n \"&TCC_EA_ATOMIC_LEVEL[26]\",\n \"&TCC_EA_ATOMIC_LEVEL[27]\",\n \"&TCC_EA_ATOMIC_LEVEL[28]\",\n \"&TCC_EA_ATOMIC_LEVEL[29]\",\n \"&TCC_EA_ATOMIC_LEVEL[30]\",\n \"&TCC_EA_ATOMIC_LEVEL[31]\"\n ]\n },\n {\n \"$add\":[\n \"&TCC_EA_ATOMIC[0]\",\n \"&TCC_EA_ATOMIC[1]\",\n \"&TCC_EA_ATOMIC[2]\",\n \"&TCC_EA_ATOMIC[3]\",\n \"&TCC_EA_ATOMIC[4]\",\n \"&TCC_EA_ATOMIC[5]\",\n \"&TCC_EA_ATOMIC[6]\",\n \"&TCC_EA_ATOMIC[7]\",\n \"&TCC_EA_ATOMIC[8]\",\n \"&TCC_EA_ATOMIC[9]\",\n \"&TCC_EA_ATOMIC[10]\",\n \"&TCC_EA_ATOMIC[11]\",\n \"&TCC_EA_ATOMIC[12]\",\n \"&TCC_EA_ATOMIC[13]\",\n \"&TCC_EA_ATOMIC[14]\",\n \"&TCC_EA_ATOMIC[15]\",\n \"&TCC_EA_ATOMIC[16]\",\n \"&TCC_EA_ATOMIC[17]\",\n \"&TCC_EA_ATOMIC[18]\",\n \"&TCC_EA_ATOMIC[19]\",\n \"&TCC_EA_ATOMIC[20]\",\n \"&TCC_EA_ATOMIC[21]\",\n \"&TCC_EA_ATOMIC[22]\",\n \"&TCC_EA_ATOMIC[23]\",\n \"&TCC_EA_ATOMIC[24]\",\n \"&TCC_EA_ATOMIC[25]\",\n \"&TCC_EA_ATOMIC[26]\",\n \"&TCC_EA_ATOMIC[27]\",\n \"&TCC_EA_ATOMIC[28]\",\n \"&TCC_EA_ATOMIC[29]\",\n \"&TCC_EA_ATOMIC[30]\",\n \"&TCC_EA_ATOMIC[31]\"\n ]\n }\n ]},\n null\n ]\n }\n },\n \"mean_ea_read_stall_io_credit\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_ea_read_stall_io_credit\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_ea_read_stall_io_credit\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_ea_read_stall_io_credit\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_ea_read_stall_gmi_credit\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_ea_read_stall_gmi_credit\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_ea_read_stall_gmi_credit\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_ea_read_stall_gmi_credit\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_ea_read_stall_dram_credit\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_ea_read_stall_dram_credit\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_ea_read_stall_dram_credit\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_ea_read_stall_dram_credit\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_ea_write_stall_io_credit\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_ea_write_stall_io_credit\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_ea_write_stall_io_credit\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_ea_write_stall_io_credit\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_ea_write_stall_gmi_credit\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_ea_write_stall_gmi_credit\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_ea_write_stall_gmi_credit\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_ea_write_stall_gmi_credit\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_ea_write_stall_dram_credit\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_ea_write_stall_dram_credit\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_ea_write_stall_dram_credit\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_ea_write_stall_dram_credit\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[0]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[1]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[2]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[3]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[4]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[5]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[6]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[7]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[8]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[9]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[10]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[11]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[12]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[13]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[14]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[15]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[16]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[17]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[18]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[19]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[20]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[21]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[22]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[23]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[24]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[25]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[26]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[27]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[28]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[29]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[30]\"},\n {\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"mean_ea_write_stall_too_many\": {\n \"$avg\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[0]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[1]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[2]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[3]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[4]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[5]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[6]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[7]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[8]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[9]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[10]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[11]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[12]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[13]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[14]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[15]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[16]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[17]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[18]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[19]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[20]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[21]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[22]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[23]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[24]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[25]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[26]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[27]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[28]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[29]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[30]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"min_ea_write_stall_too_many\": {\n \"$min\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[0]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[1]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[2]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[3]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[4]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[5]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[6]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[7]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[8]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[9]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[10]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[11]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[12]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[13]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[14]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[15]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[16]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[17]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[18]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[19]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[20]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[21]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[22]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[23]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[24]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[25]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[26]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[27]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[28]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[29]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[30]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"max_ea_write_stall_too_many\": {\n \"$max\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[0]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[1]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[2]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[3]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[4]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[5]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[6]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[7]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[8]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[9]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[10]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[11]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[12]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[13]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[14]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[15]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[16]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[17]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[18]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[19]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[20]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[21]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[22]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[23]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[24]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[25]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[26]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[27]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[28]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[29]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[30]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n },\n \"stdDev_ea_write_stall_too_many\": {\n \"$stdDevPop\":{\n \"$divide\": [\n {\n \"$divide\": [\n {\n \"$add\": [\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[0]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[1]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[2]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[3]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[4]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[5]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[6]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[7]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[8]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[9]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[10]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[11]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[12]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[13]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[14]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[15]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[16]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[17]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[18]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[19]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[20]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[21]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[22]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[23]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[24]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[25]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[26]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[27]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[28]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[29]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[30]\"},\n {\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[31]\"}\n ]\n },\n 32\n ]\n },\n \"&denom\"\n ] \n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"Metric\": \"L2 Cache Hit Rate\",\n \"Mean\": \"&mean_hit_rate\",\n \"Std Dev\": \"&stdDev_hit_rate\",\n \"Min\": \"&min_hit_rate\",\n \"Max\": \"&max_hit_rate\",\n \"Units\": \"pct\"\n },\n {\n \"Metric\": \"Req\",\n \"Mean\": \"&mean_req\",\n \"Std Dev\": \"&stdDev_req\",\n \"Min\": \"&min_req\",\n \"Max\": \"&max_req\",\n \"Units\": $normUnit\n },\n {\n \"Metric\": \"L1 - L2 Read Req\",\n \"Mean\": \"&mean_read_req\",\n \"Std Dev\": \"&stdDev_read_req\",\n \"Min\": \"&min_read_req\",\n \"Max\": \"&max_read_req\",\n \"Units\": $normUnit\n },\n {\n \"Metric\": \"L1 - L2 Write Req\",\n \"Mean\": \"&mean_write_req\",\n \"Std Dev\": \"&stdDev_write_req\",\n \"Min\": \"&min_write_req\",\n \"Max\": \"&max_write_req\",\n \"Units\": $normUnit\n },\n {\n \"Metric\": \"L1 - L2 Atomic Req\",\n \"Mean\": \"&mean_atomic_req\",\n \"Std Dev\": \"&stdDev_atomic_req\",\n \"Min\": \"&min_atomic_req\",\n \"Max\": \"&max_atomic_req\",\n \"Units\": $normUnit\n },\n {\n \"Metric\": \"L2 - EA Read Req\",\n \"Mean\": \"&mean_eaRead_req\",\n \"Std Dev\": \"&stdDev_eaRead_req\",\n \"Min\": \"&min_eaRead_req\",\n \"Max\": \"&max_eaRead_req\",\n \"Units\": $normUnit\n },\n {\n \"Metric\": \"L2 - EA Write Req\", \n \"Mean\": \"&mean_eaWrite_req\",\n \"Std Dev\": \"&stdDev_eaWrite_req\",\n \"Min\": \"&min_eaWrite_req\",\n \"Max\": \"&max_eaWrite_req\",\n \"Units\": $normUnit\n },\n {\n \"Metric\": \"L2 - EA Atomic Req\",\n \"Mean\": \"&mean_eaAtomic_req\",\n \"Std Dev\": \"&stdDev_eaAtomic_req\",\n \"Min\": \"&min_eaAtomic_req\",\n \"Max\": \"&max_eaAtomic_req\",\n \"Units\": $normUnit\n },\n {\n \"Metric\": \"L2 - EA Read Lat\",\n \"Mean\": \"&mean_eaRead_lat\",\n \"Std Dev\": \"&stdDev_eaRead_lat\",\n \"Min\": \"&min_eaRead_lat\",\n \"Max\": \"&max_eaRead_lat\",\n \"Units\": \"Cycles\"\n },\n {\n \"Metric\": \"L2 - EA Write Lat\",\n \"Mean\": \"&mean_eaWrite_lat\",\n \"Std Dev\": \"&stdDev_eaWrite_lat\",\n \"Min\": \"&min_eaWrite_lat\",\n \"Max\": \"&max_eaWrite_lat\",\n \"Units\": \"Cycles\"\n },\n {\n \"Metric\": \"L2 - EA Atomic Lat\",\n \"Mean\": \"&mean_eaAtomic_lat\",\n \"Std Dev\": \"&stdDev_eaAtomic_lat\",\n \"Min\": \"&min_eaAtomic_lat\",\n \"Max\": \"&max_eaAtomic_lat\",\n \"Units\": \"Cycles\"\n },\n {\n \"Metric\": \"L2 - EA Read Stall (IO)\",\n \"Mean\": \"&mean_ea_read_stall_io_credit\",\n \"Std Dev\": \"&stdDev_ea_read_stall_io_credit\",\n \"Min\": \"&min_ea_read_stall_io_credit\",\n \"Max\": \"&max_ea_read_stall_io_credit\",\n \"Units\": {\"$concat\": [\"Cycles \", $normUnit] }\n },\n {\n \"Metric\": \"L2 - EA Read Stall (GMI)\",\n \"Mean\": \"&mean_ea_read_stall_gmi_credit\",\n \"Std Dev\": \"&stdDev_ea_read_stall_gmi_credit\",\n \"Min\": \"&min_ea_read_stall_gmi_credit\",\n \"Max\": \"&max_ea_read_stall_gmi_credit\",\n \"Units\": {\"$concat\": [\"Cycles \", $normUnit] }\n },\n {\n \"Metric\": \"L2 - EA Read Stall (DRAM)\",\n \"Mean\": \"&mean_ea_read_stall_dram_credit\",\n \"Std Dev\": \"&stdDev_ea_read_stall_dram_credit\",\n \"Min\": \"&min_ea_read_stall_dram_credit\",\n \"Max\": \"&max_ea_read_stall_dram_credit\",\n \"Units\": {\"$concat\": [\"Cycles \", $normUnit] }\n },\n {\n \"Metric\": \"L2 - EA Write Stall (IO)\",\n \"Mean\": \"&mean_ea_write_stall_io_credit\",\n \"Std Dev\": \"&stdDev_ea_write_stall_io_credit\",\n \"Min\": \"&min_ea_write_stall_io_credit\",\n \"Max\": \"&max_ea_write_stall_io_credit\",\n \"Units\": {\"$concat\": [\"Cycles \", $normUnit] }\n },\n {\n \"Metric\": \"L2 - EA Write Stall (GMI)\",\n \"Mean\": \"&mean_ea_write_stall_gmi_credit\",\n \"Std Dev\": \"&stdDev_ea_write_stall_gmi_credit\",\n \"Min\": \"&min_ea_write_stall_gmi_credit\",\n \"Max\": \"&max_ea_write_stall_gmi_credit\",\n \"Units\": {\"$concat\": [\"Cycles \", $normUnit] }\n },\n {\n \"Metric\": \"L2 - EA Write Stall (DRAM)\",\n \"Mean\": \"&mean_ea_write_stall_dram_credit\",\n \"Std Dev\": \"&stdDev_ea_write_stall_dram_credit\",\n \"Min\": \"&min_ea_write_stall_dram_credit\",\n \"Max\": \"&max_ea_write_stall_dram_credit\",\n \"Units\": {\"$concat\": [\"Cycles \", $normUnit] }\n },\n {\n \"Metric\": \"L2 - EA Write Starve\",\n \"Mean\": \"&mean_ea_write_stall_too_many\",\n \"Std Dev\": \"&stdDev_ea_write_stall_too_many\",\n \"Min\": \"&min_ea_write_stall_too_many\",\n \"Max\": \"&max_ea_write_stall_too_many\",\n \"Units\": {\"$concat\": [\"Cycles \", $normUnit] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "type": "table" - } - ], - "title": "Aggregate Stats (All 32 channels)", - "transformations": [], - "type": "table" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLimitValue": 100, - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineValue": 105, - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": true, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "light", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:850", - "Col": 1, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Hit Rate", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "description": "", - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 356 - }, - "id": 87, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 Cache Hit Rate (Percent) (Channel 0 - 15) ", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLimitValue": 100, - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineValue": 105, - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": true, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "light", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:850", - "Col": 1, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Hit Rate", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "description": "", - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 356 - }, - "id": 92, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "Cache Hit Rate % (Channel 16 - 31) ", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 80, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:565", - "Col": 3, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Read Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 364 - }, - "id": 81, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L1 - L2 Read Requests(Channel 0-15) : $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:656", - "Col": 3, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Read Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 364 - }, - "id": 82, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L1 - L 2 Read Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 80, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:697", - "Col": 4, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Write Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 372 - }, - "id": 83, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L1 - L2 Write Requests (Channel 0-15): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 0, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:750", - "Col": 4, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "Write Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 372 - }, - "id": 84, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L1 - L2 Write Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLimitValue": 100, - "HighLmitLineWidth": 1, - "HighSideMargin": 0, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "100%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 80, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineValue": 105, - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": true, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:791", - "Col": 5, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "AtomicReq", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 380 - }, - "id": 85, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L1 - L2 Atomic Requests (Channel 0-15): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLimitValue": 100, - "HighLmitLineWidth": 1, - "HighSideMargin": 0, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "100%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 80, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineValue": 105, - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": true, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:791", - "Col": 5, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "AtomicReq", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 380 - }, - "id": 91, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L1 - L2 Atomic Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 6, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 388 - }, - "id": 189, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Read Requests (Channel 0 - 15) : $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:341", - "Col": 6, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 388 - }, - "id": 195, - "maxDataPoints": 10, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Read Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 7, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 396 - }, - "id": 191, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Requests (Channel 0 - 15) : $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:341", - "Col": 7, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Req", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 396 - }, - "id": 197, - "maxDataPoints": 10, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 8, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA AtomicReq", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 404 - }, - "id": 193, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Atomic Request (Channel 0 - 15): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": false, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 2, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:341", - "Col": 8, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA AtomicReq", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 404 - }, - "id": 199, - "maxDataPoints": 10, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Atomic Requests (Channel 16-31): $normUnit", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupColName": "", - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 9, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Lat - cycles", - "Selected": true - } - ], - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 412 - }, - "hideTimeOverride": false, - "id": 68, - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"b0_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[0]\", \"&TCC_MISS[0]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[0]\"]}, \n { \"$add\": [\"&TCC_HIT[0]\", \"&TCC_MISS[0]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b0_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[0]\"}, \"&denom\"] } \n },\n \"b0_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[0]\"}, \"&denom\"] } \n },\n \"b0_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[0]\"}, \"&denom\"] } \n },\n \"b0_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[0]\"}, \"&denom\"] } \n },\n \"b0_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[0]\"}, \"&denom\"] }\n },\n \"b0_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[0]\"}, \"&denom\"] } \n },\n \"b0_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[0]\"}, \"&denom\"] } \n },\n\n \"b0_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[0]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[0]\", \"&TCC_EA_RDREQ[0]\"]}, null] } },\n \"b0_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[0]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[0]\", \"&TCC_EA_WRREQ[0]\"]}, null] } },\n \"b0_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[0]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[0]\", \"&TCC_EA_ATOMIC[0]\"]}, null]}},\n\n \"b0_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[0]\"}, \"&denom\"] }},\n \"b0_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[0]\"}, \"&denom\"] }},\n\n \n \"b1_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[1]\", \"&TCC_MISS[1]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[1]\"]}, \n { \"$add\": [\"&TCC_HIT[1]\", \"&TCC_MISS[1]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b1_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[1]\"}, \"&denom\"] } \n },\n \"b1_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[1]\"}, \"&denom\"] } \n },\n \"b1_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[1]\"}, \"&denom\"] } \n },\n \"b1_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[1]\"}, \"&denom\"] } \n },\n \"b1_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[1]\"}, \"&denom\"] }\n },\n \"b1_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[1]\"}, \"&denom\"] } \n },\n \"b1_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[1]\"}, \"&denom\"] } \n },\n \"b1_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[1]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[1]\", \"&TCC_EA_RDREQ[1]\"]}, null] } },\n \"b1_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[1]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[1]\", \"&TCC_EA_WRREQ[1]\"]}, null] } },\n \"b1_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[1]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[1]\", \"&TCC_EA_ATOMIC[1]\"]}, null]}},\n\n \"b1_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[1]\"}, \"&denom\"] }},\n \"b1_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[1]\"}, \"&denom\"] }},\n\n\n \"b2_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[2]\", \"&TCC_MISS[2]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[2]\"]}, \n { \"$add\": [\"&TCC_HIT[2]\", \"&TCC_MISS[2]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b2_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[2]\"}, \"&denom\"] }\n },\n \"b2_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[2]\"}, \"&denom\"] } \n },\n \"b2_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[2]\"}, \"&denom\"] }\n },\n \"b2_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[2]\"}, \"&denom\"] }\n },\n \"b2_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[2]\"}, \"&denom\"] }\n },\n \"b2_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[2]\"}, \"&denom\"] }\n },\n \"b2_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[2]\"}, \"&denom\"] }\n },\n \"b2_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[2]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[2]\", \"&TCC_EA_RDREQ[2]\"]}, null] } },\n \"b2_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[2]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[2]\", \"&TCC_EA_WRREQ[2]\"]}, null] } },\n \"b2_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[2]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[2]\", \"&TCC_EA_ATOMIC[2]\"]}, null]}},\n\n \"b2_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[2]\"}, \"&denom\"] }},\n \"b2_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[2]\"}, \"&denom\"] }},\n\n\n \n \"b3_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[3]\", \"&TCC_MISS[3]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[3]\"]}, \n { \"$add\": [\"&TCC_HIT[3]\", \"&TCC_MISS[3]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b3_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[3]\"}, \"&denom\"] } \n },\n \"b3_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[3]\"}, \"&denom\"] } \n },\n \"b3_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[3]\"}, \"&denom\"] }\n },\n \"b3_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[3]\"}, \"&denom\"] }\n },\n \"b3_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[3]\"}, \"&denom\"] }\n },\n \"b3_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[3]\"}, \"&denom\"] }\n },\n \"b3_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[3]\"}, \"&denom\"] } \n },\n \"b3_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[3]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[3]\", \"&TCC_EA_RDREQ[3]\"]}, null] } },\n \"b3_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[3]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[3]\", \"&TCC_EA_WRREQ[3]\"]}, null] } },\n \"b3_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[3]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[3]\", \"&TCC_EA_ATOMIC[3]\"]}, null]}},\n\n \"b3_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[3]\"}, \"&denom\"] }},\n \"b3_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[3]\"}, \"&denom\"] }},\n\n\n \n \"b4_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[4]\", \"&TCC_MISS[4]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[4]\"]}, \n { \"$add\": [\"&TCC_HIT[4]\", \"&TCC_MISS[4]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b4_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[4]\"}, \"&denom\"] } \n },\n \"b4_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[4]\"}, \"&denom\"] } \n },\n \"b4_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[4]\"}, \"&denom\"] }\n },\n \"b4_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[4]\"}, \"&denom\"] } \n },\n \"b4_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[4]\"}, \"&denom\"] } \n },\n \"b4_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[4]\"}, \"&denom\"] } \n },\n \"b4_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[4]\"}, \"&denom\"] } \n },\n \"b4_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[4]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[4]\", \"&TCC_EA_RDREQ[4]\"]}, null] } },\n \"b4_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[4]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[4]\", \"&TCC_EA_WRREQ[4]\"]}, null] } },\n \"b4_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[4]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[4]\", \"&TCC_EA_ATOMIC[4]\"]}, null]}},\n\n \"b4_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[4]\"}, \"&denom\"] }},\n \"b4_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[4]\"}, \"&denom\"] }},\n\n\n \n \"b5_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[5]\", \"&TCC_MISS[5]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[5]\"]}, \n { \"$add\": [\"&TCC_HIT[5]\", \"&TCC_MISS[5]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b5_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[5]\"}, \"&denom\"] } \n },\n \"b5_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[5]\"}, \"&denom\"] } \n },\n \"b5_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[5]\"}, \"&denom\"] } \n },\n \"b5_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[5]\"}, \"&denom\"] } \n },\n \"b5_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[5]\"}, \"&denom\"] } \n },\n \"b5_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[5]\"}, \"&denom\"] } \n },\n \"b5_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[5]\"}, \"&denom\"] } \n },\n \"b5_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[5]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[5]\", \"&TCC_EA_RDREQ[5]\"]}, null] } },\n \"b5_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[5]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[5]\", \"&TCC_EA_WRREQ[5]\"]}, null] } },\n \"b5_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[5]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[5]\", \"&TCC_EA_ATOMIC[5]\"]}, null]}},\n\n \"b5_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[5]\"}, \"&denom\"] }},\n \"b5_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[5]\"}, \"&denom\"] }},\n\n\n \n \"b6_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[6]\", \"&TCC_MISS[6]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[6]\"]}, \n { \"$add\": [\"&TCC_HIT[6]\", \"&TCC_MISS[6]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b6_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[6]\"}, \"&denom\"] } \n },\n \"b6_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[6]\"}, \"&denom\"] } \n },\n \"b6_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[6]\"}, \"&denom\"] } \n },\n \"b6_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[6]\"}, \"&denom\"] } \n },\n \"b6_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[6]\"}, \"&denom\"] } \n },\n \"b6_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[6]\"}, \"&denom\"] }\n },\n \"b6_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[6]\"}, \"&denom\"] } \n },\n \"b6_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[6]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[6]\", \"&TCC_EA_RDREQ[6]\"]}, null] } },\n \"b6_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[6]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[6]\", \"&TCC_EA_WRREQ[6]\"]}, null] } },\n \"b6_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[6]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[6]\", \"&TCC_EA_ATOMIC[6]\"]}, null]}},\n\n \"b6_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[6]\"}, \"&denom\"] }},\n \"b6_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[6]\"}, \"&denom\"] }},\n\n\n \n \"b7_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[7]\", \"&TCC_MISS[7]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[7]\"]}, \n { \"$add\": [\"&TCC_HIT[7]\", \"&TCC_MISS[7]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b7_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[7]\"}, \"&denom\"] } \n },\n \"b7_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[7]\"}, \"&denom\"] } \n },\n \"b7_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[7]\"}, \"&denom\"] } \n },\n \"b7_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[7]\"}, \"&denom\"] } \n },\n \"b7_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[7]\"}, \"&denom\"] } \n },\n \"b7_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[7]\"}, \"&denom\"] }\n },\n \"b7_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[7]\"}, \"&denom\"] } \n },\n \"b7_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[7]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[7]\", \"&TCC_EA_RDREQ[7]\"]}, null] } },\n \"b7_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[7]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[7]\", \"&TCC_EA_WRREQ[7]\"]}, null] } },\n \"b7_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[7]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[7]\", \"&TCC_EA_ATOMIC[7]\"]}, null]}},\n\n \"b7_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[7]\"}, \"&denom\"] }},\n \"b7_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[7]\"}, \"&denom\"] }},\n\n\n \n \"b8_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[8]\", \"&TCC_MISS[8]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[8]\"]}, \n { \"$add\": [\"&TCC_HIT[8]\", \"&TCC_MISS[8]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b8_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[8]\"}, \"&denom\"] } \n },\n \"b8_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[8]\"}, \"&denom\"] } \n },\n \"b8_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[8]\"}, \"&denom\"] } \n },\n \"b8_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[8]\"}, \"&denom\"] } \n },\n \"b8_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[8]\"}, \"&denom\"] } \n },\n \"b8_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[8]\"}, \"&denom\"] } \n },\n \"b8_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[8]\"}, \"&denom\"] } \n },\n \"b8_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[8]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[8]\", \"&TCC_EA_RDREQ[8]\"]}, null] } },\n \"b8_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[8]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[8]\", \"&TCC_EA_WRREQ[8]\"]}, null] } },\n \"b8_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[8]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[8]\", \"&TCC_EA_ATOMIC[8]\"]}, null]}},\n\n \"b8_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[8]\"}, \"&denom\"] }},\n \"b8_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[8]\"}, \"&denom\"] }},\n\n\n \n \"b9_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[9]\", \"&TCC_MISS[9]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[9]\"]}, \n { \"$add\": [\"&TCC_HIT[9]\", \"&TCC_MISS[9]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b9_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[9]\"}, \"&denom\"] } \n },\n \"b9_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[9]\"}, \"&denom\"] } \n },\n \"b9_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[9]\"}, \"&denom\"] } \n },\n \"b9_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[9]\"}, \"&denom\"] } \n },\n \"b9_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[9]\"}, \"&denom\"] } \n },\n \"b9_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[9]\"}, \"&denom\"] } \n },\n \"b9_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[9]\"}, \"&denom\"] } \n },\n \"b9_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[9]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[9]\", \"&TCC_EA_RDREQ[9]\"]}, null] } },\n \"b9_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[9]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[9]\", \"&TCC_EA_WRREQ[9]\"]}, null] } },\n \"b9_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[9]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[9]\", \"&TCC_EA_ATOMIC[9]\"]}, null]}},\n\n \"b9_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[9]\"}, \"&denom\"] }},\n \"b9_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[9]\"}, \"&denom\"] }},\n\n\n \n \"b10_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[10]\", \"&TCC_MISS[10]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[10]\"]}, \n { \"$add\": [\"&TCC_HIT[10]\", \"&TCC_MISS[10]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b10_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[10]\"}, \"&denom\"] } \n },\n \"b10_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[10]\"}, \"&denom\"] } \n },\n \"b10_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[10]\"}, \"&denom\"] } \n },\n \"b10_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[10]\"}, \"&denom\"] } \n },\n \"b10_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[10]\"}, \"&denom\"] } \n },\n \"b10_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[10]\"}, \"&denom\"] } \n },\n \"b10_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[10]\"}, \"&denom\"] } \n },\n \"b10_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[10]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[10]\", \"&TCC_EA_RDREQ[10]\"]}, null] } },\n \"b10_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[10]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[10]\", \"&TCC_EA_WRREQ[10]\"]}, null] } },\n \"b10_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[10]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[10]\", \"&TCC_EA_ATOMIC[10]\"]}, null]}},\n\n \"b10_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[10]\"}, \"&denom\"] }},\n \"b10_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[10]\"}, \"&denom\"] }},\n\n\n \n \"b11_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[11]\", \"&TCC_MISS[11]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[11]\"]}, \n { \"$add\": [\"&TCC_HIT[11]\", \"&TCC_MISS[11]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b11_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[11]\"}, \"&denom\"] } \n },\n \"b11_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[11]\"}, \"&denom\"] } \n },\n \"b11_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[11]\"}, \"&denom\"] } \n },\n \"b11_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[11]\"}, \"&denom\"] } \n },\n \"b11_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[11]\"}, \"&denom\"] } \n },\n \"b11_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[11]\"}, \"&denom\"] } \n },\n \"b11_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[11]\"}, \"&denom\"] } \n },\n \"b11_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[11]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[11]\", \"&TCC_EA_RDREQ[11]\"]}, null] } },\n \"b11_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[11]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[11]\", \"&TCC_EA_WRREQ[11]\"]}, null] } },\n \"b11_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[11]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[11]\", \"&TCC_EA_ATOMIC[11]\"]}, null]}},\n\n \"b11_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[11]\"}, \"&denom\"] }},\n \"b11_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[11]\"}, \"&denom\"] }},\n\n\n \n \"b12_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[12]\", \"&TCC_MISS[12]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[12]\"]}, \n { \"$add\": [\"&TCC_HIT[12]\", \"&TCC_MISS[12]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b12_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[12]\"}, \"&denom\"] } \n },\n \"b12_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[12]\"}, \"&denom\"] } \n },\n \"b12_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[12]\"}, \"&denom\"] } \n },\n \"b12_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[12]\"}, \"&denom\"] } \n },\n \"b12_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[12]\"}, \"&denom\"] } \n },\n \"b12_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[12]\"}, \"&denom\"] } \n },\n \"b12_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[12]\"}, \"&denom\"] } \n },\n \"b12_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[12]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[12]\", \"&TCC_EA_RDREQ[12]\"]}, null] } },\n \"b12_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[12]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[12]\", \"&TCC_EA_WRREQ[12]\"]}, null] } },\n \"b12_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[12]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[12]\", \"&TCC_EA_ATOMIC[12]\"]}, null]}},\n\n \"b12_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[12]\"}, \"&denom\"] }},\n \"b12_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[12]\"}, \"&denom\"] }},\n\n\n \n \"b13_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[13]\", \"&TCC_MISS[13]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[13]\"]}, \n { \"$add\": [\"&TCC_HIT[13]\", \"&TCC_MISS[13]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b13_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[13]\"}, \"&denom\"] } \n },\n \"b13_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[13]\"}, \"&denom\"] } \n },\n \"b13_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[13]\"}, \"&denom\"] } \n },\n \"b13_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[13]\"}, \"&denom\"] } \n },\n \"b13_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[13]\"}, \"&denom\"] } \n },\n \"b13_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[13]\"}, \"&denom\"] }\n },\n \"b13_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[13]\"}, \"&denom\"] } \n },\n \"b13_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[13]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[13]\", \"&TCC_EA_RDREQ[13]\"]}, null] } },\n \"b13_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[13]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[13]\", \"&TCC_EA_WRREQ[13]\"]}, null] } },\n \"b13_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[13]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[13]\", \"&TCC_EA_ATOMIC[13]\"]}, null]}},\n\n \"b13_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[13]\"}, \"&denom\"] }},\n \"b13_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[13]\"}, \"&denom\"] }},\n\n\n \n \"b14_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[14]\", \"&TCC_MISS[14]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[14]\"]}, \n { \"$add\": [\"&TCC_HIT[14]\", \"&TCC_MISS[14]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b14_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[14]\"}, \"&denom\"] } \n },\n \"b14_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[14]\"}, \"&denom\"] } \n },\n \"b14_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[14]\"}, \"&denom\"] } \n },\n \"b14_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[14]\"}, \"&denom\"] } \n },\n \"b14_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[14]\"}, \"&denom\"] } \n },\n \"b14_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[14]\"}, \"&denom\"] } \n },\n \"b14_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[14]\"}, \"&denom\"] } \n },\n \"b14_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[14]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[14]\", \"&TCC_EA_RDREQ[14]\"]}, null] } },\n \"b14_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[14]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[14]\", \"&TCC_EA_WRREQ[14]\"]}, null] } },\n \"b14_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[14]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[14]\", \"&TCC_EA_ATOMIC[14]\"]}, null]}},\n\n \"b14_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[14]\"}, \"&denom\"] }},\n \"b14_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[14]\"}, \"&denom\"] }},\n\n\n \n \"b15_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[15]\", \"&TCC_MISS[15]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[15]\"]}, \n { \"$add\": [\"&TCC_HIT[15]\", \"&TCC_MISS[15]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b15_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[15]\"}, \"&denom\"] } \n },\n \"b15_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[15]\"}, \"&denom\"] } \n },\n \"b15_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[15]\"}, \"&denom\"] } \n },\n \"b15_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[15]\"}, \"&denom\"] } \n },\n \"b15_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[15]\"}, \"&denom\"] } \n },\n \"b15_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[15]\"}, \"&denom\"] } \n },\n \"b15_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[15]\"}, \"&denom\"] }\n },\n \"b15_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[15]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[15]\", \"&TCC_EA_RDREQ[15]\"]}, null] } },\n \"b15_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[15]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[15]\", \"&TCC_EA_WRREQ[15]\"]}, null] } },\n \"b15_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[15]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[15]\", \"&TCC_EA_ATOMIC[15]\"]}, null]}},\n\n \"b15_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[15]\"}, \"&denom\"] }},\n \"b15_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[15]\"}, \"&denom\"] }}\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Channel\": \"0\",\n \"Hit Rate\": \"&b0_hitRate\",\n \"Req\": \"&b0_req\",\n \"Read Req\": \"&b0_readReq\",\n \"Write Req\": \"&b0_writeReq\",\n \"AtomicReq\": \"&b0_atomicReq\",\n \"EA Read Req\": \"&b0_eaReadReq\",\n \"EA Write Req\": \"&b0_eaWriteReq\",\n \"EA AtomicReq\": \"&b0_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b0_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b0_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b0_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b0_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b0_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b0_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b0_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b0_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b0_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b0_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n },\n {\n \"Channel\": \"1\",\n \"Hit Rate\": \"&b1_hitRate\",\n \"Req\": \"&b1_req\",\n \"Read Req\": \"&b1_readReq\",\n \"Write Req\": \"&b1_writeReq\",\n \"AtomicReq\": \"&b1_atomicReq\",\n \"EA Read Req\": \"&b1_eaReadReq\",\n \"EA Write Req\": \"&b1_eaWriteReq\",\n \"EA AtomicReq\": \"&b1_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b1_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b1_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b1_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b1_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b1_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b1_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b1_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b1_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b1_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b1_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n },\n {\n \"Channel\": \"2\",\n \"Hit Rate\": \"&b2_hitRate\",\n \"Req\": \"&b2_req\",\n \"Read Req\": \"&b2_readReq\",\n \"Write Req\": \"&b2_writeReq\",\n \"AtomicReq\": \"&b2_atomicReq\",\n \"EA Read Req\": \"&b2_eaReadReq\",\n \"EA Write Req\": \"&b2_eaWriteReq\",\n \"EA AtomicReq\": \"&b2_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b2_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b2_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b2_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b2_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b2_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b2_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b2_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b2_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b2_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b2_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"3\",\n \"Hit Rate\": \"&b3_hitRate\",\n \"Req\": \"&b3_req\",\n \"Read Req\": \"&b3_readReq\",\n \"Write Req\": \"&b3_writeReq\",\n \"AtomicReq\": \"&b3_atomicReq\",\n \"EA Read Req\": \"&b3_eaReadReq\",\n \"EA Write Req\": \"&b3_eaWriteReq\",\n \"EA AtomicReq\": \"&b3_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b3_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b3_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b3_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b3_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b3_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b3_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b3_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b3_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b3_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b3_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"4\",\n \"Hit Rate\": \"&b4_hitRate\",\n \"Req\": \"&b4_req\",\n \"Read Req\": \"&b4_readReq\",\n \"Write Req\": \"&b4_writeReq\",\n \"AtomicReq\": \"&b4_atomicReq\",\n \"EA Read Req\": \"&b4_eaReadReq\",\n \"EA Write Req\": \"&b4_eaWriteReq\",\n \"EA AtomicReq\": \"&b4_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b4_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b4_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b4_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b4_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b4_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b4_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b4_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b4_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b4_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b4_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"5\",\n \"Hit Rate\": \"&b5_hitRate\",\n \"Req\": \"&b5_req\",\n \"Read Req\": \"&b5_readReq\",\n \"Write Req\": \"&b5_writeReq\",\n \"AtomicReq\": \"&b5_atomicReq\",\n \"EA Read Req\": \"&b5_eaReadReq\",\n \"EA Write Req\": \"&b5_eaWriteReq\",\n \"EA AtomicReq\": \"&b5_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b5_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b5_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b5_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b5_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b5_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b5_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b5_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b5_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b5_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b5_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"6\",\n \"Hit Rate\": \"&b6_hitRate\",\n \"Req\": \"&b6_req\",\n \"Read Req\": \"&b6_readReq\",\n \"Write Req\": \"&b6_writeReq\",\n \"AtomicReq\": \"&b6_atomicReq\",\n \"EA Read Req\": \"&b6_eaReadReq\",\n \"EA Write Req\": \"&b6_eaWriteReq\",\n \"EA AtomicReq\": \"&b6_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b6_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b6_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b6_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b6_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b6_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b6_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b6_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b6_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b6_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b6_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"7\",\n \"Hit Rate\": \"&b7_hitRate\",\n \"Req\": \"&b7_req\",\n \"Read Req\": \"&b7_readReq\",\n \"Write Req\": \"&b7_writeReq\",\n \"AtomicReq\": \"&b7_atomicReq\",\n \"EA Read Req\": \"&b7_eaReadReq\",\n \"EA Write Req\": \"&b7_eaWriteReq\",\n \"EA AtomicReq\": \"&b7_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b7_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b7_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b7_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b7_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b7_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b7_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b7_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b7_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b7_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b7_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"8\",\n \"Hit Rate\": \"&b8_hitRate\",\n \"Req\": \"&b8_req\",\n \"Read Req\": \"&b8_readReq\",\n \"Write Req\": \"&b8_writeReq\",\n \"AtomicReq\": \"&b8_atomicReq\",\n \"EA Read Req\": \"&b8_eaReadReq\",\n \"EA Write Req\": \"&b8_eaWriteReq\",\n \"EA AtomicReq\": \"&b8_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b8_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b8_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b8_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b8_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b8_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b8_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b8_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b8_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b8_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b8_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"9\",\n \"Hit Rate\": \"&b9_hitRate\",\n \"Req\": \"&b9_req\",\n \"Read Req\": \"&b9_readReq\",\n \"Write Req\": \"&b9_writeReq\",\n \"AtomicReq\": \"&b9_atomicReq\",\n \"EA Read Req\": \"&b9_eaReadReq\",\n \"EA Write Req\": \"&b9_eaWriteReq\",\n \"EA AtomicReq\": \"&b9_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b9_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b9_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b9_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b9_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b9_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b9_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b9_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b9_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b9_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b9_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"10\",\n \"Hit Rate\": \"&b10_hitRate\",\n \"Req\": \"&b10_req\",\n \"Read Req\": \"&b10_readReq\",\n \"Write Req\": \"&b10_writeReq\",\n \"AtomicReq\": \"&b10_atomicReq\",\n \"EA Read Req\": \"&b10_eaReadReq\",\n \"EA Write Req\": \"&b10_eaWriteReq\",\n \"EA AtomicReq\": \"&b10_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b10_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b10_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b10_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b10_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b10_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b10_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b10_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b10_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b10_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b10_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"11\",\n \"Hit Rate\": \"&b11_hitRate\",\n \"Req\": \"&b11_req\",\n \"Read Req\": \"&b11_readReq\",\n \"Write Req\": \"&b11_writeReq\",\n \"AtomicReq\": \"&b11_atomicReq\",\n \"EA Read Req\": \"&b11_eaReadReq\",\n \"EA Write Req\": \"&b11_eaWriteReq\",\n \"EA AtomicReq\": \"&b11_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b11_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b11_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b11_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b11_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b11_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b11_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b11_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b11_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b11_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b11_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"12\",\n \"Hit Rate\": \"&b12_hitRate\",\n \"Req\": \"&b12_req\",\n \"Read Req\": \"&b12_readReq\",\n \"Write Req\": \"&b12_writeReq\",\n \"AtomicReq\": \"&b12_atomicReq\",\n \"EA Read Req\": \"&b12_eaReadReq\",\n \"EA Write Req\": \"&b12_eaWriteReq\",\n \"EA AtomicReq\": \"&b12_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b12_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b12_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b12_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b12_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b12_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b12_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b12_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b12_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b12_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b12_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"13\",\n \"Hit Rate\": \"&b13_hitRate\",\n \"Req\": \"&b13_req\",\n \"Read Req\": \"&b13_readReq\",\n \"Write Req\": \"&b13_writeReq\",\n \"AtomicReq\": \"&b13_atomicReq\",\n \"EA Read Req\": \"&b13_eaReadReq\",\n \"EA Write Req\": \"&b13_eaWriteReq\",\n \"EA AtomicReq\": \"&b13_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b13_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b13_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b13_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b13_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b13_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b13_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b13_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b13_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b13_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b13_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n\n },\n {\n \"Channel\": \"14\",\n \"Hit Rate\": \"&b14_hitRate\",\n \"Req\": \"&b14_req\",\n \"Read Req\": \"&b14_readReq\",\n \"Write Req\": \"&b14_writeReq\",\n \"AtomicReq\": \"&b14_atomicReq\",\n \"EA Read Req\": \"&b14_eaReadReq\",\n \"EA Write Req\": \"&b14_eaWriteReq\",\n \"EA AtomicReq\": \"&b14_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b14_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b14_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b14_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b14_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b14_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b14_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b14_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b14_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b14_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b14_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n\n },\n {\n \"Channel\": \"15\",\n \"Hit Rate\": \"&b15_hitRate\",\n \"Req\": \"&b15_req\",\n \"Read Req\": \"&b15_readReq\",\n \"Write Req\": \"&b15_writeReq\",\n \"AtomicReq\": \"&b15_atomicReq\",\n \"EA Read Req\": \"&b15_eaReadReq\",\n \"EA Write Req\": \"&b15_eaWriteReq\",\n \"EA AtomicReq\": \"&b15_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b15_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b15_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b15_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b15_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b15_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b15_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b15_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b15_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b15_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b15_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"$array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"$array\"\n }}\n]);", - "type": "table" - } - ], - "title": "L2 - EA Read Latency (Channel 0 - 15) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:341", - "Col": 9, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Lat - cycles", - "Selected": true - } - ], - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 412 - }, - "id": 70, - "targets": [ - { - "datasource": { - "type": "amd-miperf-data-plugin", - "uid": "Zzw1yR27k" - }, - "rawQuery": true, - "refId": "A", - "target": "${Workload1}.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n {\"$addFields\": {\n \"denom\": {\n \"$switch\" : {\n \"branches\": [\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Wave\"]} ,\n \"then\": \"&SQ_WAVES\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Cycle\"]} ,\n \"then\": \"&GRBM_GUI_ACTIVE\"\n },\n {\n \"case\": { \"$eq\": [ $normUnit, \"per Sec\"]} ,\n \"then\": {\"$divide\":[{\"$subtract\": [\"&End_Timestamp\", \"&Start_Timestamp\" ]}, 1000000000]}\n }\n ],\n \"default\": 1\n } \n } \n }},\n\n {\"$group\": {\n \"_id\": null,\n \"b16_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[16]\", \"&TCC_MISS[16]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[16]\"]}, \n { \"$add\": [\"&TCC_HIT[16]\", \"&TCC_MISS[16]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b16_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[16]\"}, \"&denom\"] } \n },\n \"b16_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[16]\"}, \"&denom\"] } \n },\n \"b16_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[16]\"}, \"&denom\"] } \n },\n \"b16_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[16]\"}, \"&denom\"] } \n },\n \"b16_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[16]\"}, \"&denom\"] }\n },\n \"b16_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[16]\"}, \"&denom\"] } \n },\n \"b16_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[16]\"}, \"&denom\"] } \n },\n\n \"b16_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[16]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[16]\", \"&TCC_EA_RDREQ[16]\"]}, null] } },\n \"b16_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[16]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[16]\", \"&TCC_EA_WRREQ[16]\"]}, null] } },\n \"b16_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[16]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[16]\", \"&TCC_EA_ATOMIC[16]\"]}, null]}},\n \"b16_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[16]\"}, \"&denom\"] }},\n \"b16_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[16]\"}, \"&denom\"] }},\n\n \n \"b17_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[17]\", \"&TCC_MISS[17]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[17]\"]}, \n { \"$add\": [\"&TCC_HIT[17]\", \"&TCC_MISS[17]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b17_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[17]\"}, \"&denom\"] } \n },\n \"b17_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[17]\"}, \"&denom\"] } \n },\n \"b17_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[17]\"}, \"&denom\"] } \n },\n \"b17_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[17]\"}, \"&denom\"] } \n },\n \"b17_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[17]\"}, \"&denom\"] }\n },\n \"b17_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[17]\"}, \"&denom\"] } \n },\n \"b17_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[17]\"}, \"&denom\"] } \n },\n \"b17_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[17]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[17]\", \"&TCC_EA_RDREQ[17]\"]}, null] } },\n \"b17_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[17]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[17]\", \"&TCC_EA_WRREQ[17]\"]}, null] } },\n \"b17_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[17]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[17]\", \"&TCC_EA_ATOMIC[17]\"]}, null]}},\n \"b17_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[17]\"}, \"&denom\"] }},\n \"b17_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[17]\"}, \"&denom\"] }},\n\n \n \"b18_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[18]\", \"&TCC_MISS[18]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[18]\"]}, \n { \"$add\": [\"&TCC_HIT[18]\", \"&TCC_MISS[18]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b18_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[18]\"}, \"&denom\"] }\n },\n \"b18_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[18]\"}, \"&denom\"] } \n },\n \"b18_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[18]\"}, \"&denom\"] }\n },\n \"b18_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[18]\"}, \"&denom\"] }\n },\n \"b18_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[18]\"}, \"&denom\"] }\n },\n \"b18_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[18]\"}, \"&denom\"] }\n },\n \"b18_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[18]\"}, \"&denom\"] }\n },\n \"b18_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[18]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[18]\", \"&TCC_EA_RDREQ[18]\"]}, null] } },\n \"b18_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[18]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[18]\", \"&TCC_EA_WRREQ[18]\"]}, null] } },\n \"b18_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[18]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[18]\", \"&TCC_EA_ATOMIC[18]\"]}, null]}},\n \"b18_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[18]\"}, \"&denom\"] }},\n \"b18_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[18]\"}, \"&denom\"] }},\n\n \n \"b19_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[19]\", \"&TCC_MISS[19]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[19]\"]}, \n { \"$add\": [\"&TCC_HIT[19]\", \"&TCC_MISS[19]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b19_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[19]\"}, \"&denom\"] } \n },\n \"b19_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[19]\"}, \"&denom\"] } \n },\n \"b19_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[19]\"}, \"&denom\"] }\n },\n \"b19_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[19]\"}, \"&denom\"] }\n },\n \"b19_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[19]\"}, \"&denom\"] }\n },\n \"b19_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[19]\"}, \"&denom\"] }\n },\n \"b19_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[19]\"}, \"&denom\"] } \n },\n \"b19_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[19]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[19]\", \"&TCC_EA_RDREQ[19]\"]}, null] } },\n \"b19_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[19]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[19]\", \"&TCC_EA_WRREQ[19]\"]}, null] } },\n \"b19_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[19]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[19]\", \"&TCC_EA_ATOMIC[19]\"]}, null]}},\n \"b19_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[19]\"}, \"&denom\"] }},\n \"b19_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[19]\"}, \"&denom\"] }},\n\n \n \"b20_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[20]\", \"&TCC_MISS[20]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[20]\"]}, \n { \"$add\": [\"&TCC_HIT[20]\", \"&TCC_MISS[20]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b20_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[20]\"}, \"&denom\"] } \n },\n \"b20_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[20]\"}, \"&denom\"] } \n },\n \"b20_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[20]\"}, \"&denom\"] }\n },\n \"b20_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[20]\"}, \"&denom\"] } \n },\n \"b20_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[20]\"}, \"&denom\"] } \n },\n \"b20_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[20]\"}, \"&denom\"] } \n },\n \"b20_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[20]\"}, \"&denom\"] } \n },\n \"b20_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[20]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[20]\", \"&TCC_EA_RDREQ[20]\"]}, null] } },\n \"b20_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[20]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[20]\", \"&TCC_EA_WRREQ[20]\"]}, null] } },\n \"b20_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[20]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[20]\", \"&TCC_EA_ATOMIC[20]\"]}, null]}},\n \"b20_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[20]\"}, \"&denom\"] }},\n \"b20_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[20]\"}, \"&denom\"] }},\n\n \n\n \"b21_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[21]\", \"&TCC_MISS[21]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[21]\"]}, \n { \"$add\": [\"&TCC_HIT[21]\", \"&TCC_MISS[21]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b21_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[21]\"}, \"&denom\"] } \n },\n \"b21_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[21]\"}, \"&denom\"] } \n },\n \"b21_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[21]\"}, \"&denom\"] } \n },\n \"b21_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[21]\"}, \"&denom\"] } \n },\n \"b21_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[21]\"}, \"&denom\"] } \n },\n \"b21_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[21]\"}, \"&denom\"] } \n },\n \"b21_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[21]\"}, \"&denom\"] } \n },\n \"b21_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[21]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[21]\", \"&TCC_EA_RDREQ[21]\"]}, null] } },\n \"b21_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[21]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[21]\", \"&TCC_EA_WRREQ[21]\"]}, null] } },\n \"b21_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[21]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[21]\", \"&TCC_EA_ATOMIC[21]\"]}, null]}},\n \"b21_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[21]\"}, \"&denom\"] }},\n \"b21_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[21]\"}, \"&denom\"] }},\n\n \n\n \"b22_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[22]\", \"&TCC_MISS[22]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[22]\"]}, \n { \"$add\": [\"&TCC_HIT[22]\", \"&TCC_MISS[22]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b22_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[22]\"}, \"&denom\"] } \n },\n \"b22_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[22]\"}, \"&denom\"] } \n },\n \"b22_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[22]\"}, \"&denom\"] } \n },\n \"b22_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[22]\"}, \"&denom\"] } \n },\n \"b22_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[22]\"}, \"&denom\"] } \n },\n \"b22_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[22]\"}, \"&denom\"] }\n },\n \"b22_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[22]\"}, \"&denom\"] } \n },\n \"b22_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[22]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[22]\", \"&TCC_EA_RDREQ[22]\"]}, null] } },\n \"b22_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[22]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[22]\", \"&TCC_EA_WRREQ[22]\"]}, null] } },\n \"b22_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[22]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[22]\", \"&TCC_EA_ATOMIC[22]\"]}, null]}},\n \"b22_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[22]\"}, \"&denom\"] }},\n \"b22_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[22]\"}, \"&denom\"] }},\n\n \n\n \"b23_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[23]\", \"&TCC_MISS[23]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[23]\"]}, \n { \"$add\": [\"&TCC_HIT[23]\", \"&TCC_MISS[23]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b23_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[23]\"}, \"&denom\"] } \n },\n \"b23_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[23]\"}, \"&denom\"] } \n },\n \"b23_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[23]\"}, \"&denom\"] } \n },\n \"b23_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[23]\"}, \"&denom\"] } \n },\n \"b23_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[23]\"}, \"&denom\"] } \n },\n \"b23_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[23]\"}, \"&denom\"] }\n },\n \"b23_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[23]\"}, \"&denom\"] } \n },\n \"b23_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[23]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[23]\", \"&TCC_EA_RDREQ[23]\"]}, null] } },\n \"b23_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[23]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[23]\", \"&TCC_EA_WRREQ[23]\"]}, null] } },\n \"b23_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[23]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[23]\", \"&TCC_EA_ATOMIC[23]\"]}, null]}},\n \"b23_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[23]\"}, \"&denom\"] }},\n \"b23_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[23]\"}, \"&denom\"] }},\n\n \n \"b24_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[24]\", \"&TCC_MISS[24]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[24]\"]}, \n { \"$add\": [\"&TCC_HIT[24]\", \"&TCC_MISS[24]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b24_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[24]\"}, \"&denom\"] } \n },\n \"b24_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[24]\"}, \"&denom\"] } \n },\n \"b24_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[24]\"}, \"&denom\"] } \n },\n \"b24_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[24]\"}, \"&denom\"] } \n },\n \"b24_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[24]\"}, \"&denom\"] } \n },\n \"b24_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[24]\"}, \"&denom\"] } \n },\n \"b24_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[24]\"}, \"&denom\"] } \n },\n \"b24_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[24]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[24]\", \"&TCC_EA_RDREQ[24]\"]}, null] } },\n \"b24_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[24]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[24]\", \"&TCC_EA_WRREQ[24]\"]}, null] } },\n \"b24_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[24]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[24]\", \"&TCC_EA_ATOMIC[24]\"]}, null]}},\n \"b24_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[24]\"}, \"&denom\"] }},\n \"b24_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[24]\"}, \"&denom\"] }},\n\n \n \"b25_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[25]\", \"&TCC_MISS[25]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[25]\"]}, \n { \"$add\": [\"&TCC_HIT[25]\", \"&TCC_MISS[25]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b25_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[25]\"}, \"&denom\"] } \n },\n \"b25_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[25]\"}, \"&denom\"] } \n },\n \"b25_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[25]\"}, \"&denom\"] } \n },\n \"b25_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[25]\"}, \"&denom\"] } \n },\n \"b25_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[25]\"}, \"&denom\"] } \n },\n \"b25_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[25]\"}, \"&denom\"] } \n },\n \"b25_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[25]\"}, \"&denom\"] } \n },\n \"b25_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[25]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[25]\", \"&TCC_EA_RDREQ[25]\"]}, null] } },\n \"b25_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[25]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[25]\", \"&TCC_EA_WRREQ[25]\"]}, null] } },\n \"b25_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[25]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[25]\", \"&TCC_EA_ATOMIC[25]\"]}, null]}},\n \"b25_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[25]\"}, \"&denom\"] }},\n \"b25_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[25]\"}, \"&denom\"] }},\n\n \n \"b26_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[26]\", \"&TCC_MISS[26]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[26]\"]}, \n { \"$add\": [\"&TCC_HIT[26]\", \"&TCC_MISS[26]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b26_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[26]\"}, \"&denom\"] } \n },\n \"b26_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[26]\"}, \"&denom\"] } \n },\n \"b26_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[26]\"}, \"&denom\"] } \n },\n \"b26_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[26]\"}, \"&denom\"] } \n },\n \"b26_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[26]\"}, \"&denom\"] } \n },\n \"b26_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[26]\"}, \"&denom\"] } \n },\n \"b26_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[26]\"}, \"&denom\"] } \n },\n \"b26_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[26]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[26]\", \"&TCC_EA_RDREQ[26]\"]}, null] } },\n \"b26_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[26]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[26]\", \"&TCC_EA_WRREQ[26]\"]}, null] } },\n \"b26_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[26]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[26]\", \"&TCC_EA_ATOMIC[26]\"]}, null]}},\n \"b26_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[26]\"}, \"&denom\"] }},\n \"b26_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[26]\"}, \"&denom\"] }},\n\n \n \"b27_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[27]\", \"&TCC_MISS[27]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[27]\"]}, \n { \"$add\": [\"&TCC_HIT[27]\", \"&TCC_MISS[27]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b27_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[27]\"}, \"&denom\"] } \n },\n \"b27_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[27]\"}, \"&denom\"] } \n },\n \"b27_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[27]\"}, \"&denom\"] } \n },\n \"b27_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[27]\"}, \"&denom\"] } \n },\n \"b27_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[27]\"}, \"&denom\"] } \n },\n \"b27_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[27]\"}, \"&denom\"] } \n },\n \"b27_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[27]\"}, \"&denom\"] } \n },\n \"b27_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[27]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[27]\", \"&TCC_EA_RDREQ[27]\"]}, null] } },\n \"b27_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[27]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[27]\", \"&TCC_EA_WRREQ[27]\"]}, null] } },\n \"b27_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[27]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[27]\", \"&TCC_EA_ATOMIC[27]\"]}, null]}},\n \"b27_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[27]\"}, \"&denom\"] }},\n \"b27_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[27]\"}, \"&denom\"] }},\n\n \n \"b28_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[28]\", \"&TCC_MISS[28]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[28]\"]}, \n { \"$add\": [\"&TCC_HIT[28]\", \"&TCC_MISS[28]\"] }\n ] \n },\n null \n ] \n }\n },\n \"b28_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[28]\"}, \"&denom\"] } \n },\n \"b28_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[28]\"}, \"&denom\"] } \n },\n \"b28_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[28]\"}, \"&denom\"] } \n },\n \"b28_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[28]\"}, \"&denom\"] } \n },\n \"b28_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[28]\"}, \"&denom\"] } \n },\n \"b28_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[28]\"}, \"&denom\"] } \n },\n \"b28_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[28]\"}, \"&denom\"] } \n },\n \"b28_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[28]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[28]\", \"&TCC_EA_RDREQ[28]\"]}, null] } },\n \"b28_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[28]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[28]\", \"&TCC_EA_WRREQ[28]\"]}, null] } },\n \"b28_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[28]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[28]\", \"&TCC_EA_ATOMIC[28]\"]}, null]}},\n \"b28_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[28]\"}, \"&denom\"] }},\n \"b28_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[28]\"}, \"&denom\"] }},\n\n \n \"b29_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[29]\", \"&TCC_MISS[29]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[29]\"]}, \n { \"$add\": [\"&TCC_HIT[29]\", \"&TCC_MISS[29]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b29_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[29]\"}, \"&denom\"] } \n },\n \"b29_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[29]\"}, \"&denom\"] } \n },\n \"b29_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[29]\"}, \"&denom\"] } \n },\n \"b29_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[29]\"}, \"&denom\"] } \n },\n \"b29_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[29]\"}, \"&denom\"] } \n },\n \"b29_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[29]\"}, \"&denom\"] }\n },\n \"b29_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[29]\"}, \"&denom\"] } \n },\n \"b29_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[29]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[29]\", \"&TCC_EA_RDREQ[29]\"]}, null] } },\n \"b29_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[29]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[29]\", \"&TCC_EA_WRREQ[29]\"]}, null] } },\n \"b29_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[29]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[29]\", \"&TCC_EA_ATOMIC[29]\"]}, null]}},\n \"b29_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[29]\"}, \"&denom\"] }},\n \"b29_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[29]\"}, \"&denom\"] }},\n\n \n \"b30_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[30]\", \"&TCC_MISS[30]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[30]\"]}, \n { \"$add\": [\"&TCC_HIT[30]\", \"&TCC_MISS[30]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b30_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[30]\"}, \"&denom\"] } \n },\n \"b30_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[30]\"}, \"&denom\"] } \n },\n \"b30_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[30]\"}, \"&denom\"] } \n },\n \"b30_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[30]\"}, \"&denom\"] } \n },\n \"b30_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[30]\"}, \"&denom\"] } \n },\n \"b30_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[30]\"}, \"&denom\"] } \n },\n \"b30_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[30]\"}, \"&denom\"] } \n },\n \"b30_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[30]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[30]\", \"&TCC_EA_RDREQ[30]\"]}, null] } },\n \"b30_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[30]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[30]\", \"&TCC_EA_WRREQ[30]\"]}, null] } },\n \"b30_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[30]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[30]\", \"&TCC_EA_ATOMIC[30]\"]}, null]}},\n \"b30_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[30]\"}, \"&denom\"] }},\n \"b30_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[30]\"}, \"&denom\"] }},\n\n \n \"b31_hitRate\": {\n \"$avg\":{ \n \"$cond\": [ \n {\"$ne\": [{ \"$add\": [\"&TCC_HIT[31]\", \"&TCC_MISS[31]\"] }, 0]}, \n {\"$divide\": [\n { \"$multiply\": [100, \"&TCC_HIT[31]\"]}, \n { \"$add\": [\"&TCC_HIT[31]\", \"&TCC_MISS[31]\"] }\n ] \n },\n null\n ] \n }\n },\n \"b31_req\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_REQ[31]\"}, \"&denom\"] } \n },\n \"b31_readReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_READ[31]\"}, \"&denom\"] } \n },\n \"b31_writeReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_WRITE[31]\"}, \"&denom\"] } \n },\n \"b31_atomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_ATOMIC[31]\"}, \"&denom\"] } \n },\n \"b31_eaReadReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ[31]\"}, \"&denom\"] } \n },\n \"b31_eaWriteReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ[31]\"}, \"&denom\"] } \n },\n \"b31_eaAtomicReq\": {\n \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_ATOMIC[31]\"}, \"&denom\"] }\n },\n \"b31_eaReadLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_RDREQ[31]\", 0]}, {\"$divide\": [\"&TCC_EA_RDREQ_LEVEL[31]\", \"&TCC_EA_RDREQ[31]\"]}, null] } },\n \"b31_eaWriteLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_WRREQ[31]\", 0]}, {\"$divide\": [\"&TCC_EA_WRREQ_LEVEL[31]\", \"&TCC_EA_WRREQ[31]\"]}, null] } },\n \"b31_eaAtomicLat\": { \"$avg\": {\"$cond\": [{\"$ne\": [\"&TCC_EA_ATOMIC[31]\", 0]}, {\"$divide\": [\"&TCC_EA_ATOMIC_LEVEL[31]\", \"&TCC_EA_ATOMIC[31]\"]}, null]}},\n \"b31_ea_read_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_IO_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_read_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_GMI_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_read_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_RDREQ_DRAM_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_write_stall_io_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_IO_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_write_stall_gmi_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_GMI_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_write_stall_dram_credit\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_EA_WRREQ_DRAM_CREDIT_STALL[31]\"}, \"&denom\"] }},\n \"b31_ea_write_stall_too_many\": { \"$avg\":{ \"$divide\":[{\"$toInt\": \"&TCC_TOO_MANY_EA_WRREQS_STALL[31]\"}, \"&denom\"] }}\n\n \n }},\n {\"$set\": {\n \"array\": [\n {\n \"Channel\": \"16\",\n \"Hit Rate\": \"&b16_hitRate\",\n \"Req\": \"&b16_req\",\n \"Read Req\": \"&b16_readReq\",\n \"Write Req\": \"&b16_writeReq\",\n \"AtomicReq\": \"&b16_atomicReq\",\n \"EA Read Req\": \"&b16_eaReadReq\",\n \"EA Write Req\": \"&b16_eaWriteReq\",\n \"EA AtomicReq\": \"&b16_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b16_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b16_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b16_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b16_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b16_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b16_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b16_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b16_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b16_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b16_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"17\",\n \"Hit Rate\": \"&b17_hitRate\",\n \"Req\": \"&b17_req\",\n \"Read Req\": \"&b17_readReq\",\n \"Write Req\": \"&b17_writeReq\",\n \"AtomicReq\": \"&b17_atomicReq\",\n \"EA Read Req\": \"&b17_eaReadReq\",\n \"EA Write Req\": \"&b17_eaWriteReq\",\n \"EA AtomicReq\": \"&b17_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b17_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b17_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b17_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b17_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b17_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b17_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b17_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b17_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b17_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b17_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"18\",\n \"Hit Rate\": \"&b18_hitRate\",\n \"Req\": \"&b18_req\",\n \"Read Req\": \"&b18_readReq\",\n \"Write Req\": \"&b18_writeReq\",\n \"AtomicReq\": \"&b18_atomicReq\",\n \"EA Read Req\": \"&b18_eaReadReq\",\n \"EA Write Req\": \"&b18_eaWriteReq\",\n \"EA AtomicReq\": \"&b18_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b18_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b18_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b18_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b18_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b18_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b18_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b18_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b18_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b18_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b18_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"19\",\n \"Hit Rate\": \"&b19_hitRate\",\n \"Req\": \"&b19_req\",\n \"Read Req\": \"&b19_readReq\",\n \"Write Req\": \"&b19_writeReq\",\n \"AtomicReq\": \"&b19_atomicReq\",\n \"EA Read Req\": \"&b19_eaReadReq\",\n \"EA Write Req\": \"&b19_eaWriteReq\",\n \"EA AtomicReq\": \"&b19_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b19_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b19_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b19_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b19_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b19_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b19_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b19_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b19_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b19_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b19_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"20\",\n \"Hit Rate\": \"&b20_hitRate\",\n \"Req\": \"&b20_req\",\n \"Read Req\": \"&b20_readReq\",\n \"Write Req\": \"&b20_writeReq\",\n \"AtomicReq\": \"&b20_atomicReq\",\n \"EA Read Req\": \"&b20_eaReadReq\",\n \"EA Write Req\": \"&b20_eaWriteReq\",\n \"EA AtomicReq\": \"&b20_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b20_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b20_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b20_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b20_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b20_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b20_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b20_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b20_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b20_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b20_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"21\",\n \"Hit Rate\": \"&b21_hitRate\",\n \"Req\": \"&b21_req\",\n \"Read Req\": \"&b21_readReq\",\n \"Write Req\": \"&b21_writeReq\",\n \"AtomicReq\": \"&b21_atomicReq\",\n \"EA Read Req\": \"&b21_eaReadReq\",\n \"EA Write Req\": \"&b21_eaWriteReq\",\n \"EA AtomicReq\": \"&b21_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b21_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b21_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b21_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b21_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b21_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b21_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b21_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b21_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b21_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b21_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"22\",\n \"Hit Rate\": \"&b22_hitRate\",\n \"Req\": \"&b22_req\",\n \"Read Req\": \"&b22_readReq\",\n \"Write Req\": \"&b22_writeReq\",\n \"AtomicReq\": \"&b22_atomicReq\",\n \"EA Read Req\": \"&b22_eaReadReq\",\n \"EA Write Req\": \"&b22_eaWriteReq\",\n \"EA AtomicReq\": \"&b22_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b22_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b22_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b22_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b22_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b22_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b22_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b22_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b22_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b22_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b22_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"23\",\n \"Hit Rate\": \"&b23_hitRate\",\n \"Req\": \"&b23_req\",\n \"Read Req\": \"&b23_readReq\",\n \"Write Req\": \"&b23_writeReq\",\n \"AtomicReq\": \"&b23_atomicReq\",\n \"EA Read Req\": \"&b23_eaReadReq\",\n \"EA Write Req\": \"&b23_eaWriteReq\",\n \"EA AtomicReq\": \"&b23_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b23_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b23_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b23_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b23_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b23_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b23_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b23_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b23_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b23_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b23_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n\n },\n {\n \"Channel\": \"24\",\n \"Hit Rate\": \"&b24_hitRate\",\n \"Req\": \"&b24_req\",\n \"Read Req\": \"&b24_readReq\",\n \"Write Req\": \"&b24_writeReq\",\n \"AtomicReq\": \"&b24_atomicReq\",\n \"EA Read Req\": \"&b24_eaReadReq\",\n \"EA Write Req\": \"&b24_eaWriteReq\",\n \"EA AtomicReq\": \"&b24_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b24_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b24_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b24_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b24_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b24_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b24_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b24_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b24_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b24_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b24_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"25\",\n \"Hit Rate\": \"&b25_hitRate\",\n \"Req\": \"&b25_req\",\n \"Read Req\": \"&b25_readReq\",\n \"Write Req\": \"&b25_writeReq\",\n \"AtomicReq\": \"&b25_atomicReq\",\n \"EA Read Req\": \"&b25_eaReadReq\",\n \"EA Write Req\": \"&b25_eaWriteReq\",\n \"EA AtomicReq\": \"&b25_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b25_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b25_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b25_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b25_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b25_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b25_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b25_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b25_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b25_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b25_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"26\",\n \"Hit Rate\": \"&b26_hitRate\",\n \"Req\": \"&b26_req\",\n \"Read Req\": \"&b26_readReq\",\n \"Write Req\": \"&b26_writeReq\",\n \"AtomicReq\": \"&b26_atomicReq\",\n \"EA Read Req\": \"&b26_eaReadReq\",\n \"EA Write Req\": \"&b26_eaWriteReq\",\n \"EA AtomicReq\": \"&b26_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b26_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b26_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b26_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b26_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b26_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b26_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b26_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b26_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b26_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b26_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n\n },\n {\n \"Channel\": \"27\",\n \"Hit Rate\": \"&b27_hitRate\",\n \"Req\": \"&b27_req\",\n \"Read Req\": \"&b27_readReq\",\n \"Write Req\": \"&b27_writeReq\",\n \"AtomicReq\": \"&b27_atomicReq\",\n \"EA Read Req\": \"&b27_eaReadReq\",\n \"EA Write Req\": \"&b27_eaWriteReq\",\n \"EA AtomicReq\": \"&b27_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b27_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b27_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b27_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b27_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b27_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b27_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b27_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b27_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b27_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b27_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"28\",\n \"Hit Rate\": \"&b28_hitRate\",\n \"Req\": \"&b28_req\",\n \"Read Req\": \"&b28_readReq\",\n \"Write Req\": \"&b28_writeReq\",\n \"AtomicReq\": \"&b28_atomicReq\",\n \"EA Read Req\": \"&b28_eaReadReq\",\n \"EA Write Req\": \"&b28_eaWriteReq\",\n \"EA AtomicReq\": \"&b28_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b28_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b28_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b28_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b28_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b28_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b28_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b28_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b28_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b28_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b28_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"29\",\n \"Hit Rate\": \"&b29_hitRate\",\n \"Req\": \"&b29_req\",\n \"Read Req\": \"&b29_readReq\",\n \"Write Req\": \"&b29_writeReq\",\n \"AtomicReq\": \"&b29_atomicReq\",\n \"EA Read Req\": \"&b29_eaReadReq\",\n \"EA Write Req\": \"&b29_eaWriteReq\",\n \"EA AtomicReq\": \"&b29_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b29_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b29_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b29_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b29_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b29_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b29_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b29_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b29_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b29_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b29_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"30\",\n \"Hit Rate\": \"&b30_hitRate\",\n \"Req\": \"&b30_req\",\n \"Read Req\": \"&b30_readReq\",\n \"Write Req\": \"&b30_writeReq\",\n \"AtomicReq\": \"&b30_atomicReq\",\n \"EA Read Req\": \"&b30_eaReadReq\",\n \"EA Write Req\": \"&b30_eaWriteReq\",\n \"EA AtomicReq\": \"&b30_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b30_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b30_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b30_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b30_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b30_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b30_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b30_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b30_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b30_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b30_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n },\n {\n \"Channel\": \"31\",\n \"Hit Rate\": \"&b31_hitRate\",\n \"Req\": \"&b31_req\",\n \"Read Req\": \"&b31_readReq\",\n \"Write Req\": \"&b31_writeReq\",\n \"AtomicReq\": \"&b31_atomicReq\",\n \"EA Read Req\": \"&b31_eaReadReq\",\n \"EA Write Req\": \"&b31_eaWriteReq\",\n \"EA AtomicReq\": \"&b31_eaAtomicReq\",\n \"EA Read Lat - cycles\": \"&b31_eaReadLat\",\n \"EA Write Lat - cycles\": \"&b31_eaWriteLat\",\n \"EA Atomic Lat - cycles\": \"&b31_eaAtomicLat\",\n \"EA Read Stall - IO\": \"&b31_ea_read_stall_io_credit\",\n \"EA Read Stall - GMI\": \"&b31_ea_read_stall_gmi_credit\",\n \"EA Read Stall - DRAM\": \"&b31_ea_read_stall_dram_credit\",\n \"EA Write Stall - IO\": \"&b31_ea_write_stall_io_credit\",\n \"EA Write Stall - GMI\": \"&b31_ea_write_stall_gmi_credit\",\n \"EA Write Stall - DRAM\": \"&b31_ea_write_stall_dram_credit\",\n \"EA Write Stall - Starve\": \"&b31_ea_write_stall_too_many\",\n \"Units\": \"&denom\"\n\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"$array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"$array\"\n }}\n]);", - "type": "table" - } - ], - "title": "L2 - EA Read Latency (Channel 16-31) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 10, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Lat - cycles", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 420 - }, - "id": 93, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Latency (Channel 0 - 15) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 10, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Lat - cycles", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 420 - }, - "id": 94, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Latency (Channel 16 - 31) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 11, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Atomic Lat - cycles", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 428 - }, - "id": 187, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Atomic Latency (Channel 0 - 15) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 11, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Atomic Lat - cycles", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 428 - }, - "id": 201, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Atomic Latency (Channel 16 - 31) (Cycles)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 12, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - IO", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 436 - }, - "id": 220, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - I/O (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 12, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - IO", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 436 - }, - "id": 227, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - I/O (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 13, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - GMI", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 444 - }, - "id": 221, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - GMI (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 13, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - GMI", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 444 - }, - "id": 228, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - GMI (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 14, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - DRAM", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 452 - }, - "id": 222, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - HBM (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 14, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Read Stall - DRAM", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 452 - }, - "id": 229, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Read Stall - HBM (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 15, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - IO", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 460 - }, - "id": 223, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - I/O (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 15, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - IO", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 460 - }, - "id": 230, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - I/O (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 16, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - GMI", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 468 - }, - "id": 225, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - GMI (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 16, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - GMI", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 468 - }, - "id": 231, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - GMI (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 17, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - DRAM", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 476 - }, - "id": 224, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - HBM (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 17, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - DRAM", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 476 - }, - "id": 232, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Stall - HBM (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 18, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - Starve", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 484 - }, - "id": 226, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 68, - "refId": "A" - } - ], - "title": "L2 - EA Write Starve (Channel 0 - 15) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - }, - { - "Aggregate": "last", - "BarPadding": 10, - "BaseLineColor": "#ff0000", - "BaseLineWidth": 1, - "CurveType": "Monotone", - "DateFormat": "YYYY-MM-DD HH:mm:ss", - "DateTimeColName": "date", - "DotColor": "white", - "DotSize": 10, - "EvenRowColor": "rgba(61, 61, 64, 0.78)", - "FlashHighLimitBar": false, - "FlashLowLimitBar": false, - "GroupCols": 0, - "GroupGap": 5, - "GroupLabelColor": "#ffffff", - "GroupLabelFontSize": "200%", - "GroupNameFilter": "", - "GroupRenamingRules": [], - "GroupSortString": "", - "HighAxisColor": "#ffffff", - "HighAxisWidth": 1, - "HighBarColor": "rgb(120, 128, 0)", - "HighLimitBarColor": "#ff0000", - "HighLimitBarFlashColor": "#ffa500", - "HighLimitBarFlashTimeout": 1000, - "HighLimitLineColor": "#ff0000", - "HighLmitLineWidth": 1, - "HighSideMargin": 22, - "Horizontal": false, - "LabelColName": "Channel", - "LabelColor": "#ffffff", - "LabelFontSize": "70%", - "LabelNameFilter": "", - "LabelRenamingRules": [], - "LableAngle": 0, - "Legend": false, - "LineColor": "blue", - "LineWidth": 5, - "Links": [], - "LowAxisColor": "#ffffff", - "LowAxisWidth": 1, - "LowBarColor": "teal", - "LowLimitBarColor": "#ff0000", - "LowLimitBarFlashColor": "#ffa500", - "LowLimitBarFlashTimeout": 200, - "LowLimitLineColor": "#ff0000", - "LowLmitLineWidth": 1, - "LowSideMargin": 50, - "MaxLineColor": "rgb(74, 232, 12)", - "MaxLineWidth": 1, - "MinLineColor": "#ff0000", - "MinLineWidth": 1, - "MultiBarPadding": 10, - "OddRowColor": "rgba(33, 33, 34, 0.92)", - "OutOfRangeLabelColor": "#ffffff", - "OutlineColor": "rgba(245, 255, 0, 0.1)", - "RecolorHighLimitBar": false, - "RecolorLowLimitBar": false, - "RecolorRules": [], - "ScaleFactor": 1, - "ShowBars": true, - "ShowBaseLine": false, - "ShowDate": false, - "ShowGroupLabels": true, - "ShowHighLimitLine": false, - "ShowLabels": true, - "ShowLeftAxis": true, - "ShowLines": false, - "ShowLowLimitLine": false, - "ShowMaxLine": false, - "ShowMinLine": false, - "ShowRightAxis": true, - "ShowValues": true, - "SortColName": "value", - "SortDirection": "ascending", - "TZOffsetHours": 0, - "ToolTipFontSize": "100%", - "ToolTipType": "", - "TooltipDateFormat": "YYYY-MM-DD HH:mm:ss", - "VGroupGap": 5, - "ValueColName": "", - "ValueColor": "#ffffff", - "ValueDecimals": 0, - "ValueFontSize": "70%", - "ValuePosition": "top", - "Values": [ - { - "$$hashKey": "object:277", - "Col": 18, - "HighBarColor": "rgb(120, 128, 0)", - "LowBarColor": "teal", - "Name": "EA Write Stall - Starve", - "Selected": true - } - ], - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 484 - }, - "id": 233, - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "-- Dashboard --" - }, - "panelId": 70, - "refId": "A" - } - ], - "title": "L2 - EA Write Starve (Channel 16 - 31) (Cycles $normUnit)", - "type": "michaeldmoore-multistat-panel" - } - ], - "refresh": "", - "schemaVersion": 34, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "current": { - "selected": false, - "text": "\"per Wave\"", - "value": "\"per Wave\"" - }, - "hide": 0, - "includeAll": false, - "label": "Normalization", - "multi": false, - "name": "normUnit", - "options": [ - { - "selected": true, - "text": "\"per Wave\"", - "value": "\"per Wave\"" - }, - { - "selected": false, - "text": "\"per Cycle\"", - "value": "\"per Cycle\"" - }, - { - "selected": false, - "text": "\"per Sec\"", - "value": "\"per Sec\"" - }, - { - "selected": false, - "text": "\"per Kernel\"", - "value": "\"per Kernel\"" - } - ], - "query": "\"per Wave\",\n\"per Cycle\",\n\"per Sec\",\n\"per Kernel\"", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - }, - { - "current": { - "selected": false, - "text": "32", - "value": "32" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&lds_banks_per_cu\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "L2 Channels", - "multi": false, - "name": "lds_banks_per_cu", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&lds_banks_per_cu\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "8", - "value": "8" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&se_per_gpu\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "#SEs", - "multi": false, - "name": "numSE", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&se_per_gpu\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "104", - "value": "104" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&cu_per_gpu\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "#CUs", - "multi": false, - "name": "cu_per_gpu", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&cu_per_gpu\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "32", - "value": "32" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&max_waves_per_cu\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Max Waves/CU", - "multi": false, - "name": "max_waves_per_cu", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&max_waves_per_cu\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "1700", - "value": "1700" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&max_sclk\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "SCLK (MHz)", - "multi": false, - "name": "sclk", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&max_sclk\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "56", - "value": "56" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&sqc_per_gpu\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "#SQC", - "multi": false, - "name": "sqc_per_gpu", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&sqc_per_gpu\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "1638.4", - "value": "1638.4" - }, - "definition": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&hbm_bw\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "HBM BW (GB/s)", - "multi": false, - "name": "hbmBW", - "options": [], - "query": "$Workload1.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&hbm_bw\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": "rocprofiler-compute_pymongo4_Vcopy_gfx90a", - "value": "rocprofiler-compute_pymongo4_Vcopy_gfx90a" - }, - "definition": "workload_names.names.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "hide": 0, - "includeAll": false, - "label": "Workload", - "multi": false, - "name": "Workload1", - "options": [], - "query": "workload_names.names.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "29467", - "value": "29467" - }, - "definition": "$Workload1.pmc_perf.aggregate([\n{\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"myAvg\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [{ \"$subtract\": [ \"&End_Timestamp\", \"&Start_Timestamp\"] }, 1000] }, $sclk] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": { \"$round\": [\"&myAvg\", 0] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Kernel Cycles", - "multi": false, - "name": "kernelBusyCycles", - "options": [], - "query": "$Workload1.pmc_perf.aggregate([\n{\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"myAvg\": {\n \"$avg\": { \"$multiply\": [{ \"$divide\": [{ \"$subtract\": [ \"&End_Timestamp\", \"&Start_Timestamp\"] }, 1000] }, $sclk] }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": { \"$round\": [\"&myAvg\", 0] }\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "71", - "value": "71" - }, - "definition": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"theAvg\": {\n \"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&GRBM_GUI_ACTIVE\", 0]},\n {\"$divide\": [{ \"$multiply\": [4, \"&SQ_BUSY_CU_CYCLES\"] }, \"&GRBM_GUI_ACTIVE\"]},\n \"\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": {\"$toInt\": { \"$min\": [{ \"$add\": [{ \"$multiply\": [{ \"$divide\": [{ \"$round\": [\"$theAvg\", 0] }, $max_waves_per_cu] },8] }, { \"$min\": [{ \"$mod\": [{ \"$round\": [\"$theAvg\", 0] }, $max_waves_per_cu] }, 8] }] }, $cu_per_gpu] }}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"$array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"$array\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Active CUs", - "multi": false, - "name": "numActiveCUs", - "options": [], - "query": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": null,\n \"theAvg\": {\n \"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&GRBM_GUI_ACTIVE\", 0]},\n {\"$divide\": [{ \"$multiply\": [4, \"&SQ_BUSY_CU_CYCLES\"] }, \"&GRBM_GUI_ACTIVE\"]},\n \"\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": {\"$toInt\": { \"$min\": [{ \"$add\": [{ \"$multiply\": [{ \"$divide\": [{ \"$round\": [\"$theAvg\", 0] }, $max_waves_per_cu] },8] }, { \"$min\": [{ \"$mod\": [{ \"$round\": [\"$theAvg\", 0] }, $max_waves_per_cu] }, 8] }] }, $cu_per_gpu] }}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"$array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"$array\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "definition": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": \"&Dispatch_ID\"\n }},\n {\"$sort\": {\n \"_id\": 1\n }}\n]);", - "description": "Defaults to all DispatchIDs", - "hide": 2, - "includeAll": true, - "label": "Filtered Dispatch ID", - "multi": false, - "name": "DispatchIDFilter", - "options": [], - "query": "$Workload1.pmc_perf.aggregate([\n {\"$match\": {\n \"GPU_ID\": { \"$in\": [${gpuFilter:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter:json}}\n }},\n {\"$group\": {\n \"_id\": \"&Dispatch_ID\"\n }},\n {\"$sort\": {\n \"_id\": 1\n }}\n]);", - "refresh": 1, - "regex": "${DispatchID:text}", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": "", - "value": "" - }, - "description": "Desired DispatchID filters as regex ex. (1|18)", - "hide": 0, - "label": "Dispatch Filter", - "name": "DispatchID", - "options": [ - { - "selected": true, - "text": "", - "value": "" - } - ], - "query": "", - "skipUrlSync": false, - "type": "textbox" - }, - { - "current": { - "selected": false, - "text": "2", - "value": "2" - }, - "definition": "$Workload1.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&GPU_ID\"\n }}\n]);", - "hide": 0, - "includeAll": false, - "label": "GCD", - "multi": false, - "name": "gpuFilter", - "options": [], - "query": "$Workload1.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&GPU_ID\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 3, - "type": "query" - }, - { - "current": { - "selected": true, - "text": [ - "All" - ], - "value": [ - "$__all" - ] - }, - "definition": "$Workload1.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&Kernel_Name\"\n }}\n]);", - "hide": 0, - "includeAll": true, - "label": "Kernels", - "multi": true, - "name": "KernelNameFilter", - "options": [], - "query": "$Workload1.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&Kernel_Name\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "rocprofiler-compute_pymongo4_Vcopy_gfx908", - "value": "rocprofiler-compute_pymongo4_Vcopy_gfx908" - }, - "definition": "workload_names.names.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "hide": 0, - "includeAll": false, - "label": "Baseline Workload", - "multi": false, - "name": "Workload2", - "options": [], - "query": "workload_names.names.aggregate([\n {\"$group\": {\n \"_id\": \"&name\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "69", - "value": "69" - }, - "definition": "$Workload2.pmc_perf.aggregate([\n{\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"theAvg\": {\n \"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&GRBM_GUI_ACTIVE\", 0]},\n {\"$divide\": [{ \"$multiply\": [4, \"&SQ_BUSY_CU_CYCLES\"] }, \"&GRBM_GUI_ACTIVE\"]},\n \"\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": {\"$toInt\": { \"$min\": [{ \"$add\": [{ \"$multiply\": [{ \"$divide\": [{ \"$round\": [\"$theAvg\", 0] }, $max_waves_per_cu2] },8] }, { \"$min\": [{ \"$mod\": [{ \"$round\": [\"$theAvg\", 0] }, $max_waves_per_cu2] }, 8] }] }, $cu_per_gpu2] }}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline ActiveCUs", - "multi": false, - "name": "numActiveCUs2", - "options": [], - "query": "$Workload2.pmc_perf.aggregate([\n{\"$match\": {\n \"Dispatch_ID\": { \"$in\": [${DispatchIDFilter2:raw}] },\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}}\n }},\n\n {\"$group\": {\n \"_id\": null,\n \"theAvg\": {\n \"$avg\": {\n \"$cond\":[\n {\"$ne\": [\"&GRBM_GUI_ACTIVE\", 0]},\n {\"$divide\": [{ \"$multiply\": [4, \"&SQ_BUSY_CU_CYCLES\"] }, \"&GRBM_GUI_ACTIVE\"]},\n \"\"\n ]\n }\n }\n }},\n {\"$set\": {\n \"array\": [\n {\n \"_id\": {\"$toInt\": { \"$min\": [{ \"$add\": [{ \"$multiply\": [{ \"$divide\": [{ \"$round\": [\"$theAvg\", 0] }, $max_waves_per_cu2] },8] }, { \"$min\": [{ \"$mod\": [{ \"$round\": [\"$theAvg\", 0] }, $max_waves_per_cu2] }, 8] }] }, $cu_per_gpu2] }}\n }\n ]\n }},\n {\"$unwind\": {\n \"path\": \"&array\"\n }},\n {\"$replaceRoot\": {\n \"newRoot\": \"&array\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "definition": "$Workload2.pmc_perf.aggregate([\n {\"$match\": {\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}}\n }},\n {\"$group\": {\n \"_id\": \"&Dispatch_ID\"\n }},\n {\"$sort\": {\n \"_id\": 1\n }}\n]);", - "description": "Defaults to all DispatchIDs", - "hide": 2, - "includeAll": true, - "label": "Baseline Dispatch IDs", - "multi": false, - "name": "DispatchIDFilter2", - "options": [], - "query": "$Workload2.pmc_perf.aggregate([\n {\"$match\": {\n \"GPU_ID\": { \"$in\": [${gpuFilter2:raw}] },\n \"Kernel_Name\": { \"$in\": ${KernelNameFilter2:json}}\n }},\n {\"$group\": {\n \"_id\": \"&Dispatch_ID\"\n }},\n {\"$sort\": {\n \"_id\": 1\n }}\n]);", - "refresh": 1, - "regex": "${DispatchID2:text}", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": "", - "value": "" - }, - "description": "Desired DispatchID filters as regex ex. (1|18)", - "hide": 0, - "label": "Baseline Dispatch Filter", - "name": "DispatchID2", - "options": [ - { - "selected": true, - "text": "", - "value": "" - } - ], - "query": "", - "skipUrlSync": false, - "type": "textbox" - }, - { - "current": { - "selected": false, - "text": "2", - "value": "2" - }, - "definition": "$Workload2.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&GPU_ID\"\n }}\n]);", - "hide": 0, - "includeAll": false, - "label": "Baseline GCD", - "multi": false, - "name": "gpuFilter2", - "options": [], - "query": "$Workload2.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&GPU_ID\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": [ - "All" - ], - "value": [ - "$__all" - ] - }, - "definition": "$Workload2.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&Kernel_Name\"\n }}\n]);", - "hide": 0, - "includeAll": true, - "label": "Baseline Kernels", - "multi": true, - "name": "KernelNameFilter2", - "options": [], - "query": "$Workload2.pmc_perf.aggregate([\n {\"$group\": {\n \"_id\": \"&Kernel_Name\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": [ - "System Info" - ], - "value": [ - "System Info" - ] - }, - "hide": 0, - "includeAll": false, - "label": "Comparison Panels", - "multi": true, - "name": "select", - "options": [ - { - "selected": true, - "text": "System Info", - "value": "System Info" - }, - { - "selected": false, - "text": "System Speed-of-Light", - "value": "System Speed-of-Light" - }, - { - "selected": false, - "text": "Roofline", - "value": "Roofline" - }, - { - "selected": false, - "text": "Command Processor", - "value": "Command Processor" - }, - { - "selected": false, - "text": "Shader Processor Input", - "value": "Shader Processor Input" - }, - { - "selected": false, - "text": "Wavefront", - "value": "Wavefront" - }, - { - "selected": false, - "text": "Compute Pipeline", - "value": "Compute Pipeline" - }, - { - "selected": false, - "text": "Instruction Mix", - "value": "Instruction Mix" - }, - { - "selected": false, - "text": "Local Data Share", - "value": "Local Data Share" - }, - { - "selected": false, - "text": "Instruction Cache", - "value": "Instruction Cache" - }, - { - "selected": false, - "text": "Scalar L1D Cache", - "value": "Scalar L1D Cache" - }, - { - "selected": false, - "text": "Texture Addr and Data", - "value": "Texture Addr and Data" - }, - { - "selected": false, - "text": "Vector L1D Cache", - "value": "Vector L1D Cache" - }, - { - "selected": false, - "text": "L2 Cache", - "value": "L2 Cache" - } - ], - "query": "System Info, \nSystem Speed-of-Light, \nRoofline,\nCommand Processor, \nShader Processor Input, \nWavefront,\nCompute Pipeline, \nInstruction Mix,\nLocal Data Share, \nInstruction Cache, \nScalar L1D Cache, \nTexture Addr and Data, \nVector L1D Cache,\nL2 Cache", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - }, - { - "current": { - "selected": false, - "text": "32", - "value": "32" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&lds_banks_per_cu\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline L2 Channels", - "multi": false, - "name": "lds_banks_per_cu2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&lds_banks_per_cu\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "8", - "value": "8" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&se_per_gpu\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline #SEs", - "multi": false, - "name": "numSE2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&se_per_gpu\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "120", - "value": "120" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&cu_per_gpu\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline #CUs", - "multi": false, - "name": "cu_per_gpu2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&cu_per_gpu\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "40", - "value": "40" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&max_waves_per_cu\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline Max Waves/CU", - "multi": false, - "name": "max_waves_per_cu2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&max_waves_per_cu\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "1502", - "value": "1502" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&max_sclk\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline SCLK (MHz)", - "multi": false, - "name": "sclk2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&max_sclk\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "64", - "value": "64" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&sqc_per_gpu\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline #SQC", - "multi": false, - "name": "sqc_per_gpu2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&sqc_per_gpu\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "1228.8", - "value": "1228.8" - }, - "definition": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&hbm_bw\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "Baseline HBM BW (GB/s)", - "multi": false, - "name": "hbmBW2", - "options": [], - "query": "$Workload2.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&hbm_bw\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "MI200", - "value": "MI200" - }, - "definition": "${Workload1}.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&gpu_model\"\n }}\n]);", - "hide": 2, - "includeAll": false, - "label": "SOC", - "multi": false, - "name": "soc", - "options": [], - "query": "${Workload1}.sysinfo.aggregate([\n {\"$group\": {\n \"_id\": \"&gpu_model\"\n }}\n]);", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "5", - "value": "5" - }, - "hide": 0, - "includeAll": false, - "multi": false, - "name": "TopN", - "options": [ - { - "selected": false, - "text": "1", - "value": "1" - }, - { - "selected": true, - "text": "5", - "value": "5" - }, - { - "selected": false, - "text": "10", - "value": "10" - }, - { - "selected": false, - "text": "15", - "value": "15" - }, - { - "selected": false, - "text": "20", - "value": "20" - }, - { - "selected": false, - "text": "50", - "value": "50" - }, - { - "selected": false, - "text": "100", - "value": "100" - } - ], - "query": "1,5,10,15,20,50,100", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - } - ] - }, - "time": { - "from": "2021-11-04T14:21:39.749Z", - "to": "2021-11-08T14:21:39.749Z" - }, - "timepicker": {}, - "timezone": "", - "title": "rocprofiler-compute_v2.0_pubx", - "uid": "rocprofiler-compute_v20x", - "version": 2, - "weekStart": "" -} diff --git a/projects/rocprofiler-compute/grafana/docker-compose.yml b/projects/rocprofiler-compute/grafana/docker-compose.yml deleted file mode 100644 index 68003200bb..0000000000 --- a/projects/rocprofiler-compute/grafana/docker-compose.yml +++ /dev/null @@ -1,43 +0,0 @@ -# ----------------------------------------------------------------------- -# NOTE: -# Dependencies are not included as part of ROCm Compute Profiler. -# It's the user's responsibility to accept any licensing implications -# before building the project -# ----------------------------------------------------------------------- - -version: "3.3" - -services: - web: - image: rocprofiler-compute-grafana-v1.0 - container_name: rocprofiler-compute-grafana-v1.0 - restart: always - build: . - environment: - - GF_PATHS_CONFIG="grafana/etc/grafana.ini" - - GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=amd-rocprofiler-compute-data-plugin - - GF_DEFAULT_APP_MODE=development - ports: - - "14000:4000" - volumes: - - grafana-storage:/var/lib/grafana - stdin_open: true - tty: true - db_mongo: - container_name: mongo - image: mongo - restart: always - environment: - MONGO_INITDB_ROOT_USERNAME: temp - MONGO_INITDB_ROOT_PASSWORD: temp123 - volumes: - - grafana-mongo-db:/data/db - ports: - - "27018:27017" - command: mongod --bind_ip 0.0.0.0 - -volumes: - grafana-mongo-db: - external: true - grafana-storage: - external: true diff --git a/projects/rocprofiler-compute/grafana/docker-entrypoint.sh b/projects/rocprofiler-compute/grafana/docker-entrypoint.sh deleted file mode 100755 index 3775f06c28..0000000000 --- a/projects/rocprofiler-compute/grafana/docker-entrypoint.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash - -##############################################################################bl -# MIT License -# -# Copyright (c) 2021 - 2025 Advanced Micro Devices, Inc. All Rights Reserved. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -##############################################################################el - -pushd /var/lib/grafana/plugins/rocprofiler-compute_plugin -npm run server & -popd - -service grafana-server start - -if [ -z "$1" ]; then - exec bash -else - eval $@ -fi diff --git a/projects/rocprofiler-compute/grafana/grafana.ini b/projects/rocprofiler-compute/grafana/grafana.ini deleted file mode 100644 index d2e07ed15f..0000000000 --- a/projects/rocprofiler-compute/grafana/grafana.ini +++ /dev/null @@ -1,1007 +0,0 @@ -##################### Grafana Configuration Example ##################### -# -# Everything has defaults so you only need to uncomment things you want to -# change - -# possible values : production, development -app_mode = development - -# instance name, defaults to HOSTNAME environment variable value or hostname if HOSTNAME var is empty -;instance_name = ${HOSTNAME} - -#################################### Paths #################################### -[paths] -# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used) -;data = /var/lib/grafana - -# Temporary files in `data` directory older than given duration will be removed -;temp_data_lifetime = 24h - -# Directory where grafana can store logs -logs = /var/log/grafana - -# Directory where grafana will automatically scan and look for plugins -plugins = /var/lib/grafana/plugins - -# folder that contains provisioning config files that grafana will apply on startup and while running. -;provisioning = conf/provisioning - -#################################### Server #################################### -[server] -# Protocol (http, https, h2, socket) -;protocol = http - -# The ip address to bind to, empty will bind to all interfaces -;http_addr = - -# The http port to use -;http_port = 3000 - -# The public facing domain name used to access grafana from a browser -;domain = localhost - -# Redirect to correct domain if host header does not match domain -# Prevents DNS rebinding attacks -;enforce_domain = false - -# The full public facing url you use in browser, used for redirects and emails -# If you use reverse proxy and sub path specify full url (with sub path) -;root_url = %(protocol)s://%(domain)s:%(http_port)s/ - -# Serve Grafana from subpath specified in `root_url` setting. By default it is set to `false` for compatibility reasons. -;serve_from_sub_path = false - -# Log web requests -;router_logging = false - -# the path relative working path -;static_root_path = public - -# enable gzip -;enable_gzip = false - -# https certs & key file -;cert_file = -;cert_key = - -# Unix socket path -;socket = - -# CDN Url -;cdn_url = - -# Sets the maximum time using a duration format (5s/5m/5ms) before timing out read of an incoming request and closing idle connections. -# `0` means there is no timeout for reading the request. -;read_timeout = 0 - -#################################### Database #################################### -[database] -# You can configure the database connection by specifying type, host, name, user and password -# as separate properties or as on string using the url properties. - -# Either "mysql", "postgres" or "sqlite3", it's your choice -;type = sqlite3 -;host = 127.0.0.1:3306 -;name = grafana -;user = root -# If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;""" -;password = - -# Use either URL or the previous fields to configure the database -# Example: mysql://user:secret@host:port/database -;url = - -# For "postgres" only, either "disable", "require" or "verify-full" -;ssl_mode = disable - -# Database drivers may support different transaction isolation levels. -# Currently, only "mysql" driver supports isolation levels. -# If the value is empty - driver's default isolation level is applied. -# For "mysql" use "READ-UNCOMMITTED", "READ-COMMITTED", "REPEATABLE-READ" or "SERIALIZABLE". -;isolation_level = - -;ca_cert_path = -;client_key_path = -;client_cert_path = -;server_cert_name = - -# For "sqlite3" only, path relative to data_path setting -;path = grafana.db - -# Max idle conn setting default is 2 -;max_idle_conn = 2 - -# Max conn setting default is 0 (mean not set) -;max_open_conn = - -# Connection Max Lifetime default is 14400 (means 14400 seconds or 4 hours) -;conn_max_lifetime = 14400 - -# Set to true to log the sql calls and execution times. -;log_queries = - -# For "sqlite3" only. cache mode setting used for connecting to the database. (private, shared) -;cache_mode = private - -################################### Data sources ######################### -[datasources] -# Upper limit of data sources that Grafana will return. This limit is a temporary configuration and it will be deprecated when pagination will be introduced on the list data sources API. -;datasource_limit = 5000 - -#################################### Cache server ############################# -[remote_cache] -# Either "redis", "memcached" or "database" default is "database" -;type = database - -# cache connectionstring options -# database: will use Grafana primary database. -# redis: config like redis server e.g. `addr=127.0.0.1:6379,pool_size=100,db=0,ssl=false`. Only addr is required. ssl may be 'true', 'false', or 'insecure'. -# memcache: 127.0.0.1:11211 -;connstr = - -#################################### Data proxy ########################### -[dataproxy] - -# This enables data proxy logging, default is false -logging = true - -# How long the data proxy waits to read the headers of the response before timing out, default is 30 seconds. -# This setting also applies to core backend HTTP data sources where query requests use an HTTP client with timeout set. -;timeout = 30 - -# How long the data proxy waits to establish a TCP connection before timing out, default is 10 seconds. -;dialTimeout = 10 - -# How many seconds the data proxy waits before sending a keepalive probe request. -;keep_alive_seconds = 30 - -# How many seconds the data proxy waits for a successful TLS Handshake before timing out. -;tls_handshake_timeout_seconds = 10 - -# How many seconds the data proxy will wait for a server's first response headers after -# fully writing the request headers if the request has an "Expect: 100-continue" -# header. A value of 0 will result in the body being sent immediately, without -# waiting for the server to approve. -;expect_continue_timeout_seconds = 1 - -# Optionally limits the total number of connections per host, including connections in the dialing, -# active, and idle states. On limit violation, dials will block. -# A value of zero (0) means no limit. -;max_conns_per_host = 0 - -# The maximum number of idle connections that Grafana will keep alive. -;max_idle_connections = 100 - -# How many seconds the data proxy keeps an idle connection open before timing out. -;idle_conn_timeout_seconds = 90 - -# If enabled and user is not anonymous, data proxy will add X-Grafana-User header with username into the request, default is false. -;send_user_header = false - -#################################### Analytics #################################### -[analytics] -# Server reporting, sends usage counters to stats.grafana.org every 24 hours. -# No ip addresses are being tracked, only simple counters to track -# running instances, dashboard and error counts. It is very helpful to us. -# Change this option to false to disable reporting. -;reporting_enabled = true - -# The name of the distributor of the Grafana instance. Ex hosted-grafana, grafana-labs -;reporting_distributor = grafana-labs - -# Set to false to disable all checks to https://grafana.net -# for new versions (grafana itself and plugins), check is used -# in some UI views to notify that grafana or plugin update exists -# This option does not cause any auto updates, nor send any information -# only a GET request to http://grafana.com to get latest versions -;check_for_updates = true - -# Google Analytics universal tracking code, only enabled if you specify an id here -;google_analytics_ua_id = - -# Google Tag Manager ID, only enabled if you specify an id here -;google_tag_manager_id = - -#################################### Security #################################### -[security] -# disable creation of admin user on first start of grafana -;disable_initial_admin_creation = false - -# default admin user, created on startup -;admin_user = admin - -# default admin password, can be changed before first start of grafana, or in profile settings -;admin_password = admin - -# used for signing -;secret_key = SW2YcwTIb9zpOOhoPsMm - -# disable gravatar profile images -;disable_gravatar = false - -# data source proxy whitelist (ip_or_domain:port separated by spaces) -;data_source_proxy_whitelist = - -# disable protection against brute force login attempts -;disable_brute_force_login_protection = false - -# set to true if you host Grafana behind HTTPS. default is false. -;cookie_secure = false - -# set cookie SameSite attribute. defaults to `lax`. can be set to "lax", "strict", "none" and "disabled" -;cookie_samesite = lax - -# set to true if you want to allow browsers to render Grafana in a ,

    2. )Zc2uojkwkmY6FR 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 V&tpf<)&B;Clc%en%Q~loCIFk~20H)% diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/roofline_panel.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/roofline_panel.png deleted file mode 100644 index 47ee9bddb1aecdde565a9f3b8902c93e7935b310..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112803 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 H8~DEg0&OAD diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/sl1d-l12-interface_panel.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/sl1d-l12-interface_panel.png deleted file mode 100644 index 5c3480ac9fe6060f113395c7321787d57b28cf9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15813 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 L6(!66Fbe)(-V*XP diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/sl1d-sol_panel.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/sl1d-sol_panel.png deleted file mode 100644 index 92fa5a1a4ab43b7df534d692f9dcbc6ceb076e8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15046 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 diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/sol_panel.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/sol_panel.png deleted file mode 100644 index f456500e02b09d7b9837be79080210f060f27f88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73168 zcmb@tWk6fqqOO}76`-`GKyg|qF2x;6ad&rjcY>9+P`nTW zYFcip4%SZc=5EGj#%{*w+W-LI8&f-LCnZN~2RGL@e7e9lUT^r`F~0FefA?ejv&F;3 z_HVa&IJy7cmGI8+$+{{ChO9 zQlA&&YZ7h#{4ZXXj9;RjI=#VueHiiJV1d=S@nNO0_5Gg-fnu!hKEJjCIKB-u?@}@| z#p;`QkmiO3WPa^bTKzF6DTZVE2`#4{+G`$KJv=z^?f65_>SoCL`~?Z*A_Q5 zH7CzA9UYH7_5eS0C2lY!Ai4wfU6 z!q>Nd;YJur@MqLs>fFf+Av>-I0K92wCZ9$<81mNBOu_7GK6&!ifTiUyXntb(Vo>;| zSzKGMg)ZPEA^-r`531EuSRf5xCLpNwJ)iA|##o}*=YLfJuFfWZ>_qL@2h1D42~rH8WTN?!`L3=1(QtLBgzf*kG6xbOUaT4JbB zZaApnkl*Xsl{o!{{zy1p5QQ39ys1A94Omr}`r36jMS6jA{nG|iS3LK$*0H<(s$Xp9 z2hXHBf#3j zyCTa&T!bz#5+!xLG-(K0OrcHi9hYx8l^nc2e2zN0MEZ9uT(3fJK6U>l@2(!a%J*HF z%;=`kQGJ-LF={8VNp_QUm9DXToO#u?>9~x`WVM6{4?hyho|ruKuP%cqoI8fWJMX-A z?T7UU1vrxW>@2P(A{PVTDbC`jyEj+%!*4D@jkIyFIwE}X*5ADwc4^<3VWZ|=D>C+? z`$uHY%6Jyn>? zM)MF>$GV5qEYx+&sMW;rlyfiWS;lI6!8+9NvhGSGUm>gx$=eydCX90AD_^la-n(h^ zPFLnWLSC#yo12)t@x1(j<4++g3x{#nU|e&n@&@b?A3x0hkPy9YCyuIhY>2W)4GCZ2 z7=jcRoLf}_E{iNa?;G7Tw9H$EA`_J-tm=fjYx=L6TU}hO1_U;OO9U=Ln2Fsh4id>x zaJl>q^F`hIy|vmY2~49_8v_Mq1XM5jT5X*TZ@Atr>n5}h@f;)I+EbK`Abx(vq%hKo z)F#hfEnszes_Sm|JL%DbP}{N_UDq`KJ>fW1t#Q!zJ)eHDBlTqBx2qvH*GTeJ$!la8 z0lBmOyg2ka?<)LS6O>m#76I(!*!Mdu%6#1`Ak485W$HFZ?n_@#I`%r!LYR4d;NbC^ z*Nw{cUfB#%GT@{F6+%9tXw_vWe*LMN<=PV%<~7($j+HDk zqc??TD1Eb)DxYRn*z-^kF~hPJB>yX$g2J)IWg$j5p^2+X2-Z9rbI`H2#Av+mpvQG@9I3ZldIlpt$|W zo%$K%M%NlYpEeAm?#2RBPMDyxS6)+0NH zHy^I|%Qgc`92?21G8uH)&lAK6p-Vb8Iy}Y`n*#R%#G)rIE@_%-0c@5GDHU5z$Iw@h z4p6Ldu!PM;ICZWtW$l7i-Ex9sZA5=S!61gJi``v3863oQ zwD%5^@1E^GXNJMIo6`h8s>yu*1-?XPq`Z4uqJ7`tnWE}2>#()z8Sr`aHno9fg+bYD zUSTu~s$%gSqQ*1?Wq+dxrrIzRJE^K<;Gfx_`tXX>+WSGEuRN^BU6_%Q(E9KpwCJt> zP&NU!ZYVX4r`uWk#7=Z%0Ar=~7Ku;5iNZ=#lk4(N&b|aJR0JPK5FKw3bePv~W;0%( zLR8T<33BS_ZWATVK~&~hxfSK97XW7BAE%20Vh4BSdKDdcW~05_fsZp zsUN=UJiJ+H)vXs5KzEaub~A2O{-R44RiwrtjlE4?UpZE>Mt`Dm)TDEI7?vBT|70gfc}aRv>;lUDb{k5`5m-X1)Xo z9xXqW)_(P~*j|vuXd9wa6qoy`)&cR&Onvsm*%FnoE%4eTGj%Tbh+0elnUI_uk+VjrWa*j z>WnK@8~A$x3Zq?I_I_&t($G6JI<++CDE)Qm))IWda(m6)Wc$A~LjDlLaedx@=Qe67v!YNqfV`|if0jFJ;lfKmS_ZdK$$hngt=+4xgKNZEcU} zOk9;Uef!-+J_C1?zOlvo<{BpuHqyj_7HwLhfv>%NyOxWY=GI&Ug}l`E{s$75gD}x2 z`%r~tcNK>@d_pgtYES`rqJ1l-%gSe{qe2|1F233J)rY-Bk2LSa!gnL~7nyQMOQKN_ zP;J%sbcRlQiY-~FC-GCzzOT9m871Ow<4ey^nj07O5XG?m1?aavXS{4%_HOWwdF;4riK-X1dN^SwnA9U5K>m_1^Q$ z5OflWa+^s~I}y{K^&Vfv2UTIun3{B;Uc^b7m_R8AC)iZ-ud3M0v!p|#^P>`l^N$vj zm}KH2f0^gCd8o-u`g&WYCrU<_XTOF~ZOi79z~Pj*2c(?Qk{P!5;`5a6eO}B@80pGw z8k4~)67OSn_kPc>WS3<_TpCYEL`fr>Cc*lQ1Wg?RL#%k!q2fm3EnJw-#)Gt zGp05ew<#eVCyT4N;oaZ&=y;#eMANJVN|ONVh0@I+S-7gyN?Y;v%^=I_R+BOV5`dHD z#jon{!7o{<7$o-~hd<)fP?QMjwd%J4?1QrzoZf!j_lXp-x{qs%8ic^U``L`A4xlc- zcWj8cO02GoQBI8W1dJ;`BT}HXnn&`E6aBc6ok@(^Z!T(_Q$z}rEId6Ic=wbSr1Y8T z+}+2Ki{RuEhg7OJN4DNfTjuzE9Emlhny)YQTJIG^YVlsrL4KDSDCNx$&$`mn4N*Pj zl+Vj11{;!;>s~@9h26V~ju#IFPA<}!VCzSlu4!>awy-nP1$VowWCvcmlBeFtJFcfC z$J4Xd{?*8e2WJ~z)@*O@K`0gIf2|&swL%V!T~y=+?C2F{iK;2a*A5*gnP-FI?DtT) z^e~Yxi{AtrK^i*qu~bh16Xl@?doLfyl5!p`Smm=8laVe}GS)MHk=Fgr)j1!_;4D6_ zcXr}rs1toEvn3KhFqO&S5nK73|E)}NRI<_B{jg}Vv&U+~3#)Pm(hdiGfe~a3JwJaV z)MSNpELN7b?-hNncgXS0FC}S)#_^HYI0v|eH$JEKzy_OMmnQ5v_WZCzTpCIHbhu1M zaSY*>m<Cupd5DCI< znVOQB42mn?jl^K8t=p+XPn`Uyz<_7fOc`KEpD@>WW<1x{(&YU;lYA4;4%^+6y2;Yb zZ;pnR0x@Jdg&!@L4Y%Hw)qTe>9@uju$q{4`dOc$N!}%_!9#g`L06Nl~X4lC)#tC8aRv z2+BD+NNB_WdNytBYWT*aV1y<%UVT~$Ms#3-7-u|S3&TsnU|xeSzciZ4+ec7fuFrOf zCWod?ypN>e)ugI6EVMVKqvAM5q(ckkYJ~fr!nYBbzObwg&TN-+H+RMSKG%2<@VZ7V zgI0*n_qefMPqu}{HX|mSdPpx}o8}tl4beNROqVvJ-;Yaa{K?j~Y^NV5*bmWBTw54_ z0cvsy@zeCiDHOP_$fRB7w8|FPN<3!#Y+jU+AA9By%Rc_)V8` zNLZrTc^5WOD@T4Lkf-0Wlu)8R>dVPDVOlVfisp`vI_dI@wVb?gk42BCkfMTRgTB5i zHn?xqYKif3JQjB!xkXa%d0*(1ZY7P?@d+PFRyJc?*qKkPD{!J_*G%zn>~mvkCKb<+ z2OD`0L11m)xt+Pr__VE>DM>(eIsdbOvWHE`--S_kyY(yOLq0ZTP4~>bRxeP7mb+;u&8R=M_%Y$Q!>mGNzuot=a`%87=B^1e#2T(~|*O;5s(yGCf)9w+8FT~|&P1$M}%=0J&d{FTgh zxre;pkro88tV>5$S#&R$j{EkPQ!)*0ut}~4?)X#xjGOw-> zm3K5@HQ^gyPNu`gUL(16gx9#Zf~8Y;0(%vM=Qm@J?xs4RP8bgN?w*9oRpm(jChf<$ta3)JYaoD?Ku_1qqxinmON@*U>5`)2enOo3y?h zWEb10(?872yl6V5jGXg@TP1<^filHM?kfo|6d$IG*jbz_+pjgv7s>(JBnfK11}H)i zX5AQPKB6J_F$TM&zexvXFIk=Q^3%}D{7#OK-%r|d*+2}|i%Q~OJkZ!}i=KHq!7XO0 zQT+7CbtTBFrHrqWOc6!%AbYZLhqm};#69OyK3v}WMWdyY(;-8EE`5AhM0E5e5D+M^ zF_8AR5-F+KkRayU9`s!L4=8HXJBPoJ2e#aD5n%82(OvWq$V_=VPQ7#!dVa%k&#C^K z*R7O!pBVE$9Ov12crN0hOz|>57jN$vP%43by!scMp_5snAyO)1Tk@ig*?@RGaPBQ1uPFt($J+)RAkU~R6sJUl zwN!FXSIo-^QbMQIMpUXn~$HnrI);Ct*!mQv$qXeQ*j5gF}C=^jFqj_htxy*XdaW$#^_rWXw7 zme*NtZO}(*7DFzM64}_;0>B6)MWa#97#Z}OlyDeS^JF$mSYMJOo04Gp zJ%o^0;Qq(QmBw3AZ>)Vu!QXu=e$iBpo3iJs&uQb;rc^-5-n|{XU0JjKeaY zDC4zrt~IR??%lWzq_>|Va_C->rHqO3_k^J*f|N zbXWK~Ik5(A1d7?^>;lZBeEM!=7Ef_FvnRDa(si zDFzruBUmA*pyXG`6m8|oXEoc&>?(EsAs-%nmsqCXNdF1G%97?Z&r&Qsr&&WD^~9)| z+lLIcu&`z04aStQ-5|@Cd(<#%9=_k)Yo~rW@S5)BlsQnbZ(NUmTe3hGjbF_EJ6pO3 z#$GhFIvNRULLmM#0hQR4wjTx|67WeZn$s>9!vN~_(<`fz4xD}%p?q;TwInBHt4q?L z9gt_wsn;48?_sMqvCe68v+>a=wcuuR{rp8+_fdI;$g(*a=o^f$-*r%h*Udw0jT*9^ zx)(9MhlrZg#7`IksP7rDJ*0e$uh5f3Zn*QLxy8X3pk=tr6QIhQ(PRJ9wd|t{+NeA8 zajvi5Yk(X=>~5qOcFoe`v7dNq&XZKa6YUyjjKW`B?{ndBb8klU;gSEeJuWV8 zRM1sx@HAi1mDeu9UsMdH?}d%7Cw*yUSZWz(SD8{ZdP{(i28#~bAzH=*eA zqETw_8%fkHQ~7QSfjsPk5fGvs^16=aXP)H1>9=ySh93FM*1jz}wn<)ZJFrhe2xmTR zF__64`Rpztg{?A=&28Ll-|&k$;qA6nKalE|#%C^%8T~-)zLK)ncP2#m8a-)k!=v2g-1Kg>&z0zrU(|URqvS+D$;@gTF5=4QFdg;z6Z1j#?aB(MU~!Gc#D4 zDmr9^%aXrx@BRf+;N~a|mB%i7Evw_!XI=%I3N3xckPd9mXv<*2rc!5Ct$rEqy>FsL3st=Meh{u=Aco>OO84t~AB4TWsZ1_2H$@ zMG50>m>KrpU>cjlCgNW-`LV=$^aWT+rZ(x1+uvg6OXwJk51{F(!x$@0+l=C;o@rTM z|6KPB9fSL4t>WPx9E9BRx)SyJSr?=Bb1q@(I!Y`#?PNZdnjZ{bJNAmdC~pM$4|taM zUWG|_wvjVsE)PCz7V3~#2hB?UT3HHMn+#T^JYy`Itns&T{s^9k@|+R;^y!l!VpgR{ zZFMM1^g6vDeqBfv988l^7FavW=ISy79Y4xJHV8|jRHM?d{I^D}py?KQ;sjMgp&=eF zMpB9K(Ylx;2Wc~&F9pOhC>c%~RWb+x5$LP>L_)l64AX%d$A@5+L06cHDDikr{5zDd z!uwbz7S*-NM9q-GWXMG5!Ysxkf-AOe-j7i_++BC9)CX!)0`w)?ci3?Q^2%FhrWhO7 zQ{}z&Yqd3sk!yJ@u%JZCfRkP4BEN;V22Gn13$Bmn2P@T7oo$h*ljS{k@4l3Y*I?6F zO=0n_*7e4joz5rac@}3mx4O!nZ&CnFHo4CZE3nbTq3-?Bn`m-;y@U0j#V1q~lofo- z8i5}F33Ke8G^x;?Onhwq^4~#`e}gQ$=|6t_sJOB(Qlr1dzkL8B&fYZ$G`>)}K1}rHwKjdk05A=nF#1AvA&RU2;XlDg|Dy9Cti^P08RvvJ;dy;Y}_05v<6=P5Lgom zFYjc6k)e~a2Q%S(k30SDygLbQ%%fhNzi1!C2TVgbZO$z(x^xtTRK7$lLJsg2Dq;}3 zKQ3p@Xnh?VBo@48gr}v~*~$EB=v5WdPjOy)9at>R9xs+Hz!mo>TW>(ZY4Ic1%zlOd zVx_e2m4$^*yXm6Un&haycmB$bOp6>i_)jJa{md>iv35|J7Ut7}LG47HQq!*(HXO6r z=qh5Gl)Uj;C2bbLE;VZn)!Mvs7QC%dwVENhu3y01qm~^uaDDD0qGl)+3x-@CB+9ME5_mE@;8|<5fRTedj4p4K0?+EW2irT6aM7>fgdutd%&`q z!2i>M{ih^Sl~#=c+KG*5dywuCD{;an$IFd4{B@+C?E)^qM!v;U&4XDUaZFXfXfJl} z8!E5iY1P_%RpxORQGu^Ew>$8?#11Fzot-eu&ytrxTBe)9yWRIY@8ub2r$bfV)rqKL zn^NH><}K%pQm@U^4R)@9`7H*!nQ*_X(W)7M{REm-i|ea_NpYV#hA)%*f2IAr=Pf@} z-=A?_QNa{4OJ6WqUAO&Aa3M#fX+2<4(?Xm~Fqvx3ez*BZsRN;_GLLMSAD-HeokRXk zkaCQbWM7yIPn{G$8fR0`1S_jw!%&l35& zqQQ?Rm?Jw-%Sc>Rw&pp8Sr3}Q{OY-hkd1NwU|&$8LyybS;_OQzMK$@?{_o2#BuDzB zPd{Vug3TCYp%rv?5(h&^fJy~$r*$-4hh+c}CwW>N9q!N=lPo)RTfM4}qhSOrr)PsX zIgq*-v!;dU+nTMa^Ge)#HwzrC$F^d+eBdL6ySw_|iqt+;g^C9~f9HcOFtp)V$2hN& zv9CY8A*V!szHb+X5lPKDGKwSB(^;1B^JqBN*TQ7tD>Zi>PO#ZU*eBkz ztbojP#bTy2GX)`TJ0VRsYHPW&tfpv^S;m6N3a*`J0g(m~{*(1Mz2Ya$PX$W1oPd`O zY+XBHb6O*$kv%JU#d?TNVZ9+sYG>N55MS$%?hxaTCP`fw364E@uCXj?iKxUaq1hm{ z{u-`LX@gUvB+vzz0ybWzeK+31ABI+E-%x@s5qk?3cR|EQAMN{I&P4j4YPulx^bme2 zB3H~==|;AIji`r#?%O|NPmyeM5T?M^2gDnCO5nIp`EODPYb#tMT^+_c%Vd>9^UH>* zmDz6?1UJd=PSBC=QM&J((^~V{+!c1^74#XKoEDc{Xt1SoD1r-eORBb7-(&MBr6TyW z0ZLDcES8QqJ;!UTB{|heI<_05VpJx~?U6@mRlN5$HQKk_t?X5cihc_fo&d)ROMn87X)A6qQP0wHqdrOJ7j+|45 zaZa|omM>}=LW;$Oj7z=!Qr1q9;})dL6@xjtjy=|Cs$dx{&H4jsL4#kR#47VDvBef1 zoR4KJqBP}ggA9g{uk|Mi1$Co{EnZoMx8-Hkno+Y)7Ez1ztTaX0`X|{DxN;#vH_8b; z$i{-Oc0C8{=fuh1=AGrPCx%KxAZ286UXPZ-_NOmXi{ zPzG0bsP^x0LaSOshHGn)e%x{`b5Bpr9^sh$V4M!%*-OU;-J31W?!ej$IqwNSP=Vrh z%yJ+~tf!?>NfJp{pQSZB3F4aMnZUSB@v9{w2Rhio&{9fKTOH|q2=pPqY})&gF|1L! zVfXNa#zFCcD{gz3tw>Fpg6<_~Nl;z_6R`8y{*ThuHAKo(^TkAq*gBFG{R_?g zmGBFC`Gv2xhAo%L0-9-+c{J~66=Z)glL%M9v-%lI?6Jt{?pOKjeOMY$&29nli@<}i z0deuuBLE|svTqF3 zPg99gz`)~;?mu>nE4fm;gS4`#jJ8PQx&D`T1zk*uJJg;TJy*zK|7DPL7mK1aXL{kz zy4sjt?s`Qy^YtAg_EEN58I7rJ@!RZ78>y_^-UH89lNIL)h6!R#z#@H zO)4xFRz&-?>MN0iOg%;ow;Wg@oaa58$|v(WM<>nSEqCwc%zVJA@#hSUk@J3;z&(6` zA3YVevD_#gnC-$K6Ewq65sT3GsD{lDWEfg#e&xK8$2S>fO3oko!wjBsbMCpa2hEG@ zX$&>h2mg!^yDu&ppdtIi;ia{o52A+K#k*=={06wE@q0!=T(E!h0Ln%#OrzC^@1LXl zK{#D4C#T#@=+=?Jayb^~=bl`9S;wOQii4;jX3afwhRQj*TY_AcYT3u1Ez{o~cy*vY zvcGNP!AWvUe)g0{P2p}4Ri5|XRl z#RQqWWye3=DUBRG=1bksD(lJZ|qVD}EIsNq_`ej>Q**v;^R{y1A z^}lwmB$nL?;tiWA5^2yv(et}%Mei5P3Yk431~kjs)1mbmGi(j!AHMvc43^Wytk_E$ z@di*+N7hn3DN#}PdARemaEOI#eLWVbF4k*un(37A(M(my?e(>&{sqfqO zgT=+&1LtjEHE!N=fuWH<$JfpV4~}hD*r;4xEGC(!^K@UbBsKX~ECl!|Xv|U4_H{{l zvzl<#^&wIUgN_UMC7|3Q|m&|+4cb51% zW|WqeN-eftN2dG8)g{Xc_{CIo&+W9mubfS4Fv&8M5k%I%b%pT?6<(frwyb1;psGT5XZn@^vbKqENpl+bE+#Qeo&)ys8i zm$-e_@~F2{Q?jntmm~nJ)sx%0;_SU1HQmscvdJ!)b=NQDCeZJeU@p9E`SrkFB;7@(6Vd&KL)}F%KFp<2Nkj-s6rx z$RC-VXJMEuSP3pr-Pkb8LtC|p$mfr~r=2c;#X4i`bu0cc)%m9A`8)H*ior!Y?WR1T z`R43FaHi1i{Pas~qIKXwd9s+NTscxwCA~=zDL04w!V=A)fo$(AeJ<}Hljza2umL@c z{u~yssf@FJDtZ0UN2qL_yL?jF+rI*#Hw?~Yt$jRx>6^QNK2iDCYKL6dx=|zb-8+*I z`j-zmNgW&)<=4IR<5Ogtav%Z|n(-wW$Pi5A^2W(X0r~OIy*K1v9)uZ_?HGa+OV+6j z^>mI5^Dpf%M^y4_MHG*-A9kd6u81U*=-NJxLoktV$NbzqQ2t(2)$06B1x5pb2a9@c z*Ce(0s^UL30@SReyxlr7Z!p&d0H1ITG-k5VJ=EXHZX4hnXjH~M5snUeY#+%Lnv5{q zO1XY*lr}Of1o2{jIx~`;yH)x4s&DPI+t@IJfYf`XJg*^d0X~;o@ai94kVcT7I9}S0 zI5NU#qqwi)ek*>y05L18x*CSHi>mMhgOb7Yl(N}AO~0gNJhWQfXFHvo$)+ULU~r~H z)NRbrE7B$e_O&c?pM66Tcv+s}WgV2Q;8#PX3y+qvrmJXfmJE&(6KR{y#+|4mdFAs4 zZlBmA5|i>bV78jPsEJPqAx_4m@-du$5~=MTj~Yn?J01@Zyx_3Qo%&bAI6d#2R?;;IbS%;RKw3{JjB%eb%%$Q$oJ)*8tf~htEBL>+* z{6VnwRa7#73xNBmVC5BvLhSKyShq~-drliKY%|?$`M9%o#dS8;1O@A_`K)TI+g;N; z4(u)+r~%&=^`~8H+CLTrG@vabWd4o*<;E-CW3t{_xc?3-|5(O<#Yz~rc@b2xIC*-U ziWZEJ;w*dYBLWBGY(XUUrd{+7eWd{7J3pfeMsspZfdLa2nlh&Mz?D zVqoe#3w))oTe9fc(FxmouNZttf!`O43K`v>en$r>qvz`z^0&%pxnMryXPr|5L6Z~G z#-go1huh}j*B|%M!0KHhr99fVA^R))_|YA0pu5zXtgcAjx-mM; zJ?FD_T~I4U832a zW$Wr6EiSs)8IHNPRB6u-r?8H9XBuegYymDrRXG-wKA4~yzfIB&3+GCX+?L?yc&Q9L!}likchETL<2F}$EsOB(z`12TH|)?!{ajPAaHda- zulb;nyyzaioyv54@trwoD)a&c0AR@ce>(n05wIP4c>ne;_Wseb|G(C*t7x{`?I#2S z9orY1@1^^TT39T6V+}wz^GnrDkAL;0_Vpu}!U$@Zqi_3m`$lM8DSw7rk+@JxaMsL% zxKzIL?BPD{vBUo!CsR^x+jxo|v4{vs^0MAB5Dn^H@vx(f7*w;yJfObsAQo9RKKpQO zc|?KNhXy1FAlAAymTF)P-HCjd>0LQHM%)AO4UcPt;Q2Z`MAc&Lbm$w_7XDAnd}i{A z%Zk2U2=IPd9C6Ber)3dOwUl|Sq5jh+O(*Kp-ld~Gi3qIAvt~)CX5oUP zO)Aeb0e>Bf%l1Kg=2FZ0p0dr_4FWTxfV~YNL@rQYUIhcdlO@|?hx8fWnz>PFh3*P!!(J^B8E`nKEsLgG55Zf`7wo& zmUW~pjqk9LS97+aARl|{AP3jtzSJ2DLx*+j-75okWU zzdCJKp;aO+w`ZvpDUIm6N)MIh!OA7Bz|2Se4691nQDiZ$vL0X~-O8o{x?7?@sji>iY_xHrU(F2$7)28o&R+z47qz zM0ql<+LpA=KUHMy{obntU7-2vOJGgk+wywmw?93MljEL$2UvA|db@S@7a3yy7c!Ja zSOonvrB;U7%iWzIK-)%b^XTot>uj(#IlRxlI6B`u^J9PC-4wx^W9{jeHkS`-388-0y(Rz``|OXm{LGQ`Wqj zdrTbL4ULZ__ui$A&b%P5d0`9QTc>V#&8J%5p^W<-!|3jk8;PsRQ#2Yvx?NJ=KcLhh z>Zu#sp-m(ov@l^z8+j&gniR)y@`nstUm;ZAzcHShrg&cWSZ@esW@>^v8}D#os%>eN zEKCsP(E7H({n}u7wOc_H{9?Ky1BNbK_+{V`_SWzb*$Hve&N;W^1uqcE4<+czTdp6$owTrazr z@_fQnrm3Ads@_K=G;ikQ)|CH(7I|1o4yKjw_xJ@Qf-OT>KW|?>1q?l5VpvIVRaLNn zjZoK+%&WS8%zHX29W6B^QJABG{2uT5P+`oP=iUUnu%|9DDW657&6`|&yj}h2LOaS! zl^i+>Q8v|2t-a(lpa;RBiL)Qm?Uo*^y^}pBAE18nqsKy5-7U$u*s{yLXfbpt zIQeS)Pmj;ZIr80B*!^%lxh?vSWmJaPK9f4;z$ffXZ_x1Orxr9(DsX!`Fxz_(Ra;qR-U-&;bv3691V$7}vP$@Jev8m2Puc1^|AXXuZF7@RNZgY$|U^qPaie0lJ z0pIjbOK0Mb77_)OoAQgRtR)z)v>~fbRyT<7@`+)4O7$PQI?u+K41ut&Euw10o*?Nu ziCXrY|8$t2kX0}{nbLg1({kf?RQTwCFP2U`!9&FOm32wu)m5g!fs&~-i-B?)@%jdJ zK|xn$Q*O!hxBGw7qL2ATwQ>gt2LLIl6u;GvKimz1Ft~c?l^wpu5hv`22n!;5kI$Ygl0|Zg42_U z*Tc{H>>kQ=n2s2r)M$=en4(K2D&5z9T>X4|mAE^#9sI*dq#51Qdy404t|2q5BqGdJ z?GJa+Ve9I(M`PpsYd`O~KioJCuY-mBY7O1bb(+uUSzN^y$0Fdm6F5F>^iy%Jel0RZ zSBco|pZ;-#z9i@E+>4WaZ~k9xc@TW9k{Zo+)F`vEzCBRuNto#!{w(2S&zDRSzkLLD zo!BoMbY%qm^f8=+rX}ac&%b>o`gUcpQjsYD35`QILSBVANIPnuDk5?X$h#cd66yDy zZQnAFyYTpyP45biK7ad1kZYmYf5miUpzYv4Y~7ocm6dCXclk~FN%UwJA+ zcS~IN=XiU2IRjS!H8LwWX*g;DW>|lP)B-4Z7&mCL7O|!NFzf( z{_nd(O#f3t{Kx+PL5eCz^|zo1C{bokM3srjFT4MNV8FMH-RbJMcw0c%olSxAlKv3W z1#e`^`db4m&fDkochB(ub8HIlt&u}2pY~wJF4YMkjxdC3)U@F078R3uga`#P;IraT#dB`2jR#%!9m87`o&3t*-~H-)xrXpxk1#ecbAE zbH=Of9GwYrF&$04V8k=Uqr)7%l=|5L-e7Lg5Dw}G2_-@<9ncr^F0||*A_tA{H#;n= zx790ZXlUdf7~DwQwgda$rnhx#n(ezAQcT&)=~WG}u;2A4*ulY(l?n5A|mkXSS->lw_|gm4k6V3@Bv;i zJcZu#2we_5_N8}LU3Y8~rjiX0zxJOgs$yrGT(bU57mD6KBZVw#T0IiVJ5Ngvw$Jv%vz7sUz z;ofxis0LNgY8iRP(H}?@K|`YFAI%9AijZ1#zwrSn!6-v8yR4G|xy$Wvg1mr#1Br(# z-r7E!tj#&co-%9!)&{vW()mQXv54qPvu4z{F7xKT?!H*6&{Uxb=$mmx#UA-T5w;^{K*zDw~DE2-%IGZHoYtD}x~9jK8OP+Mr4Ulr%G_G!#y`zg#3;_d*$S`qtSI z;dw8i-vv+f#op@EW2#_zLLpBf`e=oo)3bP_x%ICjl;}t`4<$>>%D!fL2CK2W8bOkb zqbIafFCz-ghG`j~`1G=4Ep7=4fM@K)njrO8Mb1|#T2$)wiEC{_0oCSP2}rlW2qDX$ zW2e<;*hEz;AWCYXlo)H=in{FMD}(7vUpEfUa?T|e!xv1p-t}g&<#P>#89402JMM0= z-hMYmRm_i5GFcu(?qz6z6k@qxTW2Nxe7Q@kXwC57_J{c+`g%HazCpDm>-W`tV(|rE zty7WVK=kHyWHb955lYdF76H+BYeJmNx7yS`Cd(jqEpfq@(x3%sqGRuyJ6M4pzSUHM zZCLeom_~{}e(@5hQLkm%>W@t}{^I4fF}dDQmPUgj<)38QZ&dhxsj5yQY`LGuN;W(; zzk~XaJ#myW#Lv&rZB;%$&wr8-4BCD9$)Au{B^LY}anwI_ZzO`QLjo!PVJ_1d=SLw}q;(IS=&W5p8>HytFRtpwuaHnk;RVti2&MCfVSBxv*r12Y#H%Z&2Esh18r%TGXu*)FrJY7^?*@lPd2@}*) zOxDwmqgG0J?^5Yt$`Z{zr}X}e>v2J#SbIaY$QwJ{ zhRnpCU!Bx-JI!0s=4n~h*LplxLoKPp2%tD9C$Xzfs6hODYs1Cdy1%>dpT~>#d|S$? z7a_}HT;8=%k&T5WDAR16avZG(F`EW`r4l)91`}2wH$1vy_wDn>(Lwb@of4+Fc$*Zq z=jpC^6_ugb7aep#@SGr#xPwsdD__w#wZOkHqjj;;VF!i%-8=%H#ne>Uw_nf35Txi# zLr3Em(?-5sZ$h5D6)#`Q>RnmVd=OboW~5R`o?B1+7gLtWKhQ|bu|v|;!Yf`Gxt&^Fj9=04%Wt%=&vjc7H_5-Jc(10#c;`Xu!TAqFd~d$$E$F+uUUTeM3#vbe z&XIo_oM&U&WvxA8F!GMe{-0B*@q=dLr+5amyjxFP-v(UPy zOsL=0m2M+CE$5uz(T0c;1bse&G#=($*18V;MwkBMGM7O`RiBHSq@*KLU)RELnZmG`-GUnsjrELr~dOC>0jUxxR`o( zp7E;ycPXph_(20YzgB6oEGo<;s3;uAIdNU_l8jyK#-STBPDQK0MK+|M-(Bt5AW^`* zOnHyo57AhD!h}!l?*;DC+xZttcvTMsO-)ij`#B~@}P^43vO8EKnnZRWZ}+H=Jw|ak|HDV z9Ms}&RoJQ;`-)NZx_aG%uaCPJdC8+-Qh!*o!d?!ZM)Z8PamlnLd+jt>weo3bu#pA7 z((OF>Ut?`(Jhb8SO)RPI{JUM$;{Y{M`U_<0skrC^)KuThDwUy!xG4WiR(6s~R?qJm zwZ*?-rupwSWq-Yzt!m;Gbm_m3nF9E}ZB@B^YaV<0nF_J_wuf%bcTrbmQK*Vdr(z6K*zsWIMMY98>qH}N8 zS~R$#!|MdADI@M*UXv$dC2XZPD*jn`6n}K%6SQuO(?6=(aq}m3r9v+e$#vV8K^X@F zn!^8&+mROp>9-7-NqW1iSZ0jM;13_8)9Xgp4ch;s^m<&LrIo>z-LX3f3Y-)~1^1Qa z4c-F)G|ZPsIH7&;d}pJt6uHH(xUJIue=a?<%s=yKXdLIq|l`-+vUn9wk`7Bn|?N^ zG&?q^arZiBWvSIqiJ5sXE{ExQ0q~7Qb)rtEPV6?kzSr%hok2Gkh|Q#$q3Y=Q^+x|> zxzNrx>4aMu97j-(M_-W*w|ZG!mnz525OP~bt2*EQcFLL5kN0ntVh;piXr*moNEn-y zWyMcHv$t|jWqTaT1lAqs>}V1W=t}YOdXGP#*wdas%7l6a8pNK3^ZWJhI(cg->;Q2j zA4jDdNt&Y<9gS+QiZlYOD~Ut?%Mj*-?P`RcXCM%4;qd3nNmG7 zmcBoR+W}93(P0;U+g!KBMs|X!9-97xVeT0n$U^`x^#VUVe`3BbIL91ebp+wK&8d&J z&^_?z2l0v0y-`9s@kNyaC9|9N?I^f-$m2(9X`@(YL-=jB_dtr7**- zQ&qu_A-9D~XS+?4F3aWP|A)Ev3~RFA)_uW-h=78CbVaK4&^w5fPz5Q{QF@nN0z^?j zKx*i{7wNqQl-@gpj`R-Fr6lYpyv{k_xz1T@oxRWA*R}bQFI?eC@{s=+_qgxh=%r%^ zOp)YGV}L2LcA~^XsNNqC_b7mQb-(6_$y-7rJ5j>chRT)q*L8pf<>I@|-()~f*}8mh zpJ$@IksO~Vv59W1Fm#$Sc!#a45Z^Z7h`vkBNWGTFAcFElQmGTKmXRce7QB2^%G#rf zT+W=~pq@bLVKs1DvPEgRZ`J0ebR`aoB}c8)b5oi@_8~Hbv=@EF^Hv1lE6)g%dgJQz03cPOc6g8E5aL<#Udfj(5kL$EB(|oMi3F`Ih5VRkXRKpjyUyuAXh@$-g z10HQ~g^F-kAm)p>xiU5J+<`d6=ZlH!X| z>a9u1Y3hym=znZ!^;fYOP7VyKIo%u7qL?LK8MKWp|}qXS64mM8|Ge?j2i|8P!gd@Ah7i(oEQGpvc;BE1`w|Rf^jE zXs_jTPaTLv+Mg|JlN>u2+4u9%&elDON}nRL@liQ!8vX=~vn7Y6H-1fZK5V;L9BVir z7Wp2bI;<1Tw`nFW9U8U#?w99qdAUkbiBTVApe2lx8x&#Z9>{ZdC^xK5@juT{Xt(hOMmIDp569E zQT=0z%?>j0S0Q09kJNec9Ty+5uw*Y^m?e=Zy62~&Jc}ozh(VrGFFK=P9w=UwHTROY zGQ-=cPHNO#h)Hwxy3YK|2r2z&@}OYsZ6ewT*;bI`O#u2)FV-)^BM}72)m|oSk4IDk z!!iS#@uz|WilJTTTr#SWhNryyDmFw!WTOqcuq*&`}>Q z*Vl5X`Qbr8synBuye;eUSU-#-o~6>#yM$IkfC=mJjgsaB5w+RYI^-5rnTLHe0x_$4H+V7kUbR~bYibI6o-tgmM%?X`a5IMj6NNB@r ziMbV)&;dl`bVwmpx;!79gRJFIrmH^d=B+~;R&>)}^gKm9KOM-y(i%-il+$@Ioa!0r z2%9Q}Nep25$U2u7^w);v_r(adeZcm?5(xT6P+{+jJW#2N4{FNh<5)h+K z1#wgsW`8_UGjrojo>c~sOJMVdZET~|-WM25^oGSk)Se^QLd0mu0KFb-WEd}7v2L*m z{oJwR@oTVZD_ll8)u4P>Fwqi3S;mNwr!$oRE$odSyzKUIZKP6*>xb!31 zmkE02&&-(^#cu{)CTE-9FHU$_)M9-kqWxTVUX;;p(j+EhU>&kl5!0{RJ0$8nQnWMT z4g-JkRm3oKc2fGBQe)SXNZg}6&rBVog|c>T?>Za7I zNQAqs7zw4#-||1POAi;QZVFfeY(T?ZPT^&YxCm|?yH^P&|2G}rrYEH?tUEUTM8_K{aXb|ie{#iczAp)9)nGL z@lwXr?c->t3jGVAqG1u%B=ZgT2IQX#UUZKMl-(W}SKE5p5%#K1)I})<{k)bdCKaV)i&bDr$<;RsC2ls;-00syA@FuSYAc9~H?v-8PjVI0d zs`c3&vzp#JJ{S5f36D;9x(_yedmI)je-W;U+`%B1QKM37T&KRf923>Q-?eUEy#jAc z%k?guzU_X@bX9{`hkxwbsZnT0+~MrjUg&O}Dq{(xTRJGvSAciN*4t}o{emMh@&=@$ zQU3Eq7g#qnGuC=fip37`iH|jZH1_cxccAve+_w#m-46xsvE7>D-WL>|U=P|;?s<20 z(y!^U*YE`5x)Y&?RyJMz^dI|EYeiUi+0_Fo-BBIpgp;nXFxz3-IyIP6Li~+}68lMy z>|m^mCChWkz7wEp+UddJ-yD31e{l{-kf-Nd+5HrP1h?)h&XG@4Y@4S&+^F}aZ$$NX z$?jX>>-{8H*pYWETcpOOOc7?0lpjI4Sty7^z*rKzVnO!yoObxQ+)T_t@KeE~x;$tsB!< zdF$Q?OI@YY=)$pZ@K)D;*W0|tMtQVh@vfBp+F1=ZY-5Xg_;AoDZyx!3`O8rP$i6Ph zr$X!clct6}_HxY!e?{dt*?m*-*wuqa=M%fVBC#*z?iY zUG0?E)RvjedQJHQ^qa+9AtBu0qMd{3J)u)&wTDB0@Ipu_cqf=V+|si=GDOJc{`9lq z*JUQjCRF4b29X=lG9P$=+oj>u@O+lh@2gsV1YiP=$z^_@=$OhB+~ei7&c1=PNycd|uxUilOiwh_gvyieay$ z`d&MP?{5MaVV42>--+*nI6x#T(H7Zi>@cDXl=&2(uoWh@0lToCvFxs$-KeQ@R_yMs z+k@-JecqCUz479s(Ee>kL%-+XZAif2XePX#RwuY?S0V1twRu_Of7OM{cX{rG+P|_! zrPNX%f2mBBSX}WVZPz*y(lqg=1M_#Eo&*%A9j@K3Q1s_L=^Wpyfwj|XOZ4PcMV{=9 z5VB0^%5PAn!QJ=R>GzaLL_Xl=1O7+~Af&6e*T@WwY5Y2zkB;|mBE_DK%@!&iARL_B zx+)vCO7c*RR9aermQkjAxQ0AR!2nwToc)nQZxL_Mf=@;cWYi-EGZb-70eeL+2e~S! zT};(bid3Bsy#`+2ojrI_FpA{x%1`fIW`aV%<@5CwkL|?HYK1Z)5izUXo|raB?os7D zvbk^nyl^k@vI<=1oz-%n2s)KH4ZM`%_*#1Vn2>$PqzsEo&K9rdRcIa~@_kEp3@h#n zo5{RTVy~dD^dEv8xEx=w#ebbsKN%WNP2e*WbDfPtw4;a)n?|Q@xZF*3(T`jy_2;gk+ApnQLlMuim%UMem6a_(id~@=1T;^G&wqeSmUZguBPQmvZ{Oz}{DUQrAy-QP&yj`Jy^g!~*60u}uhI z?^Vh4s0D)G8Sy5S6XEiCo@KMdvv@S9Y-LmZ8pFe^xL^l2fiW(8z@JoB<^YlSHqQ%o z<(`>9Fk=%ny?lqsu(I%2t#uxon^-0&;kVS$9;V^ae!%FnCHoZvZ=0GQ!bMAQf4-cu{zCh%NSTqrwrPU&1-5Ue`7Q9H46x>qi2&}X1 zaYE!2eO_u0t?QUYW_mfQWPiHN9a)qO(>)qGoJ0u3m-^=))gS`9My(*_!xubG4?~*? zU(TM6Pzf_2Ymb+y0>l!l9?|X@95xEflYVb^IoZ}S&?s_@f3&e#PAZuG|8L2()(2L5A|;$~8vxIChwyJ(_r z;y;5hXt3Ye`(7bs=tx6r&|hKc|K47hz_;%KB#+|~V6~_8mp8+)-8HGJr@uDrS3n=5 zUz0|j{UQ+^11>>$!0C+RUgI+L7mFLPl$x(_foFedcEtx&J!=FRM;BwF*(p}5eXEds zXH~rWxLt#Tku1MuFfar_&M$351`}B?GQ5_@aQ0F2Jai%-71-QbxNI z%WaLje4(LQEz(!xONe$8lk(HKT)|)P*Uq}BbkPPYiI&rwZ<6`@ydDwexZbCBMilltN|LKs@diy}L$T6VISLKc03u0T?0uKmgW)pUp0ZvPH(Q_a z=2Y2{t=G)$P4?jUrP3!PDTj0mXw#*Qqvt(mbD$1PfS=ysMZ4c*n)1%(_xOMQtfn`~ANjjX=EPFdbvyMD zA6X}Pg1TQJZ(@89va~+s-OwX&7k+#%;uaLpK=q<^V$$VCg1@iZ(3RfgWmc>^u^L=o zqAr)h%ngDn^=y}QzTik_!hTgs#*osBGYH3$AFlV5FUs_gS6H3a0nsHf;q0*o%rrj4 z+MoKEnuIlcD*kaf7pyh83|Hv@vgcKE-#T|2(tZIhXk0(Cx>}{Gi{2&+7yU6jm{dJq zGGOZJ*|Mv7ijn$^evUlqu(|vfP%kN4i{1_d%kod@`zBxz+ zSJRI9x3ywy#W#J$O^R~|!Gt*`8ZO;Kqr#Yh#ySBz8u#~=b-Snav8?cDOGVaO69d;&H z#GM=)cPoPN1{l8CHs({wPrp{@!B%|;lnADK z@F9!gS}34D^Q}kqmJ2i6wTb+IIsCfm$i1lFIfhVHBrKi?xXGIk)Go8hAqn9?`ihy= zPX^-hC0;gc+L^F;X`~L1zYRv2c9#K84?f_kKhx{UP!j=xf3IfM3uHvh>v_~*i}<2gX_ zNEu*W!!$n2qrM<7ba+E9lNL1BNK+jR0bE)`6i>w{MvKA?Us^qHH8J*9pkTcpLlrWc zSzvuKN3Ip-G?vuz823kSk*qni8gr6xKnM?74Gg~icDMqmM)=P2QGJL|`eYLF*GZ3g zwMn+`YvwmX-fGl{EFKxI$#m1%MxQEZf-w1B{R2wP4UH9h;!B7h2%1qS>GCnSVSuOs zy6PzKW9?4K1`vm2V`JtkzARJoH_Oy`{g8c(dPn) z*H6e>#@gR(Z1H&}Z+&xi=X9)7knhOs3-NccHinpQ+s{W_=`NL(O+xH?ji`|N7I7Z! z3}$eFWBClLmqd9fXgEepZUTTBJ9rpdfaY}kgA6t%-=O^`v-k%0|2#}q5ItJM!sv7a z%89=WSpe#7Y&E0fa{B7B9z`X%K+=Q^tqmZN1pak^!}-5WZt~hK9*^cbEF75B3cJsU zJrH1n0R#rN&V1!FfAljLMgc%DwzF8zq50q_z}&Ra5vp8An{{FbaLWSZ|IRHtSn;Zw z>Ns-Lb1OWXvjlosz-)vlvd}sT#rU56i075B&bQL%*15wr!@{b%YS4+o>`T{U#Y<1c zXQU+pSw-aal`gX@Z4T@AU9At^&6}=h)v?&{cvo^dU7l~Bm8kRp&7$+@m8{*>*1)CX z9JOik{024qyS3w=l_^2O%hc7Vi3ZJ*c`@#ktWIB+Q2H8$i6I^g^qNNG8JEN{aoTaAUm8+``QQL~Op5uK zgu&!xHqvUKGx2`c!q3VT;E+ZK4G*s&VcqTAhBvjp79{~FG>??86^Wi{<+_U%UKUCk z0K#Dj=5J!oBxpK$&>NNIh46AeJx}a><{!k+p3Ne1*%_g5arh&;MM6?z=~RDjRZ;kg zyzAuZtOz>un71n;Q9fCR11e+~k@rG@hQ|;^2tSEgJ!!(%7rHc~xiWD4uzk2H(#UH| z#ntr&^O{8_%T>IShf{l*R5)DjHj-&F7c`v(&3YchKF^H>LRP!VM;?bB1s%l_^0Bwz z>jdR?VjA+CXN{HvJ|v``kv$Xpa_-Vf>63tbz_-z7b+H@t$rsIe+dCwJ4gj>*qc|T* zak-TjglrYe6!D z07udu+L1)G;l9qPIS1!|7t)d5`*LL#0E;OAh*vgP#m;U_)Ygc-wfANN80AsbZ8Wtt zz76LqyV}^IxoXluh3x0EUk1~78-}zzLsjjciN#&H+6`~ouBH^C*Ww;Y1=1;c4Oe=$w-nf@f0zalp-zT|B46h{$Z%eHf zv{?RbnMgLx3^=RyjJ*JN5%Zw~kH_4}tGM3k9OHCrLcRHEGd$_xyfn(YQ|=FVUyiMj zeP4xAQ8q1s-2c$SxLp$(PW`I5*$;wakiVM6h)F4Uv4_2{D(5tkCoLF-k9>P{I*mS$X?`fT#cslGzbt zQw-0=TGmCr#Bi12Hgieotk9E5Ro=x}^EuP+Mu+v{5S55;QOk_+9V>oNtBx1*aEU44 zoktWFuGWvm`SV3;`hC-zIZibifK`=#g!zONJ81j3u{pt$X1_Q^gd z%93M-0~-4_Lh71eXJw4O^}G$GwcfN?=Gq;YmIA8MUPP!;e$hU9w63<`AP*Fq=(`hOJF~8`Gb05dlNl3AdAjROok71hy`EV#TV5+eH zsuF(HGSD(SSG>JQE_Iovp}=(po|ZI)-lRX%sSy)n>KWqLm-8cE#phC}{5)0E_pSw( z*?{d#hg9BRx!NUry+j(yMJIv)Y^z#TAN%IVKX>+1{tm$Z?bJVh5j1?*DT{;qUht{c z%X5;PLw`Yw;W0+0o4omk_PFG^7yervvNcwsh4Bs}kx|77nH^%wfIk6!)&n_g3YqKE z{!Pv}t%)(mRaFl4O%8NjrI!aS;FivOP8QNMbe!A5x6o(wbY`9i8o@U0eC2U_Ol)sEJo=Jy+8c(ePv?#9CU z&7wqve2~51W&92)R54WURM;0sf7`S7vdLibD#+p>v*ppDM{{~6v##+o0(!lD8uGT8 zf5JJX@F)eB_uREDcDbS~-Uv+HQ>kbDbYFY&FZNfl8o>TCo%ODftuRn7KVFQ=4>57h zKj05SiAcsZ1&BfC*6z)T9o8oPbi6rn)SoP(qoZLfF4#4#)Oupsye6!4|~VV~_FTWNHu^__X*(vz5n=>ASRF?nU|ID=}to-J?Rl z36!C^6!)b}-px7Yofb3sC%~(PfOdQBy4|Lf%Wb)&X%dYg#ml|wj{qhC4~14-V< zxV3o|4?eY&3N@43dkX_yyksNO6vHE3`i*D5n4GB*)mH z`8x;ozw{@grw0GIkGcL|G}fl;eKv1`9cs7j=qw3}_xJ6g_<%!trq=QQk3)L8ApkLA z*V#Lh*b7kVslO<6)&n(#>2h!mvIV#_j1sxOl5<@hXj=;iXoq8sjaP9U<$bZ`D&SUB z>i@ufS;A7JXD+f&V22Z}5J%9V>E$jfKNFUppRu{Q9P#Bd03_R3P`v`pH>rI%hUt=T zvkoA~=-ouW8GPtdTuNB3d(&6BP&DmC;j8q%gT8pEQA;Z>Bu^*UfIKD&jfnZn0be$S zMgz6)vUeREltu2I+8rG&l_^H|UA^c5T?EoI4Y_>JWVIBRgJ07W;@sYxuI;%I;^TKV zyTg83PYx}H4q;w*;l0Xr%J(tM`&uC~CTqiy>{pd6)T~q->$#uMkSzf(MdLL9vjqZA z4$0($R<>gDrf-7CcvmqKCU@5BMyzsZGq@FIOxR@SRg(HzyOfs7R0%UwnDm5plA$IV z%R?D$giG`$CVvbg!^^Q1rF-p?xNCM`=dC3d8KZi6hpkUKG;lCz?2Wo@UyQLoGK{cH zlC8V#nrL9%1N0^WOnkjqE>J`x<4wxhccS0U!WXT%JAbu|rz_eYV2bDb3w))2O<5n_ z+WKnxhkO8j$4x;(+q$u3X%wkIRv4q4{K{gcUN4Mh6@80jy zl;Yg%Le&8C&&`<2n`x#dEAknuZY-T`YxFziQ=ISjs{};xNx)fvnD>X=BMT%jfEjP^ zejN>8w3Cd{fm_~lP0@XPk|O|~p*oCzHjEdJpAoti_ZQ0Q^#+?-3{J9PpQ0$=cDXXA zSm1z~Gmb}bg|^|qmpfNOLr-eoX37E zqWGwS=PVXH3cx+_&;2o$M>3h$6~}ERu)^3-0<7gdtLH)n7s48A%di&vXR5*UCRrgI zuxY-QW`}$`|AvbaKr1;Hf8kHcHc;=S6o1R+%=SLtEsP2V?Obyp%9TW} z6M?0@9u=tl69_X#14%BOdo7rXokwRX4+&{4jkG|PH$KF>*{R)$HZ$pN*HW>%)Hx=^ zoT2RNmYbJ%ciLhVKn9+qRzzH1=3fZ0Fux9C=L_56C6mOOr(>*ifV=ke#7y-VUkCuJ zw_tH~O=jxGA^v3cXE<7}J+`%u*R8qu9uQFl5M4Hu@5Pm-q^rMqYH<72Ns%A*$-$ zP(C)`2$Wd7WR+SAI!nO#uzQ|qDW_-S8APlOx`%}WJD7|(8`#M+{POyZeXWDOe-QN- z8Tpz8%E-eH4_S)BZI6mbo-GtvsA?#A7wM4!6h7c+9<|vh|5-CW0`$3mzz;wc0thxX zbmZgAOmw9V4(>Dv+`fm)=S1WZn;8tRWk_Zx9-6BR7DIR21VXB5nl7T`h0DwS{AW*> zImOhT)qmda!msS5#?=ULfW^(0I8m~`?f!-K8<_N?+wWQ{Gec;GI-b=MqmxQ`*+DBV zVK;uKxvsQQ=XwVG2gMr(?Z<5JskeaqW-b6c$J{!9q#M2JyB3F8g8<%|K8CrVlJ|s?C)Q||1S}w z|HNYXPs-7CRHyIr|DwV3KN7tE3moQk8G@Fa|LI-5mYml)uTJ)^ikkeDez(nE8QK0% ztZ^w8yiO0ru=gwnp+53__s;HGLe0%OdmfbOx)r)qM!!h*P-oLkj;!2Q1UA%UmNj_1 z-D$k~+0Vvx(+$CvGkN!H1JMrmQ$5otj(Q5Ctk7 zd0AEmYZy|^i_toGX)A3ckuV&F){8buM<^JU2X(vGujs{8akdE~R7q{uovC*Ca#%vi zzRyS-;f@FPy*9{z=~`1JG1qdMtI=0IzT#$M=33kG2r9%wDj07-zvv>Fuf%^IZ|w@y zd)cDK#i-&yp=|>RO*T?7CwdI~f^>W&Qs-D)SZjG5##RIAGoF+4eEu$wt8|5?rZ*SW zv)L(9tHx8Fh{E{|PYF$cJhMGjDc`=hH)TWQ{&tV;BDubIkLjJaCfue9K46y#otR4E z;#zRsWCAxeVH>jA6PbE>#`3x zVlkF~J(IT=;79lLh4e1sn%2?hWRynaInpoZPS=7bEtlkBv2lP0z`kvs9gt4l0TTFq zRwtMO#$s<*C8U>?6fa)Vh8+HOfymWs)tS!}}4fcs&2k`LIaNbdxpF zndV_UO;Vb2#h^|d!eGcFSCC%9(u@GQCSUt!%GbzkbzjIxkM$luHZo;xu+RlOj@<*v6@fJb}q>pujd_TwPuX9XlJ`gb*R zERcz#YjJgXV7N2Grj=7jw5vQoIvS0IdOEbW%5Z_;z|&@ewJZo47f?iTLeyf+BM8k* z26kJ0EAF#eSGnct#x3g3$JD&oq3)=HCNWFfAn*r$gbrEg8#C#UT74v{ z$lN5Ze33*pa$#oN|MDV8qDOLA&RMQKT?6w_JdF${B^30^p;<>TWamqO?>9iFSe$W(v-3- zgoIZ}wTUfQd<@^724Za-Yf|I(r0y?$Zak3;)d|ZjVyWe0YT~6iAZ#)~Dk{eE?LtQa z!42g<-T-KDG4^1E{PUvInBl@rjLkBW%VDp)C#++!Mn%Q;@N8&=E1XXi=w=m2DG&@r zp2NRO_VnRZ7ihf(Kpve~-uQcB$sTzD#7DNMf(6b^_z7{$m+aJ1l-W-@2fYorc=D@v zWxay?hr&gH4P$%?*7TBd{%cU8w$K1>n!rt|eug_-ElpxI@;Ig{ODYOfC?4*5t;2b{h5;}_L^WxLh zeFigL#^d^m=OR_)ZS8X@#52Qjtaapga;pV5WBW>XCSnR)MfY@lb|ksltuX?r*o>1y z!>+5nZQawn=#)rXm-)(bq}u0%tlcKX@srIo$Y-VR!}**& zKXMXw=k|x;*2&DG)3{dfrv_{G{BOcy#1!(bMaM^Hb~d7?3Y))k{6Td~go!xp%G39L z_45#5Y(>e3cu+BQ^)ZT%yj{777-p)0uvs zs{W1AhuRo#7RtU#nO2eZI-L}(u=sP&+obXZIM4SzA;t5*Sy$t{kL0A5FOr6pslwb9 zf1d;>Oo!YiakaUt=^PRTzAMU2(rE&FFl$AS5lgRl-T+QSY5U)b_qRS!dqsklP!4W? z#QzLn$>}93;J@|;-?wa=4GqLSqKQW)%rEq0zS_(M7}}n?7?uMGw5+%%iy)HMGwEpz z?%An3Wi>f6an0^~Y|y7x`7%Jv2~RY^=J<;gN#VS85ZFGaT~}GH;_B#u%nDAl{IT}9 zLYUdw_VMJr2BdJ&=rPe_Z+Yl$?>^!X#Lwp>Hih#T$}ZOXNSrgz@cW$)jdbcd<`>QF ziQ~SkD6$VzbC&ZXHZLSe1s&eV#ptGjPRitO)oWDUbbZ6`Bdbpp1WArZ=*$)s54mp` zPvBxXb(K*T!MSJK<8LT-%LOCRQVzXWws3XnW`yTMx|6L*>bTZ5dB+=D!udmhk}-tn zL+YTwju$ekGRU|Tf9FKJIUy?6UULFI?B(czRR;j1ivS`&!EGnAXxAtw{7UZvy7xvEG`(X_75+lN!nlhfDo z#84jk+0VI*=qOYds)ee}@0IAQFXOycLu|eMmUq)yV0)Jje|e^{g%~>hn*a-^NO#bR zuU2C=EPgWw#a8l>=Ua81zClL0Pq;{>rIGe@jrAT$9BeMLpyF^H$j~0AV)o&Q6~t>6 znbH3^%Q_oqN^}H=6VZ#&OPoiY4VXB-qaIp|q^9{jfU?z_opCL1?V+F-LTf(s<}O6W z{4xLoeu{;A=9Tj2(FTg73z*XOrXzzIKeQ(}CB!e`tkv8g!(F&&*kET+cDf$nnnH2a zuc37h^4`;KqElP<+Xy{F*G#Ui{i04)eqcurT~1+YlXE39?KqG0G0J9+xgsL7fbe}W z4siAxj*QKEE-8I`E4gNCDIU&5GW#Vkoc1Tq31!sMLZubSY8RgR9p2Oz#~LJCR!;Fj zDvJW1emc6cGHbWMCG*xx2kHGoL4Mx^hhDI3(AENn%aZEh+&+ak-#H_Xpd~y$iR5g& z#^6`88&WJ`xkK0#_7wKS%bXxh4;szl#>rzzkPVe1?tL|+dJNRcLZy3x@wEDl4%-`G ze6E5K$inmC_cduQ(DU(E^=I39{@*9N(ubC8)6LTKzcjeN7z$YPPuNiXWma^W<#%a9 zQp3-)8a-OzE_#ok*K9LX44OSAu|~v-8)t0KbV$B_+c@HTV=5op%&A^hkYCMh9spvl z_uY0^`=}OQeq*WRc3;DI|IYj3p*EpmxKbQZgk^{sKQ)JevhtCRCFU4AQt;temGwof zISS5B&D7;t)zLFJFkd~;U{}R4v_PKcsK`f*z_`bWQ2xeJd3bXw&i_FP!c?`$7%+I+ zqcNt?-)ZgwEi@Pt_v1%(W($jla9!NY9*|E#(=)n+8`6RDTa+!>Kf3O$qD%Hu<#w^I zYUXrxub$%PBbTE+cS`q{%f*VIOvxL^`(mKb+# z*Xo{^_0zmctg4xeA{J8X#BiPdcf4mP)uG)LYVRDf{@LIXc`bSE4_9>Hn8zSHa=~?I zO(@{s2>1Vm>-E3;z5imt4={kd9-jS^W^g?`15o<_#o&VszjS0bcmN19bu@CyYZg3 zZ~XlHmX9h;uI`QtD)x@7+3PFl87!572ubWxjfIcvS4JfOQgE^vP0)5s!LgEmWL9tU2Cs1^#XK9VC9prIGFi*L za%%PNoHc_ygR9wdPbHu+Cg98@hXNPY4e;U>H9k?SMrno1gwh9d0I+yRpukp$dzqtI zwc}zZv=2`jhCrT2{ZbHhP5m7(svbAjupMgRJxCj*XjaSHf{S0E$kC$Ux>Uu2A>JIB zp{%x2f$dcMTSj|f^GlF@635w$6rmt~C!S7eoWoH7rWT&h7ezbT5S6A<`_3g)pQR*n1pxz#Zk4Fcb4vW}JwqW%= z4T`UXM4zq<1BenJMWb<4F z?rJF3diK&cnN5ztPl}n=|@>h zvC=b@(G4zg-`>iLj>plPtN_?1Js@qBemHP4dKB+iZQL^*oDUZ?-bO`q?vUHNry{m; zyR3BIA?6x|qTMEMu=L^~YT75ghaC}Qiu@$T&pW^4dzX}OY7=9m;-n}0+8pNC7|x)z zFkFITv=(-$G#f&|m6~d}+_#*iQ$28>xT2B3ETo!)bZ-NzH&6IUhIf<8bW`c{BMiez?!hk} z&$#)ifPJG5>T6rMfNZ#(8!7t5p}3GD%vABbTSwtV80%6Iyf0t@ox> z4S1TMp?0<3v1O&rXhX`WRbnK0b;cb-#W~u?&rOTS9g{kT&2B?#KowZDUuK=kMV{2; z>*8Bg)arLGt{K6~K-+O+{IkhW^)r?coOp;T!TI&(q`}N zSP^8Xzj0c=p}CDm6^!svi&0z{l*W-er`n6sbw|I0)Mb8m_3~Lut*+GypDXB^)hwuQ zU_4ry$nQq5Bw zxM>rm0>{wX>|Tmlg8rut>EVVOOF$ubBxwk9wCQENAC7oZvP%orv}uv}AxKN+6Q`Fb zT}(*%gBYRX?N&m`JEM;reX>8yo{2T7=oZqROx!r=Tp512YJ_E^krJLKRPyaD_v&z= zbS9zIF&w5*unv(*NH8WdD^v-4VB?Y&oS9_^th@Ai8wknt@YaYZ(}oPs_>e7#3Qqdm z!LX848$VBz8~T-%o}X{Bbr(QdvRL^e2@X*rPG3bbupR_%S_x%}k%8VgeU@`T)%CG{ zjiS_ZJOEc;x*WMmZ8`F>Gsh*SWQo|kmfv^^t;KY<8{?C{<)juuT}TM$t=$D7OpYd( zFjTMdo*?Q;n#Qg3~uBGYq&#nW<96+Lul%StjjX^e70U!uj|?t z=Ju)oF4fj!Yq7P(I` zFut2+7Ow2j>DfkA9i@|DjEkXdJRd5b#5+1z=co--$2DNS0RreikuvUMsJ>#{#*IOK zI{?i$!f+z}pM0GB*K(svR`fG`w~PdWOUx=TH%dXL&iR`d%L0%S7LygSfB0?xO2@nZ ze|Pj;U+Hcv;50b%X*iE;n(jrz(R*O4>KNnoegT?j&yG82PnG=-Bz-|chmj(s_fm1U z(Q@(>*MNlh6}wXR3Qlpna#&g@$&46ADj~>OBHyGWdfI)ZA*KlDu5f8%=D<8LLE%?m zzue0r1uv}Y(yM1o>c|xjiZ+i>CI%0Si|CM3Dz>U>zukYoG{Yg1GdufEO zPC~mZPiHkk5#7gJWmX8bdPQ`!=U4mrN9ps`<*(2=TO-y-_cf-I3zA440YWR zWGI93tnJxP0tO(i0nJM8lF7Ij z7Ui1mPk+(^Hr;K8M}-#4F$4y753HHc$yJFKb_aTK7XsjRVDh>y2;;{+1%T~mj5Yjp zXnkxgt>d1$=v3hR-=IC1l19D ztrN$HJ<}-NZu7y5`FHvZ=FDgvFo@5}qkgz>XOb#%RfHngpotW1%IexLv(Gu|@=|d> zJa`i(s}A6v=?Qk~*#%75Lu!Eie^@O-2AvU278_O&pXKu;661DbW#p&IjzTua{$Meh zY~jWY>R(g;oE-rpF4y-Vnt-*yOjS80TV^+Nn{)ClL)qqmYgPQcx~iY0v&|A8%ie*! zFuqg%>Werk=H9@VM*|z9yO2stBGf; z9`*yQ!cECn#QKux+Y=hom$+4P79=bhntV~?&|<9TxxZKE77>MefeDx0j4Je7j{l&R?8IESk$L^uK~ z17EL1JFIB!CqJ5R*?^qt4JUaI#2=G!YElY;q3+37K}OiOve?FV(w|97*JV^I;5%m<=Q=MnxrPs!`QL zrf$UAV)JtE52q=)W6B>Ts_V#PZr-5uPPXt}?l>}(Z0rpWBSS2 za_ovoOs9}*e9Q>>aV%fHY&HPicfj8y_38NEKn2kl#zRyR8^$-{Bi&rL1K zpYJ~SlTHR~JRxjFfSvZkSb6@7`K(MFao2wn6aKH3J8YU;tzOI}CBR$_4qOqLobE=Z zN~^tV71I#H-336Lh+8kMb?xKpT56o1=_NM>il>5`?C^w9cSo*+_L1F%fYbDjRpZsZ zOKlr~uzhiK5zY!N_^LXo6GDxUSqqd&ec8^?mb=5!>2}Z$w1tUD1!4tv)H+ zUTPGB-W2}ZZaxO(I)*t>#uksOC@n3QP^V}OPg-k?4_}?&GaI*BM)NMPj29Y;5B<<- zncX;;a$QHZZT&@3w!Iv~=C6Rgokz92bd6PaRLl0?D?XD*^7Bt8Ge~hJJG9rV7+b3J z+^Jxvt$alhHuTeQ3(PS^LW^G~h5hnjPnVUl0paA?HW~P?b^ds6q|Y8I`l|~!Ck4=) z9b6K{9i8d`{M_|5GSQlD#7&H_!PNcr4E4AJ=efZ_+{vM?pF05BgciqP>2uS3de@rY z&YECJH=^3^I?WR_pt40{F#5r;TGKSELQJ8kVnJeYtEau8L)(0Y1FYlbHRUF3{xanc z6MIjL4o62?XzuNYMM2)tU(2u@6Bl>!lZj6P^r3b(4DPZC4NmgW5P8tgy?iGZ>g4b7 zlUv9V&2K-jDRAeRCq^;~wc&tKm7md&Aw}pxb^jy|qxbx__p!jCR`b(OJbOZafuZG) z^v=)Qj`mh{^wI~)=P#S#LM!H%o;W0;7=}xn$1TaMfI+JJV=5oe#oi@Tb=)FSP8oT^ zZoOY@u>%D_Cn!^^=JP6jb_wq!3a`~6*6bnP)ev?TkI@LGb$m z#WqLvV-2FOsdEex3iHXEs@6|m#55q|)R2lYrKSXhh!~+4B)$j4m1%z716T3F_ zli2ro9BG2PbwnWpTMxIQk~&UgkBPiQ74C9zFYs5r{wCOv_6k3|$})h(GnP%CP+u;w=h2Rb&NOlR4>cT)Wn8c*dRQNpNz%tZ35^wO?FEp_pg_NXQjd3+I-Rh z;tO-!V$G6Us#mh{w(%#ef}!?T*7b*2%|keFuD?? z#t|lLed@erBySW@67!-uRkZ(dHK#aARfNK&?gbn{*49W;x0*!>8eEUJ>;g#cF)QO) z>v!WF=UOY_Xz8a<&t~-Qd{43vnQ^ud*ZVamC;MPuOM+k1FLnUMjq#&-r4-$|d+BWj zeuW|0dsxj>If+!IzK27P?Ne?|edc%%jc{_dc59Z;ptrc^Pp;7YgL)w@NI1Daik&|4>}{F7EbM%ugCMVlfn&d<-(Ox| z2vG2}zIgD{z-3ZN(wY3Iv?HFX2KPH4yV|>8N^=>?G%}%gZC_9?`265bebdS8g=1qp_m&|q=`u$$q^bB!? zT~*A};Y?Ag`lit*(eFnd-Z^2o7&jEM)*k;n-dFEBU?xMwbEUuD07$Oe*HunRr@?4j ze+Nir%}G8OU$A=%5PjZXh`n!4dbaPJM@hOb%M2@-J}iEo;+&~MUASoo}9*Kef><7Go#g-DF1R}6FiCirH}QC%Os^_J0;LBm)3+ajz}?pYvW7dld^7Ss3!ZsQ7>b)l7YTgf z1sH%#JjB`c4)3*UVcf~kG9<0%K<3?saOV&!4rpw6P?;oVlQGZufAIF!QBeo{wl|1? zN+~EvE8QsFsI-)HH$!(f3IZbC9n#%3)QIHJJv7oV#85-W`_tz+_dNI9bYp1!BhOl8NeA79KE?3Jccwt%CP1B^HeRzDmY_zH+-L!ZX z|JX6A6Ue4=8bxW;UTKxCc5}h(BXyZI6h@)=Uewq z{>mq^qQiVu$;j?oIpy6IFhiNp?B}aH_oEvz+PoQ>#8?-5U{i}O^RWiyYt};&^PRB| z&!A>omi0B7Vol9UcgjpUjm!;QS-{h{se?Fjs+;O%E!S#+E0WXWUO+pc?%t9GKC*Gc z6Heu_W9Adfw7RI(Mihmg)KQ=N|CXKfkFklhykPWKJ9R zI10v2Sg~=?QEc96D;9(l3=Qo^lln2l<675-35t(^;Jaru)#6Q8h6~;V_w!N$lL{d^ zJNt&(0SfMi!U6|~!9?N>j>`p|9RwjPWtOjpRXXOBX`3O-K`Ag=ho3EyATnWH-E6G1 z2kFR@ILcZaW$ov@xQa;VdSExu^LnVANPyj2Zb7K*f|ob+lET@~T2T$2Ot|;lVM`3Z zg?!OVR-yOE%!B?bfEGZ-!8iN4###M&+&BB^6lfJhYlJ|!4wcZk15@qA1=aUR_O1s}0;aCjWk=ards{=hQZT?Jdx- z3PdO8@TWw~+f-inQkO2c2X^hohwsnPwz$a;MY@^*vf44fJmC@; zX%k%=h_KZ1T6Z`yJm{9;|7+m*W`UQIn4C!?xkF}XXC+C<#XLC!+VMEy>JxA6D zo8sHgc9xTbC?R(MY$t$KJb>`?FPWb}&?m2#=DU%xatu+A{+oNz*qx!$;z7=GGq(pfXH(#dJBJ$mXv6O^>({xp7ovdMvZoXxF<|MJTW{L3rE#d;sj`<8aL<66XAVVN_X($%!dodSVM zE)|5s-@j{F)cWj%-OT?!%yXINd~u14J&v35Ak9(h^g4|0H>C`dgmYDIAhvE}QR5(T zCOw9qU|vetvUxv(*#X3HHgF)`KgZ1RRQ?>%M8jeBIvRluRjF^FSB%(XNJ(#*}*PqW(26BVGBbLt96$4+f5fj1(JjfZMxT&k1C`KH^N&7V3;mnr}+){b^dq{ z1zrF~CsqW^ZpEinJooHbOn;IrmGAkBiqWKY?13AJ;)+vgU|Y_v_8cQxF|J~=C@W8d zjnMyxT44`K_=hVq887wC4Xe}E{U01})fJ&#rF8AhjU!~?X^!cZ-q*;`4wI8MIrL4B6x-TYj-r8n<@+XqSqZbhkIhPgXH8qDq); zwD(N5i?3o)=nYcc*gC1f&-&R5^7g-&``+pRrO9KhW6AR>^(mbsH^J}U_HFdDiEaGN zTO=f!2!G#tb@cu8^hJx!AFPhkt?uzvQlb2hk$GMurZd|#@Gx$Ufo6kqm@ zm5|MiaGt8hcruCHSV?iY59JYu#mQixvn5Ekay3dLx{MP-c$e}G+LBJ$L{V~Nc(FX? z=%4%f{!Ec-nM59+F$0m`rmGH&-vST{ac}b_1G(lJolN%lgZgpx)X4fi)8^l{0|Dkb z6ddJEL4aw+pHN@OHhaGD>&v$|c=>U;vU@lsXGNO_H`Lf=>}seX`T68B%-NmbBTA{0 z)nLSN>6B;J6iLJ?OSEme5db)7 zJ;1tiIB0b02x5P0Nk%@O}7@ER-~yEndDuDZ^Hki;%A z++0XH{v#-9$lrh6;F^B(3{;C?x1TMXpLIXSXGb0<3qN+LCCJrLXjfmEC@D)0D73Tx zPJT9>1viEze)&euG?CandHAuV8-4Za_olX~c1;v^=tG$wbmryK^zn8&cv$r)X*zX) z`)el3{le`f_Crvs`gYj)8MI${%oQP+NU9f(re89L7B3u%&3~I(Z-X^Lo?o&;nu7kpsDY0B zWz=l>#U=Z$WHB3_-mTX|K={?(5DIKt-P`t-G!JwuBI}|)qD@_99?vTDvAizd6|$U~ zRsmu<-;RYZMD!}c`eTPF7I(_Be+{r(4ksdwrSWBO;l50qU#!m?Z0YWDdOADgIRQ}IczWvCdT}xxdtd#8?0Gn1vd;*#xW3P_B ztKT`V!E;w=B$65jfqmno=E2h&(~wvft7lKh6D^V^!k3rH!cXqnY>f*RYwo~{YALe$ zw{!jQM2ScdjU#_*F&&4+01~LR;Cb8X@}xp~c)P(>Ehq$0=BCzJ1RJ2u7I_vH{2ch< z^ihb?SX?VEUv+zrbMMts-Gos!o!{>$s7jmuj$(+>0bmOjCoJ7gM%zQEG)J+PF4|Bh zbHi-Gw41rRr98Mh>NoXT`D?WdJ>lvOXVpezX<*M&=qWLgJ6&(*&;*kJQy;l~s0oXp z6boAzfYJ~s7=TKN-6l#(_+60hbTQoUw)?qcNiW}a2NP?j_DNjx%qP)ZdhTJ~@#jYT zhiFmr0w#)$0$}>(m+7MM;lA5))Uy@w8id?lLv|5A2>g!D?-@3nYy*49N&hh(oc7{> z^D6gWUGe^tt6fACus;m+(6)v%a{uMwk(~@rEOW6R8UHyj{x97LHNtw9fPyi=qY(yt zLczi*KGQ!aXiw+CWi$s~Zs}IK^+hm$%76`kqsg+HPi}oX0lfvap4uIP&Hps()~u6R z##y%-GQ*>RdptqXYi@-z&` zZ;%#|$@?NEj~KN5UpysGTUciG%38g)jrIU=v|?f$TwJtRn@hhu+k|N_6`KAC#bX3J zbdULf6A!12_PA|2FrdX4pgYfx2+2vd_9*(Mi$xs36cSu%Vx@Iv%UYRAuX8aWjiZ6`ru@4^1A&GnTB(xpP2z~ z|7>06{$bUZS;>$;6}pV{Ysv#nHL*Vy5EZOIPCUeIik%s7vnk5^&m;SX^S3<-ChUn9UkYb$ z@+!8UTmI?Na4AGSnKTI6u4aV(+P@L70|GRI_AQ1dc{%E$lb@J%PtZHDMZI55%=*WE zX~CXKf7E8I5V?MNfovEZi=(r6&9IOv@H#i@ELGf56SqgSf*(Z@gGjo`V9}~(#->2m z8}+M}Tcb819s6SJ2E*)C9+PK?FOZo5j)}y804{JD!+4Z+8KPXr-8w?UYlJfPv#S%W zh78lOfXp|?Dj*uose8#jg0&@4M0V+Xe?%_f(LXuP@z^14s`R*%Tt2WUF)9+g(1qss zwr0+^qfB0ira&pX7 z*xZcb$K!V$6!Bk_D_JxGM@7Slkk0m6iL+TfS%dBFi0NL~{aap``1ng+0NXp%c;KCV zaQ+cy&@I=>%Y@d*-mj{^k%ue=x10HUb&7tH^LB2PoAyy<2H0+AB0yr3;S7y-7GkIL z!|_p6(M5DLVs<8vqDxF`MS;IV9TyVW*wC+a(3 zfn4zkt9<&eY1GA7tX~}dkV3dNo5F7QiMX;wz7FA_`<{;PKtO{ka;aU(JN6=vH@5jV z%B$nE_r!LivZe#cv@yMbJvq%A3FSX0Iy%1uJl3Hg)qTiX*$|)uq?xp>A|CRjKAx@a z?vezG4S0ckH1nO$h`pVoa7f}LEu<>zRqeG&VMk_TO=V=!$_S_E->F?^$ugNkf9r;c zrN#O&fD=Qr{7S~68;Zw$7wI)Bhkac}cOc^C1GuS1U@PxUFW%)xC8<}XDEmsBl_~w@ zVv7hC*is3&J=K!^Xx!-47^Z+@XS(Vvw(mQ)=Q4?KX|HmH{)l<1{A)qS?^dfsbjm5d z*NLGwlyg|xIm&Iy4L`9B1Q{_!-w=s2vtrS82*KH{=55LM2O2P1mNjbKW@~Z_qR~IA zTgVpM%+ej3P=20W@mqPC{I%hiyGvgzU65Ge#`JVed&T!84ewcTQI^k5PrJ zw_k99_}-(M+#1^@nyJ~B(=-%r!)4^-MJnIEpBI&5HPrT|BPiE-sp|CoQ`QcP3CmoWc@s!jtA zR)Qd)c==CVsJj?e8tI_W>G}4$Utxwc4s)<0vst|+sEiO}YDDm~1!cx1v6E0x#m->R zdcCGR$SBMXbLQP|z>*t19*)43rq$qidjk3~tB}TFAHR;3Cdc=os2#o7EbIKsit6xo zR-EG1DZG`~sPj*21l3u7@R` z{)g{Bg?#SLex%HU!iJ|0~dqF5{jFsgdV4v~f|q{k6z8)ALitZw=)PyfN% zf&Y~^9NX39gyM6=@DvhylSQ@g3BW+zRTyp64jL2_ct6C#Yvo|3je8pH!#&+p=F)4! z|Kh?tQsyb1^>M9(f3aEWw==uBAGWOB;Xu?~=80>&<{RPOo-W{;@Nv}HB!se}CeUbT z?DD$+9y2FB$EershF6#?pZ#R0aftccHE>nB*D2((%ps>8-@MJeMxS=wwp)EM8pmU+ zETUso@4)!8@k3s(U>dFniw9zKw2JJ;KS-v|PQXPaPRF_Bogyf(OBV7e9%@OYa{qY?3h2cxW>C!q zaPkUb&4Fm`Q$5$3)<@ZwLjraUx0yv)R4OR;*Qe^+&s5xb{co4Q_pM zr*ni54Zgw-w$QBhN8aA0BF`qkmS`M?3Pn{3SSa{P{0AYbQX97M4|g2ePp0yOgc{`S z+VCqLkW?{*M|(nc_S8{$R(W^9vq ziraW3f67NA=~IE8?y2yE&>q4gE9`L(uqs%k7MW0`mqofg}f~80g(f(lLL>5)|S`9 z2cgkqcCRnT!;XRGCkOd`0WauU68vb%^ZgmzokVbhayxyUH!HFG?wOa&7r}STCo%2( z{A&ZHJG3fG-5Uvs3Do26w{kwVY{E`W9&d;eh``rp>aphyIz;`1hI-oRk(FVbuxrz= zJ>4yXv>*h6QdIto$2xbe&A0WQS(G6B76bI_>HTWT3wn~$ zERVJ(y(@XR;|a)LRD&*TSodNFyS00XV?H-_Ptf%N+}TSRc+r!8)CU|d*`0B=+3Opk zyBJAe%1GZC{~Q}C9fQ^7v-GEp=?%QP4p#tQqeDCwVGHtFBx!hOjM{u_ zlv(v2B<5bdH$%1+hAEdbP62Z5E(aIpnVfAa^H-B)=5r`p#^x2;oNdO zwYpTJ?)E44>VLbvDM_WS-Z*K#_VP5p2+eBuw2El8;>V~Fw=-_zd z+@bmHSrpVKI<&&RrF+7@0GP~*DLkJ&&feF@sbwMjd{^6f;hgDkDJ79=-f89o9$i&+ zxinJ6U#0CNh(#uAfheJ#S<(3BbG#*-`MpW)skCgD?VqE z{kLXmWL7AFt%-9~e7ofVk0-(vu?!%#J~fK_fnv*nUFr=DI-_IWDXsGI19?1R7P$Z0 z$BPhMr2E{2VbKpPZQG=L`)4xe0$^<4=A}`*xauf$A}7Ftq(fu(%I0i)$MYDQ$(wnb z-)pO6u<{~qFS4|ch;Dj2yl1)PX0GbAau5o}Kwn?I9_u!UDW$BGR?NEZ<~E8stS@g+ z2oaVvn|C*7pKSvDWnZc1zv36+PCR(uYFSZE6$&}@Nl;!dYM}I zkDhY!$HuQ{i{yJ<%Lgr6fuA<^QzpJv5s^11ZL9mj%I3ZufpI*uJKlwHa24wHZrC=U z`1P(F*GFprm&Jo`zNT$JLE&eiKWq``C<|5MdSENwMKd|~DD!(@YTJ3U34R5hyfJdo z!D1yVG`V%)@{3ITV8)T5#mXPglHp{|;%=JF`CQkGVFeZvw{^0aG&Sboh(isBI<&FN zxYrGha+YUUj>-JyP5VNWlqp1_dKRNP5`%jwi@D~mpmo40DpAOFwRGz{H+3RW5>ooc z7AcMXRsdF(K#hO)5`40v;Kb@Y_Yp>|1BsIyccb zCd_vAFMLZQ_rCiE^6D~%F~$JBO*blo;4)FBA!o~c$oEotz0A9rKhC1txoNN+IK3P- z`@{F#1GfeXP6nRP833fsdC9~K0eEr*zq)_dE8$2!aVCtn|8T)DuJUD)@;kkLWTBx zC1m%?c27mcD5T?EGGEFQ-=ifFEiG-3WrkqQYa=Q7i}{}gL;wXO(MsW%3kC%3J%uvIXPDWv!T}*Q6gJ&aj z{+Cl$TUM5Msh1=6chxOv$mKievPFf*D(J)F{w8N{LJ6fA$CAYdGoSH4`6VkPLi}$*F9Y0GDu@nZdyprc(J!C ziVZ3H!{X|N^<9_eaeB*AL?2}*@;GgOTF%PbN|3Bu0X)n}?4U@myfl{2>%q#fG_>8_ zXhVvJpM@mg+`JOT^;j#}5`F@5_}7;!*^~yZpkiAWcv6g^(VLbkC9`2`E-EH+v@1*6 zsPNuhvb_FrfRk#pUG>v32IAMXJTkhm{7*Bp;YSW=C5@H4(*L~NAmt%*x(eZ2=u8$i zQ6`!?@6pG~(}FaevC$n!=8L+1f7X|R_&Kl&JdcU^e zNq;GpNH1~@p_u55!L=gUCF9bzB z@c(-(N>6X^tuV^FOy{j(CG`r_e*vQI*rz6Wyq$ddM`t$wN6^ZDe1ETkR-XVd1O>X2 zW=muzQO3xg^@tRH&vROTpkHCb_qSN-O>n30Ok)4c9MxJ3n2i87q@5DSzuXA2&dX)#FpDd8*O9JM9&~Ls9|+L(u^Sit z?3TCMD5nMEYmlWJNfmE;r!^xzlk!7HfX>-b`{u@KB;U2D+(S^Mcf;LA9AbN9G7Vr6 z>7msb%EAbInns*~j>g*w(!}d$Sur{_zbT>G-~8hyIGBMz9oCm%eKIM^@_yBuw54eB z-E}JI_Vaia8)Es4uld(H@}j6^SU_D1s|iHQzSB14+56C*D&3EHFfC|7(8g8c-e-5nOQdG|$F^2CK*a3_oGEysDVu}&QVi7MczRZHMdG;e~>w#ZAT;P{~9ncJeXrS}B zOaFH_FJ}wTIE-HJ0Pc_(2mdH@t@4~fnr=kfW%#8n5quNN6BsXK-;YMEEhVMDxz$Z! z5r~s7;2a|4yih&Mf^s4GZ;yW2)QLgE?!M*Y1)E-gM{cMifcTgZAXpFL$EeVAY(2Gk zzVv*_ek#O>ne$GP`)WzOc`C2L6$rz5uM`-xTwx)A**nxk*@i!HzjKQ@Al-H=kCOKD z>)z<`eqr~ARv_;gzcf#@*3$~zVoN14f9H0=VZYiYtjsMl`$hIZq)MyF+N8hh^?QPz zP&B7k1W`e4WS26teaq5hpWv)@xRFaDH6@fZHB9NN^=#vai> zyi^4{%9GR6N&FI$`)H`^iwRMNp(IddsQxC{> zZQ117c~T2_GhcuCWGi_x`wg2NjxH% zBEu=d%_|C{0KJ3}9v?hL6cBUCs~9UAIf`x0{H+kBh?V|ARA*);Sw#^rv7{!7mNq09 zCP}U%2~wPbZF#mSmmalIrvO{0I3@IBRKWTbp^ja;PqwbVu-#toBk^2=JCp+yqef&1ubI-y++26 z=Niu|@-NL==i;qkiGI|G71!O862_f+VD%iu70b=&$aNHpO_a5;o|dO#24!-8>WO!k zkC^AA&R#flO~-qe&Vdxtn_F9_A=6+(a9ORWZjkb#*s^sRgGN|AmuhQq)OtQTua};i zqn`%#dN;vYX;roE*#Mv8Po9FXh%sF)61>MzLi?j?fgdA;lRoy6D;cHUrZOM7}j34Y*V16t2wicr|$f{z$+4HmwgHo zR?Aq`wiC=BJ8vNJ8@nXXnuEtY$#$vGVwMt*6Yyul&PdeJiJHbma3Pe0MQPPoN3;Ci zeZ(2TL$TI3qk!#L=PxKdtxzgbviB1yR{?4vI8@fbgD7d~VI3|H!~9<*k$T3hqIG%{ zss08!u71r?=<2-3pc5@zZ{EGp+Be@2K;AZTu9!(XlbmnGxD&obQVm>-M1tLpV7OqT zgRO37H<3hsfx=x^tMzIX)toT}J1!Ng3k$vva#97BJ`IeLG~5Do^2ux0i5b>gQM0vF zM3t=9S26@!v4eLWuEO1a^dq#0TP0kZ+LqT6?FeduS2ydzm+fCcEU4r#@SzGN$ZX3x zet(0}?bW{hw4sk>Euvgl))uM|3oB0u6EwqL#2chPSzI3j1JP0d$49@>6MGryo`3%A z9WNM+sWmr0#f(K+r~LRb=0UM13#;n)pTQfkMe35d$&iN5l9H^8mYzRn7a{-rVeTE0 zQd?|8WPQ5mlb355+ubky0)sCXE0Xpv*&XCkM~kJ7-g5SKwa!c_y5V5U!*j&71!Zn-AMDCM zS8SErC|QeKBj|R|5Sg&}63mx&u2*>G_P#^r$6Cy8#({ehC8t$D$cHvt`T|q8S+ev= zUEbQL!*|>lOBK7$F0SaNF>7kckkQT$ZT3-nJI-0Y9qUH(6l~yLRGX*mWKo;A9^7%! zwK?d4954Qy%RQMKJvT!tdG$vh&usg2nqj&6%171eefsem|JdH2E+TF0$8m7xPRg7T=^k12FoUQmV$%-x9PVm2w?I?jv_-=s64E01FMsbpx zEOUDYtiW$#xjU|2;6eo1cRH)IziM-xiL%dds^r#Lnfi7dsbO8N3q5xWE6G#Wg>zfh zL!#?H$FkDh8|+s}qga1vrszu%{N3BuI6c2%x$y!QQtgZvn@#O!FZz0}o~_{yF^{qv zsZUzmyfg`(P27DITrHc9*+%2``kNe@3{@y(VRJRPg;ULheC%S^hkIv(?~k(@%Yu^E zMr}vzaqe@KoNP*;?B!hN^0qBIRDShTvZf$l@yTgsQ`7jvJ0m%3V2jzb-Cy9qWy6EX zZ$2Bq6Pk^~Ldo$VCC`lO|FgJdbUteC@VVA)Nw%&=8eVVf$tmw&z+O(!-ys#v78e(+ z`{!s?>i<7qb?*^b)^>!(}PGp0)d%RBF3 zZEhvg${EuuzFAwsEG>nKoz{qfi225iv%Nf>zizE{w1<3u*^_MRzzaK!b47Ngm-oLV z2iAYy$PbBBT}xErC6OXZ4PxaFm)ug+5X~KJoI2OSyXDqBG@$((b??lsGtcR+iv1Cc zhL$d*hVy>?+>-d{Cju6n{&A=l!ro#Mbrtqit7h6>k^OECzE=%?jeu;bf7MP%IJ!9Q z!JMTU*mMM8Zk%EewGhH5U+?$Mhx)3YCj-+GfVaxl*Qpk>YPc$|@2!R5RC;{a>fKH| zn<4yqAjj>!UTGF(G#ciqlT4ziv;s)F{q(&+eIwJ!Ceq83p{223!T}jhHVr9u=_udM zw8$D6uyW*b{_*ft%Ml)(>F+dIoXR%ntO|!}hCN~qyC17@P(w|N1PEVh2{CnCm*!)F zu&Nl#C1Kt9*Pg`rjz^5Op%Vx2*s>Px_DxVe+pZ+7|8hb-C0pp8aDvENKXV>Jjp0f{ z&}5jbAX6bP2eKvis-t_&k9^!1!ljYO8M41Sc z2)qhezFI1`l%#y=ioX?X$~AH4mcVtq1!6hrH9A+KYW1CUEhZv)J@o^Ew4L+2%j_jVv1!^ax)!JLL62jNK7Au)K+CL z42485uJ3(Q6%l%s&%XG?ptMFg$rY@o^{9WY)ZFw3fZEq%LgmwpM_!*8>3Xg-f4p-- zJFbazZq`+>XV{X}zx|ZhvRouU1L?f2AiSn6T~=Ft?23t0S>xB=qNHP6cl5mMPA~J@ z7ZIlymO5q%wTQ=oXTt`5Bb_e7=eXg$NvF;U86^hKkfz(Fy%{c{EXbc*@H8@+hj6A@ ze%Iz#SYFp5R_26KbJ*)^F4;=`ley*uUv6s46^-JWD%b}WOYJ0Z>PIjrgReX94qUFe zJ_#AK`?dIoao`gcgc2s8ohT2D=Zpsk7c@(Bls_u&Qufajk+d?95cUn(kn6l1{kr4& zqWJFVEgU+#c>Ko4U_RBvU*r3TLb`Rq#v9kLM^zEGbx+wx2J7?KhIQXhk!jJwi9k-D z)KaI&t0fcc5;T4$7R0fMim1pwHK-4Vj3#2`)4i1st8u!SZ54Q_R2XcBO)*9KizX)} z=eg5v%?-%mMm61nB+Xg*qS$M0%E^nk{voYH>u8 zjNeI3CvCjt*$#ZGquajrzQ|RZT=dAmT1R-izR1EaDn>g}XjYcTCPh&A)j+cvR5p@5 zepUF}RjYj5BkQYGty>|lHcNh+Mu~?r{i;F2B-Z?{F4XCa1mc^nogo@#^?7LGDh27W zuhm3`LSV?Iy-(HBcJ{BWREuFKnD6M!rQ~f4E3;k&AFp!SV3+rQ)S$@pa@1nm!B~@n z#@Ok?Ks!a>J{GxBd$8cb^U{~FClP6%9&fgi0OxZC^6w<6VO<0sx+@b5^n+3Mt3uaf3&iqCeT@{=m` z-~Gp2>l9r}Lk?)MmvyqFmr$*th_^NLvvH<6n=Z_H9H<(*Ni)3OlJIUC?ddE*y)l}CLBo%@cvN$G8U9_|X>`l@R z$+m%l>!FQ(;sPYT4^4Y7DRH5Qv6e-8#idoFbn&X#auwLnDaj3t23r8Mh?eK9p+wC@!#ASX1%D9HE&4QW?tn^!Th?E#WXq zvP0|TQ%Oj%Ta$_No%R0s<{N24=5d&2+sC1B&vQu%ie)$KbGgf(u+eam^$X*2-Pm|nbZ?EJKJt{&7$SSh+a<^}vhcLf{-7r?C|jzz8z*}2 z6WoF(u-wFI_e;62hF-RcCA?nph{!8PO>0MhU$TufFamDm96B6nD6T4mfo;6WKoOOY zZ#l3d&-k&~O7I!*Rk+QI8iM=iuwUf;ffe*_CZ z+gsJ!zEba?WRqE<>`AyVBKmkH`KaUUcZI+e2GQAB(SfU3Y*A9Vd*C_P?6Jay!%V8Y zSAdblT_^>Pyfbg9^rCfMh1CDy$$wvmI zi4Cz$Bvrwg z-~uAM3e=ZzQb^PF?bJvEQRwkrJQ(Q%m$?dk{mV=rplw&elRbp9x9D8J6etbZUP$fZ zilB&9_B#4j!J3vYfe|v}i3vO+VUZyjQSl}34XS%}e(^ErC%S1W*c;NtjN{=0cpMnd zGJCnWW4YGgEqd$NC-O04XGZy@Jrt z$LH86pGF1;u|XRc05PQ*SSY*(h$&f1g~8A1^@usKR*0Y)e+-ltiW{Tsr};rl~%bju~6j$?p`wESLUXUQmg zW4cz=leK7dy*YiD{54=X>n)x9q*C>{qHF8!A89!d*h_WGPP?>?ysas@9%-cU z{v0_#t>tJPt6qTz9gWs!>(9X+n8k)BwKokPl=h{2w&_#!Wy(7}6Nh*!sJlgWEByN9 zO#FZiMKQcMe(9-aUjM0=Tng8rG#dtJyzlYj4_vo%Z&RFMZQ2!;()VN8)zV1`Cdy6j zZ&`?#u7?X0BP-IQV}AQiacHQ4iZuv%?rjXQI8n3wZHqTbg?B1h6?cBK#dte2m54D9 z4fGRMuYgU)s>iF1{8*Nrf*v4+mBEdh>XYA%S=z$;LYeKvu=1m#1}Zj+$fl1{?q^kC z!~G8246@dZ_WI>(uJVYi75K*qNO6AbdSggFK3Uv3VZOtp?1DBqf{p~2JN@pXZ+C{b zaYB0g=W7blZ*0Fcdo#po?P`E%*6>*gTq69P+pNemrye>k^dN zzlg**jyD_aoS zbXlDSn{1=O@0E5ho`R8(YHC2N_Fk0+h#$5Ry~f9s^#t?kT&dsOl9#WuMtm)CV0 z4Kl8Vk$AokKU4==+M-5QjZ@FST-y_T)Fi!+&|q?M+)iF_v~IRM8+wM&tv=E+_^~X4 zvpPHyz&DXN;fr?7d;3<=RqoVL4fb=@9B<*f%STGe*t>d(6s!s`GyVGJn#inc)snvT zb4(b_BN7J2WD?v<5?<-njlD(ltvOB*^nmxWkg*og`~vyFm^p45D7Sa91jmfmn9g@J z^n#15lter66v+~Ny1atqWX-9nRiMMOjaW`9_8KYMbHie@%}+^3=^bhutnDORTB8ek zdub}Hqt+EV)v@bG^u3-QM9mQ{^;~m}`kzLt4!#|`ZZyCRf~tj-PrOyBk<#m{4+7s| z-}9-h&&RX!pm@DIXS&1@d|V)>{G!Lt{^j@OSGlCWuYNgw&|9|O{yb{!qf^?Y{mdLv z`fWYSKKFy-B>Tq!;9n>jJxEF4FW?`cIexkjrV0`JQBs?L-d=#7qfk)69Yx)cPY41v z%)B9{mLI4ttdBBa=vq@CFgV{Cl#{qf)7dpK-o*i*%fOd9li`ikCIzIJonLthl;m^` z;?k^X0Lc?fJa=G?=uJ=K{Nfi~gg(1UpVIrHlpOgHQg*4gwiOB0l`q%<6d;&7YWgbg zFktrZD`>zaP4?6;Wxes$NQ*e#kcb|b!bNeUKLdoI8S7QNftlH7M0(M?{vap6J~ZXp zlFlVWMIntiP>andVY#oz`nja@{D{{E zqRgEoK2LOr>dmrnYzT0?>u)HkQ-ht#8{T#{zVH&_NwvtE)?EDBm>^00lS2sv*DMPe z7|Wo&YK!_lxU&+hZvzJHC=pjT@wUzCM6Hqw6l}4GgqJR^Ez%s-uts(`bgsV<(=*zg z?)y#iI2ad0E-15)u(rqtwwh3#NiDo?&tRgc))>Ej+3G!m?)Tanw?L=zUzFYmcUYEq z`Gxa51x}Gk7THpqQHp_TTFT|?G>$6MUBbDB^q zNTQd>DM~it^KCKp4^+qCO!3+J?!Jbz$nbIN8q{3djYksK^m_5Oxp0+!^!1Z~(bY3n>X1?=s?^~^$%Q&)u zLf!rC(qp5|9=Zco!(d9gqu?X=^CI76B3gw4>P}%rPsK-~)#IIx$OtTw?klZG_mi#x z@|!!2NZ7*AXe2~*$w5D1zkt-*>FxY$ulk@cQmRJ#LF-F7h1DenRmpM%7vaY|YW8Ww zk;S+-q<-pUOP!*RTf^Q*b)MlF@A}StB_(ue-6yrW(EYSd1iut>Vz7r?fA8;fYg4V- zMYYjH2CHm`&fIAtHI2=fYCS#^jp9gM9em^N6bM-P%E}}t7%w1#$+K^crW0a4Gx!Mx z(-qtlP$1^iyHvNCU~Gmiy~-crFSctkbQ=EjhN@(<^)R+#21kpF_XYiT!QC!<9i=j* zPwdUqV)WVY>gAQ}^Nflt?Njv~-%3QyJj3*eQ>zY*K2Jw%d;1*kq-g)br_RhrZb!kP z+o9hpXlWNRFN`KCOUQpbNiy^vEib7Z3_E|qLD)LH(A5bcFeLKGvQB)(@F?IR?;!h2 z$+fKQBd~(jCi%8{fd>(UICD*3^m&(Xqn9X4bDqCY?oPb-WD@j`}Ylw2`4HAqnkeobMr5 z_C8mN4!O0a3zl00(=--oO5Z)&e2+|w?M&CYuZE)Bo&QBZ{tuEZ*5zl>mSn@SbcbvG zt;1l8B4PpvZl1G@*YsimVlV9r#o~vNH&sgiwTS!cto{nic*t zl!a1f;^VU*{C$!}pI$N3WdsEUsoU<8Qsad7n-66Xn3w+NgYx=s1it@L(KZ;aa7TkKDs)K6d4Bd^? zG+eXL)t~jHpr}oqnd6>m+4$q|!8bvcr6Wr@ODV`R8B)k~{rN`l`IQ$;RuHLjEvyg6 zjOcGA<8ye&nq(>yysjEdnGe}3Zc|I)t%MDT&9;FQg0YmxAv=e}J6EDIZ6tdqXdDpj zcqOkX6d_uokMA$b6Y-L0{At9{^WaY*xJ@piSqvjKuWDMFX?E>!PSaZ{U_o7%>z6Wa4MWX^HC zPvUZUYQpB}sKY@^a3!dkDo4d#ak-b}-zrD<%<%Gf@qOCL#ZWkIy%DGtO-CHHoKOzPYvr;aoef*N&IZl^eFs!Ae9 z3{x4(8d%yK^k~uE16Q}&#)ul9to8uqqr-2{VM(TUtvW`LG71=e6uMITFhxaBB!inxGN32EFH#o z7;-T}?5TyeKH#cFc>=Huff?F7G< z)0$hYZH$tcEyo|V5Y7MH4NE=P>)Y7Z-_7%bE3D>oz#qH5(y({6w$RHt-@Or2qum09 zSU<+$7)zl;?*_auh3YoPj^S9Cej;i@taxSptbcPN`hY!cb2ar((PuH9!s{bp);KU(Pk1*7eEQ>{zCV@>9dz`^{o2w{TRJOC zYN)^3V`U=lF9$$c?2+PPSbCWgIC|2pHg2rv>@tkovAYlE$thTl)(euO z&QDEqYVQ}K)1NHsjBpP$aNep@aq3T(`%^76*)8TK%DTP4BvRj8=4KN-R^$_5;a=ALEr86 zTxq-@L?HCZ%SNd;C@zC7U`d~nAc~q@3S*NCJqgu53P|ObB+Zm$P2tq@$XsH-z7f}~p8=giI6tD57K>PjZ9y@w`i_hXd~12bR^|{m&*Ab7V82AZgnyY2lIBbLID4J zih@e~SXFqLK_Uiq$7*$@_2Hc0Gu*J+3CD%j3iYhE2ssM!*mT~c;YX6+>$e|ITDK0k@`c(n;UYuh(7PC+?nl za9`PE%+BllKfS$WSexCu?MsCUl+r?hQVLX%;#Qz|DelE35ZsEjK#&A!;ROm5F9a#> z8azcpN^y6W0L23d79`kC`~GE}wa?mnowKiVKFtewAjw0n%zKXeH^x0&KY0=YJN;fWa*eoJ3nr=2PCFMSV2rGY-Fz)ZE<6 zIA_TQ?Qz{BkW9aoo0T3Y8;3Aa#--n+2E~ zMPs!w{S`8vHz5@pl$+a+TC)cqX&V|HD=K5y2vIiEmF=$ynPpasmd}XIp4%mR)zp8- zwKe9%(IBi;i7a5Co_uV5M2eo0q>GMUF^P1JCuI9 zSq&JH;Ft(R5pr9^I)vV;j3je5tu@U+!k?W+D$v-PO5^8bhyWqC9}qOAgUQm*6;yj4 zyqP$h)go%->ejpMs;*nxybT8Te7pFv36JG&b-+yt?aXQ$>M+xkMRiUT^0)dK?ED6wPGY&iy zOOTZ0ZW)VD#tMVBON$?;-6Melm0VCo3& zAq1DSM_B@xI1&}G;4*>6DN$9cj?OTY!2I`^jcz7L>O$qj^m4Q)`C0)L?L%CN9SQ()LErvg(^{$#9 zFUhkS=od6R<23m^v00U0MjsnSA{#m9%JI?3ViVdjeB`BWLITgR=p>~2 zP(6bxEk4)mUCnym1&snt&wOmX~ zyNe5Hb4uIT;lX>c@z=vXAQEan9d3LjJWmty7KP$G8cf+BKG!)8^QY5e)9y(5hWpX3emk5N2-nlZPD+Y(ptCs3a9w4Az@a<s%Dn0NJ{V2pC>H8%Ortx+tH*l6&xQ6Y zX8%}L{@mSNd{J*y*VZVIw0&*!U|1Eoxw_I|kZnG2hd)&COL~d`Uq({D`Q&nULM~12 zUKpeQl$Xe(+}xh2>JGWK1qIT|V>AmrqbSCw;fZjcZ86qBp!!4A2*SjlQ%j9S^4;7( zfB0EdN_I^FMcHMB-X&y^bo}R~$xbk3(dET{CD?aJ!tpJ8Y(CK~JdAz~9Q1 z@5WljkXDth29B0qWbvndd+K*mN+R2c-&Hw;+o|Klrn6&i?w0+3uEHy7F40Rx(ol zXO1S_wWLfJziaMaXwsADB%*yl?fqTs;?P?1p?R9-c2i}GoOp)u#Ba|=q8Vz}qip!e z4l#9ULKdq#Xn9W_wwEpBVra9;x9%=b^;qgTw_h3g{k6uFJU}9Z!--#q@>&uddro7J&z?NFUC)7jXs`!Vb*wjAICdAhN`79| zA{*!VnM_``t)J94yP>>7(yrVyJH_1*^Elu42Mt^!*#2Pb zE%>-g+Bwx0Cc8_qc>$_fZb=b;bjqdv`SwT8{5QT;WVkcaF>s$o{ZC+pJE2J2T!I@` z1B_Sfxer8V8iwBS|5lJPuFoxmu!q+q)g9H@-el-%8;z3z{j@U`uGNm}s@d<&;zrqv zEsdx+fhHiWBPD)w?fIH;xV3LKlC3 zV`0P~j)7jJ&TYtD->GixX(*q)6Pxjb&9x;t@T5>W=|MyI=CI*ZjSt`a;P~np@cFha zvNRS^zO{tf|0$FaXg@(oWejQAHN356`NWs>#Oj(76FcRW79D9uB=t(Xq)qcZ>3vTd zZr#D2uiwDg6d%#^FL?Kjc9#S^1L0-v@7Cwl{Ot<4Ivf-VowSgN1tT*n>tf^=;dt!8 zY#-l6wsQT2Xi|n?R%{_MO*3@H+tZB#o^HSi~NVvNRAi(bM+VZw} z_%R~vZ>z&XMZNcOAUB8#*7jC<{(i#i zl4Zr)A(r#L;Pi2o#)p50-$=+W{h8|iKdrTFl(1cL=g#dZrK1ux7=lOG8HG9X1^+mc z#Ld~DK5!5o?Q03&;PRGJ-LCXDlRuFLaHO?(tgV#CCiO|;O8aT-N@XNsoGV3Q$WG_` z2F~Qv3EOKkKVeVE$u_(lc}96+LL^kEl!WV!EU|twIB1nnZ$0z9(O<>|`3FC{0sx-X zziWs&t~s*K`OZ%2vO7Qwk|_?}HQ-#Kud@20yN}Nhcw#Uew*M$Tz8MU6{Bbt~7&^uS zG)@VPY@pi`h8S0kscj#574q=2@4GJixKd*r%S;=qO-sItKUcxvJlIk_>C*lxwp}j2 zm>njDXNkFjXJ)VdkFQkF4 z#6q?|wb(MzGDQ0GK9w2MH3SWO;u>?Q{*S z?EGhy859f1hyIqtTFJ+CV|~G|6Qu53w6~8^(n8qi;^X70@<;ItkUjzr=MFjeSR}qO zI$zY=aPGV`-Fv%KR7hd3vc4XZcGIz?lfb(%!K;V;mOxF*sXEqmrxEz|v&b(}1))z` z+*J@)J6xo9;Ak8^XHQ^m`OwVwJdS5bG@4%pSUNs){;TpimZAP=48@GU8ye1Y)+>91 zzB>4^=IyuY%yo;X6I3ar^bt*y9<)p>t<<09ORJoN5QV!hhF^ zTC3yFOr8*8o9lJ_))?5^p2J(PlE~z^%N5$`rD;p9?gsVfaL(k?GLJQY|Cf9 z1$$uxs8IV-|F{q^7AA7HnBSB&sp+lgtOsH=wYA4;TEq|$|EElRAJ7i*(z&{HIk-=* z`z#hp@0YL%zmc>pH?^ITNTI+xlwjJ+lHelJc?n)rV;S#A>U$tiDXwFqsuLWGrJuKf{RymQf#}madhUjtnj+U76$p(+qqf(Z>^>)QR8T?11^%`hcFmDQ-P>H9El-jJ zyUH0Sz|UhNA5iXAhE3dMj8;M2nH*A8kXj(C`jt~JK>a&>J?kO z$+xtD9aLR3>r;gbQB!f zSKi9mC<3e{QmoFXIW{4xP4RjjPv0HW#0;8q$<$prcw@j;1YS`DCiuyyh}Q~>y;+Op z6iijrqPs@ieC(47OeSR(=0UZQkU?ysl{gipU>3O`q-Pt8zEFETLDlmkM@B%iHI2L} zdve9N*}9b_Bv#y|seAuX2o`sD4Q^=Ld@h)Ws9Qptj^HMquzvsLPZxu z*_0#YgwEnPkB6MKNx{wu8}p>50NZtwFWXvM?d8HF4I^bJ-Cm}Kr2$f{lf8i1bCz_w zPn&}N>2_b3FhUn|c z>8F_3XF6l29~KO`U+D=S=#5}dY!bCxv&uy)4Q=_}|GCG*H>^zVpsF5YU!ZGfzXS&v z;s;eo`gU6Giait(htO}_O?z>qn8GnRZ{hzSkv7dfjTM6&48BVNd$F;3n0kc_o5LG7 zGy4nN`^v`ujsvSZ)R+5o&gxCw6g1!L#A` z85DdZDA!hm}R=Etb= zEilHcVxK^v5hy!d^-FferLBAQ?Mf$li?K5ZN^^Q`Vf|adX6?b96CRH@WG5p@9Q>X2 zGeAo#);@kK_I|HZx998x`4C+5si*QqDul8vJ#=&Cem-Vu=yta6Tmk+{vv^fOk3MR_ z0$5aWV!Ofm1zpx>JVwkQ8p=UE_DOxJ^4@&ckVA!{&4m6yXRq(Bk#GPuPvZeZCSn~T zT<>6c?Lu-4zVKyxBP+49*dU7hRhV^4tA!StR z`h%Yt-$N#@Xiv3j-YMUHsn%%3{7QQwfYg+Wmh$7I!`$9RgY&OE-PkB<3Z%m|W{*^s z5_}?;k81KwM|$nOLQ~*I8&41DS0u8JN6Ml(9d1=Zs#-U?P*dS_J#o^}Vqze`=b#>d zD&%0bva(YQo(Fstgp>SO9V7^P>~Gr%g5E)!l)EOiwL!nloy`f134vkksc>^{iM#i} z7^dDpHCN>-ajfQ6S?Tu0iulKk+GlP+5%HI|`f0@0gxp^VJ#;Zj z9_At~y!wsai-{)iXh#Y##z# zaygcH35j}QJr2)K)*AE)tt}%oF8Bmtb8(nq+wQ`p=1e|5p%E4QU8b0uC&E7e z(|G@c%g?if_}C5!n4#YtUnu}_8%Wh^=eVGz)?F+@J>pQg{&9G~<+;NVBx^2a)=lUlY{AfEd5fYYD| zu;{JV#wQ16tsX+8vsCg6caO-f%rG=xag_<{En8CIzQgdN@tn)}0<$E)u_l;(YH22E zNfo~_8F>G|m9ykbz}pwOwMkj%L-Q9E9?_9=@9>~cNzQlRMcupI2Hl^Fa3b`!Np?U6 z-wD&%R``)@Fsl62k-&XbsbgUVJl2U`aJ)&FD6n~V5Y^yw`Jm@y3)TlG)XAH;u7P2C6X|3&28a;gew=!-wk?u93hEKfI<>%eg^;lm) zf9t^WE!3{WI2yJ_F_soz4*rSed#%4!ECfP@0kKAwIU1Ts5VD$&^pI}qtU)})Y>HK= zQj#To9Zf$(A5(cefo3x}M(|^*5|AppkqUcW$sg66qJUVHCjE9j5E0iwkHMVlWEi-p zBbiCBKFE~c1bQAM8I#%|>$e?%JffD1B@<#Hs!8XXaQdaOC^EfT(N%~)`~%1hruO8; zc*r^50GTO#_+0kC+{@m<2Y-nKn(5Q-bRc7HF8g2d?`$NSRUdiizRU;{mP4^r&AsM@dO}CDu8IR zF%KCQ`*iM-OAgt-@pHsy_2_xMqBRaHz^-A5%KdQh9btWw>|d_`6Ims zCwxsaHAiBdR7WD*G!a7xSBCXMl%CFc(!-#*9GIZM>|1hyuao!Y`+wb&ihQp^5FcsM z3+tQS69W3Yv_usfvvP`QJZ~HTAb%@H+qJdh)+89uSIg?C?z$e~iO=9v<-H*~Lgog`+ah7{%obl8NOgPigEOJfZGY=#)%J9iq#xHh z+rNsabq^Ps7P&s(+{Zh}9!%wD|#;8~0&KSMAHvdX74XEZ)){%kR4a*wAwm_&83Gf7qYgZ74=` zkLUz|YCW^ZtPcB9@&<3$HJlP4tX~d67bf_u(0uTE1VTi1=VBWr z&9jap2?zmW>9?!&kPy5s1Onc#Ct#TZ4zRD|3tq`$!9g?q%I0;42wT({laTmRlAPqr zvV?=TZzndXn74~(SRLoJ>(Owu`t5Bc}soNWL1=FIu0UsoQp-n|s9)A-|#mywN)&5J*6 zL?J;5S2^LVTFBZm10m$?pJ4j&cL?c3Q7{-mASF*V~ThB67550!|JF_-`fqFA)6SC*Gb9a`^5~di>|o z;lKO!zhA}wM6>^|*m`?JYxo~iCefhfKPFcEmum|D?xV|v;MufPcS4OZed_w_aJwIs zf3p{>jdD7qhZ6*>*Q84{RlVKq;TA+MhhOf#i(gRfzd_Sv=R&S5c%zN@!9{3&)8 z^99q_wYe6u(yI$sZd0;VwjI69D}_&o%arIOzp?3Q3!PLlU82cUv&U@ z1~Q1^0M@=r#9}olC)e@Id8iee)bx{zUgxtw%^1}6bbH7v)>+8RdEt0rqZ@92!R2n} zBHW!Sdp&2!<>a)HT_)clO21qqwxfs1q#~hZ9noXT-2--h4ZKTP_qWZ^-)%zYJyCMX z9|g!~j^U7$S?ay2*2id1@YrJJ=+h8 z#RjiUJ-z)~HA5!&J|5J^c_ry}eJh#o_SoGdj9vN=iVG+pnPa@_b&<*bbFZ=mdqpcA z^l&oew;FO3yT06t2;o{L+2qmkvegN8E#^nH-)r3?*PTEMvo(x`P~D6xRgFBF#Sk`SJ$HDt_W~9LDzqBYI`P|EB24Ranc4B z|E+I~XYJbVZ??rxGvsp;tZ;`R%G`SmWAkjvPxa%m2vjY;=1A=zy3e^)mUWym*s%{l!Mr znI{%$N8o;i;sGI<8drXI(aAD8)a*XlvBpOtJ{D@lFPn<*v|K?Icj!aCg;Uq(M}Ake|H8qkX( zj5r?q>y8dhBKg&v`@M8zG%jg2!fQU)h1+*~^7PV66|T0{qTAshv4MU2JK@(Wd1Y>c zWCBcGB6?1%`~v0Uz{PQ|m>f9Y;~*O^`>sU;(XGX=HjN(7Epgk#ZH-RNN9e`v0Z9MU z2MR?h<`mR>l1HQAJ+5q^j0{To(|S$ZwScGZhg!9L1H-)w+k@K$N%3*6vBi?rGB?~8 z4LOT)cvqr7?ezNs(aw9A;G);*LqVWPipM^}a{<<@L-MGGArm^fT|gp^!l$MFsI|FR68-0^f5&42u*y5jZU z;>7dq&rC$A-Zt;w?c6>0`XiDM^Dxr~IpO4sQ?~ZH`Q%fFB<6 zOF?SA4FUvQh~TzhAY7OF|CUbr7lzD#8O`{+(c^CMPYn6LOCvqp9)CwfL|?5WE3Na7 zz^(sYA1Z@p{#+*^Az`-i2_phCer+=05fkuV1~{?}99{Op3*W}q<~N8+b8ekktZe*L zD9Z7)fa&(su)&}5GN_Uv`Jd9k`EwUf=TH4u_p$(tihfO(b!soSciF|^d^|?J0ja-L1vP0QCK_xZ z>eM5cgpsJ0nEp7lSCEYZ^l=rMFY}z$YTPN#t;6_70W`cak#Rpj#3U&y^e^d^=w1m7 zw4yp5A5Y0o(F6xOfeiY=FfLyoV-GG<_n9>->-@{9*Cf8g8=mCpVZR}mlFmRkjEE47 zdPTRVaxa2_*-OCB@nHvyIJ#yXk@H%(2@)u`+cA>h$-W`h0Ha9Q&wG4G0WWm0wf-); zHV+|<&-Fi5c&3k7!P1O&qf#z~<#j3#7)R^PPA_RSyM|5cB1#L8BS8u~)Bc)K{&^G? zAN^dCLTh21#mJ*tVZwNj43=6z@s1A;~ z=mbk2g-(QU(byld5gq5POb+tlkmFmW3YB?pn%4qJOylMLp@%$D9w)7rG>GeVnbWq; ztz2cWhWc!8r99`~v)L)lTWPkWSCAUxeU#GW!m&xfh{0tG4E7Od2g>J6n`_CSidWg{ zE_kz$>1Fjk)>UIr^f+$$xu*NrK_I$ z7cWHW8bg75qXr2fzLG^6)(JOvvCDqg$N=Id04okht3O@+@Kth#=o#iy+(}N)aVo)| zXZT%r6;rB&`f*X}*_(dq7UQ2nc_J^R89I`FR?#VSsbAG~%o_jK`Lgv|EfuR`2dG@n5D-uCs>Jzc&Rh@Y~fS-jP(KaAcmk zjP=ayF!DQqL@F%;N0SXTiDiqfXRTfz+fsVum&Sc3irR|LQR3kq`+ETIN$EAPNJ6HZ zGL20LJEoz-5AKKMi!r^41;EC#Oxx$VJJqUu)%Ebf)|_W^VB|3uCHQtgp6KbpoW$mw zo!Yg*wBcrx;r#CYbKuU@_xp~@hXo{OLtIj{o8jO=9b$hUf+XcbrL$xB)#~zf1B}>c zkna=Jt3+3?*FR-!A}{9IEnw=!oAeScl;-`AEV{SnuYQ4<8>xThY!o=Zcnk82USI+T zoy3Ox;o>uhvwAG<+l-7&0(605HEEUf1 zgC<%g`rLomjI##Ar%ls~E1-H+)#0Z340=3Q<-)Kp>8Xd|Y&d^tq)iMGPa+9%Z~9wk zTEpsVxTdQk9=NO!eQej6Iu0(1W<=fTc|ot(t*$F{vw4jGGKR{R7p(ZI;t>VqM-{5C9p_I=ijdUSWkU`oPbg}puW}im=&_eMkArf(K(-n7zP>Ae&FXZ$ zeQ>&N29|TKuSd1N1b+MA%>CG#l1WO`Tx&?_>uYAT2Twxch4Q)6g*Pbv2HzKbcse1e zs>rf;jm zT(ss{czw$hb^in)wc$_#ih?S;vrnw$WbtUt%`7uZ_zA;BhGxMn);k`@>CW`gFP=|y zX`{*|nrAKecU~Usd=e%8Vjs$1YT)t8YDMhGP${p2Q&K$7%@6v)C%|eGm7DnV9w@f^ ztz&vS#}y*G_AmST%|F{@cW4}P_?vASf8GsLtT8Tm97d+X5BkADB_`EdeQf(}5IYcl zoRzWpm)*hZ&I8VMx(DKQbd+WsY+d`JicR{wp!`UxpT`+;zNK-QywXF@RT-pi#XTit zO=S9rKGZOsqpM(`^yTuB&>*u+q+=Yy0yeIls2w=Zx_sm5I4J3b?h96o0Bim{Hz}RjsxOiC8J!C0HUf+uDjOk1EBwE ztp91VsbYGWEuwY(ipb9yOl8ZOXExhL!DkT^&b;5hj=V%<|zFZ$)P1=02W-z0)jw!+~4H9pAN| z>73zbHNyI;M<37guf+JDm~s<7t+QicQV*3twk@j?z(3|d^8T>y+a8Ez4P{*mglQ-P zPun-IlQrwj1@1zhMcv~(UOILEj)aH8u!V^AzeYWgVfDTyu1kFlVa2|_5jz$`rT1!( zJ+=*BektXmlJnNYa}q3&y-nWQdL9h1LHZ~OE%08t*JF)1NWIlX)IBFU%u{H0)@W{CKi9+7^@4Fm*BaG z=p48(UPiZ~HgNUAB|sP5X!jH0sh#socEHsZd>(zMh&9&^_4!$MECn`plH9mRnj*_*Np{bTWTrZD9Q_&Xz=JA zE@&1`Nq*Qq+nQawm_zFZw{>}CKDrb0J$o@0F?2(so2&W-EIA?mT{;>Vp=BM#iGWgIw56uu1XP|;$UXU=Xtc0_lR&# z_+j&AsmAd7+^o|bk>BTr9rqY7Yb$3O{L5h4U^w4OLieAGWc~{Z?7yPJ{`vjG-i3vQ zC``pyLP{y2*Gfb*82Ougd!ZHQmHOvcMKtPmvSk(k} zN(b*6ZwWLW^VDSYsy2C`6LRY{pPrdi_$D9sEe^N)k!?2DpOy|ux|Ap_fuxmh-tGK! zZNIW8t<L^YjANr{A$G5+6pM( z)ID|72|(p;vhGGH{nly@a{-bQkUVyj?KF(=e_`S&E=FU#jkA5{RZnHea7tNz8R?6x z-B?uTyPhi238>B)VJK7b?O|Oo?_~|({xFPS84H<;D~%3I zVI8di)?W;kz8}TMEY%w^`UxZ_Jem;`L_+>{b`6;xZ1VtW7$=j>; zM=E~+Ni$D72f+w$lFTX*AiINPyy-20uG#sa7hSxjFS;*q6b~NJDC6t8)yE`Bz{3X= z*!bblfzLXshcNzw+2}7G)&^M^>H|RRYHt0}SB`399#qI?faZzA!Q6ScG>t)MLP3jd z)(<&0hTBc>iwHSd`zmW`xXy|m<9Heq_Xb%>u_GN(C4Yn%5S?FWH4a^Ip6mA4@+c;0 z6#DF7io1D<_=mZ3PTLGHJdsrYsLA<0LlN2|XLIQul|NO~sL&pPgR}@}x8jAt_HFp? z7|}wZroG-B1uufWnFdgd)%5U; z<}CGNU=pvb5x8^=zAjItym-4Lp9D6nk#C`9dPq>qFQ$5ytvAP4O7Nub>#`AfX`|yC(^6?tBB2{{Igr(^4yaNNGs;J z83$8`gnG*bbcMC$uGs_Q#Bnn!@=axPND2q`jP5 zcZzIdn{m?>C@~V=LT_h3OGhsTYt9xy_~>pBqNubwTwdE4^M89RH1Sg`d-e2XxC&^= zd^L*xev+{E=h$65i!B8J)PyQReKtGtPnhSPBQ@07^(nk?7~a~yA*#}tJVaG*AM_ze zezj~%*Lyv6v>wViB3|117*-w*OkV)HX4Ax-=j-$qBXJ?C?kU0@=pSp(vOz3Lm_eGe z^F}r++)*g}(Y4pgdHj;hL4dN#0rZVxubw)FJ({oC(4yxRm9r>956`-s;BRifK~wfP zEt=TS$Q0U*on^d!;3=NP@#AjrB2mg$sW%0DbAT;|8^&e^gc(dn?w=41hnwWuvSj}K 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 diff --git a/projects/rocprofiler-compute/docs/data/analyze/grafana/spi-resource-allocation_panel.png b/projects/rocprofiler-compute/docs/data/analyze/grafana/spi-resource-allocation_panel.png deleted file mode 100644 index bee869ad10e1572382a448bb9c6439c157f9a59b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50634 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 z 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