Opencl kernel profiling

Hi,

I’ve been trying to profile an OpenCL application using NVIDIA Nsight.

I’m aware that NVIDIA officially states there’s no support for OpenCL profiling. However, after some research, I discovered that the OpenCL compiler actually generates NVIDIA PTX assembly. That made me suspect that Nsight might still capture some useful information—so I gave it a try.

To my surprise, it does seem to capture something.
The issue, though, is that none of the traces are labeled or annotated in a meaningful way.

I then noticed that the OpenCL compiler is configured not to generate any symbol information. For example, here’s what I see in the log:

C:\Windows\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_52f3d9d461d3ba3c\nvvm64.dll’. Module was built without symbols.
‘ndSandbox.exe’ (Win32): Loaded
‘C:\Windows\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_52f3d9d461d3ba3c\nvptxJitCompiler64.dll’. Module was built without symbols.

I tried looking for ways to pass compiler options to enable symbol generation, but it seems the C++ bindings in OpenCL 3.0 have removed support for passing such options directly.

So here are my questions:

  1. Is there any way to pass compiler options using the C++ wrapper without modifying the header files?
  2. Has anyone successfully profiled an OpenCL application?
  3. If so, what profiling tools would you recommend?

Thanks!

I just switch to AMD, they have a nice tool set that can profile Kernel, and provide a lot of info.
so kudos to amd for that tool.

you can close this topic.
Julio.