In CUDA, Is there a way to find out which functions are executed by a certain input.
Suppose, I have n functions : f1, f2, ...., fn. Then is there a way to detemine which functions out of these were called and even better would be if I could get the order in which they are called.
For example: The input calls f1, f2, f3, f5 and f6 and in the following order
f1 -> f3 -> f5 -> f2 ->f1 ->f6
Is there a way to get this calling order. And also it would be helpful, if I can determine the thread id and warp id in which the function is being executed for a given cuda file?
I am able to generate the call graph using clang++, but that gives me only the relationship between calling and callee context of ALL functions.
I am more interested in knowing which functions does an input traverse and in what order. It may be that the entire file has thousands of functions but the input executes only 3 of them, therefore I would like to know which are these three functions and in which order were they executed, and also in which lane and thread were they executed.