llvm/cuda: Indentify kernel functions and optimizations

Hi,

I am trying to instrument CUDA kernel functions only (llvm-3.9.0).

Is there a way to identify cuda kernel functions?

I see that in llvm IR for CUDA has nvvm annotations section, where kernel functions are identified for NVPTX usage. I can parse the whole IR for this kernel metadata and then proceed, but this is very clumsy.

Other way is to work with cuda-device-only IR. But then I am not sure how to run this cuda-only-IR, as this contains cuda-device specific code and not rest of the host-device code.

In NVPTXBaseInfo.h, the function attributes are defined, along with PROPERTY_ISKERNEL_FUNCTION. How can this be used to identify the kernel function?

Thanks.

-Gurunath

https://github.com/llvm-mirror/llvm/blob/652375a8cc49615de31fd9d424753795059185b6/lib/Target/NVPTX/NVPTXUtilities.h#L58

Does this solve your problem?

Hi Jingyue,

Thank should work! :slight_smile:

Also, next time I will check the available resources in NVPTX before posting here!

Thanks.

-Gurunath