Range descriptions when using autorange profiling


When running the autorange_profiling example, I see that it collects data over two ranges, one for each of the kernel launches that happen in the example. The range descriptions are “0” and “1”. Is there any way, when using autorange profiling, to get more information about what code the range represents than just a number indicating the order in which the kernels were observed? For example, is there a way to programmatically determine that the range with description “0” corresponds to the kernel named VecAdd and that “1” corresponds to VecSub, or the line numbers of the kernel launches, or things of that nature?

Also, the Perfworks Metrics API has documentation in the Usage section of the CUPTI documentation, but there is no corresponding documentation on its functions or data structures in the Modules or Data Structures sections of the CUPTI documentation. Is there more documentation on the Perfworks Metrics API available somewhere?

In the auto range mode, CUPTI serializes all the kernel launches and each launch gets a unique zero based id. For ex - first kernel gets id 0, second kernel gets id 1, and so on. CUPTI doesn’t provide support to give custom range name for each launch in the auto range kernel profiling mode.

For ex:
KernelA <<<>>>() // range0
KernelB <<<>>>() // range1
KernelC <<<>>>() // range2
KernelA <<<>>>() // range3
KernelB <<<>>>() // range4

Please refer the Perfworks headers shipped with CUPTI. Modules and Data Structures sections in the CUPTI doc are auto-generated based on the descriptions and parameters for the APIs in the headers, but it’s not done for Perfworks headers yet.

Since the kernel launches are serialized, if I use the CUPTI Callback API to get notifications of kernel launches, is the order of the launches observed via the Callback API guaranteed to be the same as the order in which ranges are numbered by the Profiling API in auto range mode?