llvm/cuda: Indentify kernel functions and optimizations


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?




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!