0 Replies Latest reply on Nov 17, 2015 1:53 PM by amarques.amd

    Questions about profiling OpenCL kernel on CPU

    amarques.amd

      Hey guys,

       

      I tried time-based sampling a program that runs an OpenCL kernel on the CPU, hoping to get in the call graph granular info about were my hotspots may be in the kernel.

       

      I'm not able to locate any part of my kernel in the call graph though.

      Most samples are taken in modules: libamdocl64.so, libamdocl12cl64.so and OCL4371T1.so. I suspect that my kernel is being compiled into this latter module because of its name, that it's located under /tmp and its timer value. However, the symbols for these modules are marked as not loaded, and the resulting profiling data is of little use.

       

      I tried disabling optimizations and enabling debugging information like this when building my program:

       

      clBuildProgram(*program, 0, NULL, "-g -cl-opt-disable", NULL, NULL)
      

       

      I found the reference to the -g option in a possibly outdated AMD document:  "Introduction to OpenCL Programming - Training Guide" published in 2010.

       

      In short:

       

      Is it possible to load the missing debugging symbols into CodeXL? How?

      Can I get descriptive information in the call graph about where the kernel hotspots are when running it on the CPU?

       

      I'm running CodeXL 1.8 on Ubuntu 14.04.

       

      Thank you,

       

      Adrian.