Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

NVIDIA CUDA Toolkit 5.0 Visual Profiler "Enable concurrent kernels profiling" feature doesn't work with OpenCV 2.4.2

I'm working on Windows 7 64 bit and Visual Studio 2010 Professional. I'm using CUDA Toolkit 5.0 because I need to use the new feature of the NVIDIA Visual Profiler of this Toolkit that allows to view in the timeline concurrent kernels executed asynchronously (this is not possible with the CUDA Toolkit 4.2). For this reason, I built (succesfully) the source code of OpenCV 2.4.2 with this Toolkit (5.0) installed on my pc, and I'm able to compile and execute correctly my application with concurrent kernels invoked by various functions of the module OpenCV_GPU (with the use of streams). But, unfortunately, CUDA 5.0 NVIDIA Visual Profiler can't trace the timeline of my application if I enable the feature: "Enable concurrent kernels profiling". The program stops working, it continues executing the application until I press "Cancel". It's not a problem of the NVIDIA CUDA 5.0 Visual Profiler because it displays correctly the timeline of all other my CUDA applications that don't make use of OpenCV to get concurrent kernels execute asynchronously.

click to hide/show revision 2
Refined the problem

NVIDIA CUDA Toolkit 5.0 Visual Profiler "Enable concurrent kernels profiling" feature doesn't work with OpenCV 2.4.2“Enable concurrent kernels profiling” application requirements

I'm working on Windows 7 64 bit and Visual Studio 2010 Professional. I'm using CUDA Toolkit 5.0 because I need to use the new feature of the NVIDIA Visual Profiler of this Toolkit that allows to view in the timeline concurrent kernels executed asynchronously (this is not possible with the CUDA Toolkit 4.2). 4.2). For this reason, I built (succesfully) the source code of OpenCV 2.4.2 with this Toolkit (5.0) installed on my pc, and I'm able to compile and execute correctly my application with concurrent kernels kernels: some of them are invoked by various functions of the module OpenCV_GPU (with the use of streams). But, unfortunately, and others are kernels I directly wrote in CUDA. Unfortunately, CUDA 5.0 NVIDIA Visual Profiler can't trace the timeline of my application if I enable the feature: "Enable concurrent kernels profiling". The program It creates the timeline correctly both for code written using ONLY OpenCV functions and for code written using ONLY CUDA functions. Indeed, it stops working, it continues executing the application until I press "Cancel". It's not a problem of the NVIDIA CUDA 5.0 Visual Profiler because it displays correctly the timeline of all other my CUDA applications working when I mix the two in the same application . I think this may be caused by the fact that don't make OpenCV calls should use of OpenCV to get concurrent kernels execute asynchronously.the same CUDA Context as the rest of the CUDA code. How can I manage the CUDA Context in order to allow the Profiler to trace the timeline?

OS: Windows 7 64 bit; Compiler: Visual Studio 2010 Professional; Driver: 306.23; Device: GeForce GTX 680 or GeForce GT 650M

Thank you for your attention!