[SWDEV-512693] Iteration based counter multiplexing (#272)
Adds iteration based multiplexing to counter collection. Counter groups can now be specified. These counter groups are collected on a device individually until a specified interval period is reached. When the interval is reached, the next counter group is set to be collected on subsequent kernel executions. Supplies two new argument types that can be included in YAML/JSON inputs: pmc_groups: an array of arrays containing the counter groups to run (i.e. [ ["SQ_WAVES", "GRBM_COUNT"], ["GRBM_GUI_ACTIVE"]) pmc_group_interval: the number of kernel invocations on a GPU of a group before rotating to the next group Note: originally there was a random_seed_generator proposed in the linked ticket, that was not implemented since there are very few instances where you would want the selection of the groups to be randomly generated (and if you do, you can randomly generate the pattern and place it as a large list of groups in pmc_group). All existing counter functionality should be preserved (selection of counters on specific devices only, profiling of only specific kernels, etc). --------- Co-authored-by: Benjamin Welton <bewelton@amd.com>
This commit is contained in:
@@ -15,7 +15,16 @@
|
||||
"type" : "array",
|
||||
"description": "list of counters to collect"
|
||||
},
|
||||
|
||||
|
||||
"pmc_groups": {
|
||||
"type" : "array",
|
||||
"description": "An array containing lists of PMC counters to collect in a multiplexing fashion (e.x. [[counter1, counter2], [counter3, counter4]])"
|
||||
},
|
||||
"pmc_group_interval": {
|
||||
"type" : "integer",
|
||||
"description": "Number of kernel launches between selecting the next group of counters to collect"
|
||||
},
|
||||
|
||||
"kernel_include_regex":{
|
||||
"type": "string",
|
||||
"description": "Include the kernels matching this filter"
|
||||
|
||||
Reference in New Issue
Block a user