In CUpti_ActivityMemcpy , there are two correlationId for driver and runtime API. what does correlationId mean here and how to use them? Also correlationId exist in callback APIs, does they same thing.
The correlation-id is used to correlate the activity (CUDA memcpy, kernel, memset etc) with the CUDA API that results in the activity. Note that every CUDA API is given a unique correlation-id.
Correlation Id in the callback API is the correlation id of the current CUDA Driver or the Runtime API.
Field runtimeCorrelationId is not used anymore.
I had a follow up question regarding this:
I am using the “nsys” executable in the Linux system to profile an application. I am exporting the contents of the profiler to an sqlite report using the --export flag.
In the Table “CUPTI_ACTIVITY_KIND_KERNEL”, I am unable to find which row corresponds to which kernel (I have multiple CUDA kernels in my application).
Is there a way that I can get the execution time data of the kernel (start and end timestamps) and the name of the corresponding CUDA kernels?
Basically, all I am asking is if there is a way to get the name (as string) or a mapping between an ID and the kernel being profiled. I have the kernel specific time-stamps but I dont know which kenrel does this profiling data belong to.
Hoping for an answer.
For kernel name, in the sqlite report generated by nsys, you can find the “demangledName” and “shortName”
fields in the table “CUPTI_ACTIVITY_KIND_KERNEL” which have an id which map to the “id” field in another table stringIds. String in the “value” field is the mangled/demangled name of the kernel.
Does it answer your query?