Files
Sajina PK 09b8342e22 [Rocprofiler-systems] : Add XGMI and PCIe metrics to the profiling data (#1628)
* Add XGMI and PCIe metrics to the profiling data

Add support for AMD XGMI (GPU-to-GPU interconnect) and PCIe
metrics:
  * XGMI link width in bits
  * XGMI link speed in GT/s
  * Per-link read bandwidth (KB)
  * Per-link write bandwidth (KB)

- Add new categories for PCIe metrics:
  * PCIe link width
  * PCIe link speed in GT/s
  * Accumulated bandwidth (MB)
  * Instantaneous bandwidth (MB/s)

* Fix VCN/JPEG insert logic

* Modify the gpu_metrics struct to accomodate XCP structure

* Add ctest automation for gpu interconnect metrics

* Refactor to move gpu_metrics struct and serialization to another file

* Possible fix for timeout in CI

Fix redundant skip check in ctest
Add xgmi and pcie option in rocprof-sys-avail.

* Change2: Address review comments

Change ctest sampling to avoid timeout
Change variable name and code structuring

* Add option in ctest to run rocprof-sys-run without rewrite

Run transferbench with rocprof-sys-run without sampling

* Change3: Fix sample insert bug and address review comments

xgmi and pci support check
renaming variables
additional hip_api validation in rocpd

* Reduce the load from the trnasferBench sample

The CI builds were timing out when flushing a big temporary file to the
DB: (2720824.23 KB / 2720.82 MB / 2.72 GB)...
2025-11-14 19:42:33 -05:00

101 lines
5.3 KiB
JSON

{
"required_tables": [
{
"min_rows": 1,
"name_prefix": "rocpd_info_pmc",
"required_columns": [
"agent_id",
"target_arch",
"name",
"symbol",
"description",
"units",
"value_type"
],
"validation_queries": [
{
"comparison": "greater_than",
"description": "Check for Xgmi amd-smi metrics",
"error_message": "Did not find Xgmi data in amd-smi metrics",
"expected_result": 1,
"query": "SELECT COUNT(*) as count FROM {table_name} WHERE symbol LIKE 'Xgmi%'"
},
{
"comparison": "greater_than",
"description": "Check for Pcie amd-smi metrics",
"error_message": "Did not find Pcie data in amd-smi metrics",
"expected_result": 1,
"query": "SELECT COUNT(*) as count FROM {table_name} WHERE symbol LIKE 'Pcie%'"
}
]
},
{
"min_rows": 500,
"name_prefix": "rocpd_pmc_event",
"required_columns": [
"event_id",
"pmc_id",
"value"
],
"validation_queries": [
{
"comparison": "greater_than",
"description": "Check for amd-smi monitoring busy times",
"error_message": "Less than expected number of captured amd-smi xgmi link speed samples!",
"expected_result": 100,
"query": "SELECT COUNT(*) as count FROM {table_name} event JOIN rocpd_info_pmc info ON event.pmc_id = info.id WHERE info.name = 'device_xgmi_link_speed'"
},
{
"comparison": "greater_than",
"description": "Check for amd-smi monitoring busy times",
"error_message": "Less than expected number of captured amd-smi xgmi link width samples!",
"expected_result": 100,
"query": "SELECT COUNT(*) as count FROM {table_name} event JOIN rocpd_info_pmc info ON event.pmc_id = info.id WHERE info.name = 'device_xgmi_link_width'"
},
{
"comparison": "greater_than",
"description": "Check for amd-smi monitoring busy times",
"error_message": "Less than expected number of captured amd-smi xgmi read data samples!",
"expected_result": 100,
"query": "SELECT COUNT(*) as count FROM {table_name} event JOIN rocpd_info_pmc info ON event.pmc_id = info.id WHERE info.name LIKE 'device_xgmi_read_data%'"
},
{
"comparison": "greater_than",
"description": "Check for amd-smi monitoring busy times",
"error_message": "Less than expected number of captured amd-smi xgmi write data samples!",
"expected_result": 100,
"query": "SELECT COUNT(*) as count FROM {table_name} event JOIN rocpd_info_pmc info ON event.pmc_id = info.id WHERE info.name LIKE 'device_xgmi_write_data%'"
},
{
"comparison": "greater_than",
"description": "Check for amd-smi monitoring busy times",
"error_message": "Less than expected number of captured amd-smi pcie bandwidth instantaneous samples!",
"expected_result": 100,
"query": "SELECT COUNT(*) as count FROM {table_name} event JOIN rocpd_info_pmc info ON event.pmc_id = info.id WHERE info.name = 'device_pcie_bandwidth_inst'"
},
{
"comparison": "greater_than",
"description": "Check for amd-smi monitoring busy times",
"error_message": "Less than expected number of captured amd-smi pcie bandwidth accumulated samples!",
"expected_result": 100,
"query": "SELECT COUNT(*) as count FROM {table_name} event JOIN rocpd_info_pmc info ON event.pmc_id = info.id WHERE info.name = 'device_pcie_bandwidth_acc'"
},
{
"comparison": "greater_than",
"description": "Check for amd-smi monitoring busy times",
"error_message": "Less than expected number of captured amd-smi pcie link speed samples!",
"expected_result": 100,
"query": "SELECT COUNT(*) as count FROM {table_name} event JOIN rocpd_info_pmc info ON event.pmc_id = info.id WHERE info.name = 'device_pcie_link_speed'"
},
{
"comparison": "greater_than",
"description": "Check for amd-smi monitoring busy times",
"error_message": "Less than expected number of captured amd-smi pcie link width samples!",
"expected_result": 100,
"query": "SELECT COUNT(*) as count FROM {table_name} event JOIN rocpd_info_pmc info ON event.pmc_id = info.id WHERE info.name = 'device_pcie_link_width'"
}
]
}
]
}