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:
- Is there any way to pass compiler options using the C++ wrapper without modifying the header files?
- Has anyone successfully profiled an OpenCL application?
- If so, what profiling tools would you recommend?
Thanks!