Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to profile OpenCL application with CUDA 8.0 nvprof

I'm trying to profile OpenCL application, a.out, in a system with NVIDIA TITAN X and CUDA 8.0.

If it was CUDA application, nvprof ./a.out would be enough. But I found this does not work with OpenCL application, with a message "No kernels were profiled."

Until CUDA 7.5, I successfully used COMPUTE_PROFILE=1 following this. Unfortunately, the documentation says "The support for command-line profiler using the environment variable COMPUTE_PROFILE has been dropped in the CUDA 8.0 release."

The question is, is there any way other than downgrading CUDA to profile OpenCL application with nvprof?

like image 421
csehydrogen Avatar asked Jan 17 '17 13:01

csehydrogen


1 Answers

To the best of my knowledge, nvprof has never supported OpenCL profiling.

Running code with COMPUTE_PROFILE=1 invokes a driver based profiling mechanism which predates the introduction of nvprof. That driver based mechanism was deprecated a while ago and has now been removed as of CUDA 8 in favour of using nvprof.

As a result, it would appear that there is no way to profile OpenCL code running on NVIDIA hardware using the CUDA toolkit.

like image 170
talonmies Avatar answered Oct 17 '22 02:10

talonmies