How to profile an OpenCL application using CUDA 8.0 nvprof

I am trying to profile an OpenCL application, a.out , on a system with NVIDIA TITAN X and CUDA 8.0.

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

Prior to CUDA 7.5, I successfully used COMPUTE_PROFILE=1 after this . Unfortunately, the documentation says: "Support for the command line profiler using the environment variable COMPUTE_PROFILE was removed in the CUDA 8.0 release."

The question is, is there any other way besides lowering CUDA to the OpenCL application profile using nvprof?

+9
profiling opencl cuda nvprof
source share
2 answers

To my knowledge, nvprof has never supported OpenCL profiling.

Running the code with COMPUTE_PROFILE=1 invokes a driver-based profiling mechanism that precedes the implementation of nvprof . This driver-based mechanism was deprecated some time ago and has now been removed from CUDA 8 in favor of using nvprof .

The result would be that there is no way to profile OpenCL code running on NVIDIA hardware using the CUDA toolkit.

+4
source share

A downgrade seems to not work in some cases. I tried to do this on Ubuntu 14.04 using the NVIDIA 384.130 driver and two CUDA toolkits (7.0.28 and 7.5.18) on the Volta V100, but no profile log was created at all.

Are there any updates on this? I am very interested in profiling OpenCL applications on the latest Nvidia devices.

0
source share

All Articles