Error : unable to profile application api.log doesn't exist TX1

Hi,

I am running nvvp on my Ubuntu 14.04 host system to profile the TX1 system. It starts running the application but on completion it throws an error: Unable to profile application. org.eclipse.core.runtime: /tmp/nvvp_ubuntu/launch/7/api.log doesn’t exist.

I have installed JetPack 2.1 on my host machine.

Thanks,
Siddhesh

Note that nvvp launches the command line profiler nvprof to collect profiling data.

Looks like there was some error in nvprof execution due to which the nvprof output log was not created.

Can you check and paste the information displayed in the nvvp console view?
( The console view by default is one of the tabs at the bottom of nvvp window.
Refer: http://docs.nvidia.com/cuda/profiler-users-guide/index.html#console-view)

There may be some error messages which may help to understand the issue.

Hi, Siddhesh

Please check whether /usr/local/cuda/bin/nvprof exists on your device. If not, please try “sudo apt-get install cuda-command-line-tools-7-0” on device.

There might have chance for JetPack to hit some issue not installing this package.

Thanks.

Hi ssatoor,

The console displays the expected output and then logs out:

---------prediction for test_image-----------
0.1459 - “n02165456 ladybug, lady beetle, ladybird”
logout

It then pops out an error message: “Unable to profile application. org.eclipse.core.runtime: /tmp/nvvp_ubuntu/launch/7/api.log does not exist.”

Thanks.

Hi Xuan,

I do have /usr/local/cuda/bin/nvprof on my TX1. Is there something else that I may have missed?

Thanks.

Hi,Siddhesh

Does nvprof on TX1 locally works? You can try nvprof ./sample to check the result.

We can not reproduce the issue you met, if possible, can you upload you app for us to check ?

Hi,

The issue is with the shell script that I give. If I specify the arguments in command line in NVVP it works perfectly.

Is there any way that I give it a shell script (which contains multiple iterations of the cuda application with different parameters) as an argument?

I am profiling the Caffe application, this is the link to it: https://github.com/BVLC/caffe

Thanks,
Siddhesh

Hi, Siddhesh

You mean when you profile the Caffe application, it throws an error “Unable to profile application. org.eclipse.core.runtime: /tmp/nvvp_ubuntu/launch/7/api.log doesn’t exist” ?

But if you launch the app with script, it works OK?

Can you clarify ?

Hi, Siddhesh

I think we’ve got your point now.
In r7.0 we actually do not support --profile-all-processes option in nvvp.
It will profiles only current process therefore nvvp is unable to profile the application.

If you wants to profile the application using script (which contains multiple iterations of the cuda application with different parameters) as an argument, there are 2 ways

  1. for --profile-all-processes, we generally recommend to run nvprof --profile-all-processes -o output_%p on one terminal and run the application on second. Once the application is done, please exit nvprof by typing “Ctrl+C” then you can import those generated pdm in visual profiler.

  2. Or you can use --profile-child-processes instead of --profile-all-processes,
    This is described here- http://docs.nvidia.com/cuda/profiler-users-guide/index.html#multiprocess-profiling

Hi Veraj,

I have written a simple script (script.sh) like this for profiling just one test image:

./build/examples/cpp_classification/classification.bin \ models/bvlc_reference_caffenet/deploy.prototxt \ models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel \ data/ilsvrc12/imagenet_mean.binaryproto
\ data/ilsvrc12/synset_words.txt \ examples/images/cat.jpg

And another script (script_100.sh) to classify 100 test images:

cd /home/ubuntu/caffe-master/test_images
for file in *
do
./classification.bin deploy.prototxt bvlc_reference_caffenet.caffemodel imagenet_mean.binaryproto synset_words.txt $file
done

If I don’t attach the script in the “File” option, rather type in the executable “classification.bin” and provide the arguments in the “Arguments” space, it profiles the app without any issues. But if I give the script.sh or script_100.sh as the “File”, it runs the script with the expected output but throws the error message without giving me any profiling data.

The --profile-all-processes works for 100 test images. My concern here is that we can’t attach a shell script to the “File” option. I was wondering if this is a bug in NVVP or am I missing something here?

Thanks,
Siddhesh

Hi, Siddhesh

Profiling through script is not supported in nvvp r7.0. It is being supported in future release.
So, for profiling through script you can use --profile-all-processes or --profile-child-processes option in nvprof to generate the nvprof output file and import it in nvvp.

Thanks!