JCUDA and NVVP (Visual Profiler)

I’m attempting to use the Nvidia Visual Profiler (nvvp) to profile a simple JCUDA application.

I see that a question has been asked previously regarding nvvp: http://forum.byte-welt.de/showthread.php?t=3328&highlight=profile but my symptoms are different.

The application runs fine inside of the visual profiler (I see the correct output in the console). However, no profiling information appears, and at the end of the console output I see:

======== Warning: No CUDA application was profiled, exiting

From the error message, it sounds like Visual Profiler isn’t seeing the kernel launches / memory operations being started by JCUDA.

Does this error look familiar to anyone? Have people used JCUDA and Nvidia Visual Profiler together successfully before?

Thanks in advance for any help.

I should note that I also see the same “======== Warning: No CUDA application was profiled, exiting” error when attempting to profile the JCUDA examples which come with the library (specifically I have tried: JCudaVectorAdd and JCudaDriverTextureTest).

Hello

The error message did not look familiar to me - until I tried it out again :frowning:

For quite a while I wanted to summarize the steps for running a JCuda application inside the Profiler in a short „HowTo“ (basically pointing out how to create the .BAT file and show it with one example). In fact, it was possible to profile JCuda applications with previous versions of the Visual Profiler! But obviously, NVIDIA changed something with version 5.0, and now it does not work any more. This is quite annoying and irritating - especially when considering that the Visual Profiler is an Eclipse application, written in Java!

However, I just tried to run the VectorAdd example with version 5.0, and it also printed this error message. Then I tried it again with the Profiler of version 4.2, and it worked properly -_-

(NOTE: If profiling is urgent/important and you want to downgrade to 4.2, consider that you’ll also need the appropriate JCuda 0.4.2 libraries. I’d not recommend to downgrade in general, maybe the problem can be solved differently).

I’ll try to have a closer look at this when I have a little bit more time. I’ll probably also ask at the NVIDIA forum about this change in behavior, and whether it might be possible to somehow get it running with version 5.0 of the Profiler as well.

bye
Marco

BTW: A websearch for
„No CUDA application was profiled“
brings some results, but nothing helpful - in any case, people seem to encounter this error also on Linux and when using the Matlab bindings for CUDA, or when trying to profile OpenCL kernels - although the latter worked for me even with JOCL…

I posted this question at https://devtalk.nvidia.com/default/topic/524531/cuda-programming-and-performance/profiler-error-message-when-profiling-jcuda-application/ - hopefully there will be some hints (I also don’t have sooo much time to do a more detailed analysis at the moment).

Thank you for looking into the issue!

I’ll keep an eye on the thread you posted on NVIDIA’s forum.

For now I’ve worked around the issue by writing a small test case in c which is close enough to the Java code that I’m trying to profile.

However, it would be very nice to get NVVP and JCUDA working together again. I’ve found NVVP to be a pretty invaluable tool for CUDA development.

Thanks again,

Geoff

So unfortunately there has not been a response in the NVIDIA Forum yet… And it’s unlikely that there will be one.

I’ve read that the Profiler may be very picky concerning the resource allocation and release (e.g. that it may not generate any output when resources are not explicitly released before the application exits). I tried around a little with the samples, e.g. explicitly destroying the context before application exit etc, but did not find a solution yet. Additionally, the new Profiling API might have some influence there, but I have not yet read the documentation thoroughly, and still it’s only the vague hope that it might be possible to get it running. Maybe I can allocate some more time for further investigations, but of course I can’t specify a date (in fact, I can’t even promise that it will work at all…).

Sorry for the inconveniences.

After a quick test, it finally seems to work again with the visual profiler of CUDA 8.0.