Identifier: "WorkloadDistribution"
DisplayName: "GPU and Memory Workload Distribution"
Description: "Analysis of workload distribution in active cycles of SM, SMP, SMSP, L1 & L2 caches, and DRAM"
Order: 100

Sets {
  Identifier: "basic"
}
Sets {
  Identifier: "detailed"
}
Sets {
  Identifier: "full"
}
Sets {
  Identifier: "roofline"
}

Header {
    Metrics {
        Label: "Average SM Active Cycles"
        Name: "sm__cycles_active.avg"
    }
    Metrics {
        Label: "Average L1 Active Cycles"
        Name: "l1tex__cycles_active.avg"
    }
    Metrics {
        Label: "Average L2 Active Cycles"
        Name: "lts__cycles_active.avg"
    }
    Metrics {
        Label: "Average SMSP Active Cycles"
        Name: "smsp__cycles_active.avg"
    }
    Metrics {
        Label: "Average DRAM Active Cycles"
        Name: "dram__cycles_active.avg"
        Filter {
          Items {
            MinArch: CC_75
            MaxArch: CC_86
          }
          Items {
            MinArch: CC_89
            MaxArch: CC_100
          }
          Items {
            MinArch: CC_103
            MaxArch: CC_103
          }
          Items {
            MinArch: CC_120
            MaxArch: CC_120
          }
        }
    }
    Metrics {
        Label: "Average MC Channel Active Cycles"
        Name: "mcc__cycles_active.avg"
        Filter {
          Items {
            MinArch: CC_87
            MaxArch: CC_87
          }
          Items {
            MinArch: CC_110
            MaxArch: CC_110
          }
        }
    }
    Metrics {
        Label: "Total SM Elapsed Cycles"
        Name: "sm__cycles_elapsed.sum"
    }
    Metrics {
        Label: "Total L1 Elapsed Cycles"
        Name: "l1tex__cycles_elapsed.sum"
    }
    Metrics {
        Label: "Total L2 Elapsed Cycles"
        Name: "lts__cycles_elapsed.sum"
    }
    Metrics {
        Label: "Total SMSP Elapsed Cycles"
        Name: "smsp__cycles_elapsed.sum"
    }
    Metrics {
        Label: "Total DRAM Elapsed Cycles"
        Name: "dram__cycles_elapsed.sum"
        Filter {
          Items {
            MinArch: CC_75
            MaxArch: CC_86
          }
          Items {
            MinArch: CC_89
            MaxArch: CC_100
          }
          Items {
            MinArch: CC_103
            MaxArch: CC_103
          }
          Items {
            MinArch: CC_120
            MaxArch: CC_120
          }
        }
    }
    Metrics {
        Label: "Total MC Channel Elapsed Cycles"
        Name: "mcc__cycles_elapsed.sum"
        Filter {
          Items {
            MinArch: CC_87
            MaxArch: CC_87
          }
          Items {
            MinArch: CC_110
            MaxArch: CC_110
          }
        }
    }
}

Body {
    Items {
        SuffixTable {
            Label: "Workload Distribution"
            Suffixes {
                Suffix {
                    Label: "Average"
                    Name: ".avg"
                }
                Suffix {
                    Label: "Min"
                    Name: ".min"
                }
                Suffix {
                    Label: "Max"
                    Name: ".max"
                }
                Suffix {
                    Label: "Sum"
                    Name: ".sum"
                }
            }
            BaseNames {
                BaseName {
                    Label: "SM Active Cycles"
                    Name: "sm__cycles_active"
                }
                BaseName {
                    Label: "SMSP Active Cycles"
                    Name: "smsp__cycles_active"
                }
                BaseName {
                    Label: "L1 Active Cycles"
                    Name: "l1tex__cycles_active"
                }
                BaseName {
                    Label: "L2 Active Cycles"
                    Name: "lts__cycles_active"
                }
                BaseName {
                    Label: "DRAM Active Cycles"
                    Name: "dram__cycles_active"
                    Filter {
                      Items {
                          MinArch: CC_75
                          MaxArch: CC_86
                      }
                      Items {
                        MinArch: CC_89
                        MaxArch: CC_100
                      }
                      Items {
                        MinArch: CC_103
                        MaxArch: CC_103
                      }
                      Items {
                        MinArch: CC_120
                        MaxArch: CC_120
                      }
                    }
                }
                BaseName {
                    Label: "MC Channel Active Cycles"
                    Name: "mcc__cycles_active"
                    Filter {
                      Items {
                        MinArch: CC_87
                        MaxArch: CC_87
                      }
                      Items {
                        MinArch: CC_110
                        MaxArch: CC_110
                      }
                    }
                }
            }
        }
    }
}