Hello,
I had the same problem if the program changes the current directory during execution, or at least before calling the first CUDA method.
The visual profiler looks for the file in the initial directory, while the cuda profiler outputs its results in the directory that what active when it was called the first time if I remember correctly.
Maybe the visual profiler GUI could specify an absolute path to where the file must be created using an environment variable ?
Yes this may be the problem. Visual profiler is not using an absolute path. It just specifies the output file without any directory path. As suggested it will be better to use an absolute path. The visual profiler project working directory path can be used.
Thanks for the quick replay, you guys are right that was part of my problem. Now it seems to be working.
Thanks
so cool tool
Perhaps stupid question, but what can we understand of occupancy being 1 or occupancy being 0.66 etc…
occupancy=1 :
all of the maximum 768 threads are running at the same time on 1 Multiprocessor.
0.66 : 512 out of a possible 768 threads are running at the same time on 1 Multiprocessor.
etc., etc.
Just as a warning: occupancy is not a holy grail, you can have maximum performance with only low occupancy. It is just that the higher the occupancy, the more possibilities the GPU has to hide memory latencies.
Hey,
question again or bug i don’t know.
Normally i know 4x4 isn’t good size for blockdimension but i’ve tried it and visual profiler gave 0.33 as occupancy
Now, 4x4, we have 16 threads/block, each sm can take up to 768 threads, it can take up to 12 blocks. However, each SM can only take up to 8 blocks, so only 128 threads will gointo each SM. 128/768 = 0.1666 as occupancy.
If i repeat this calculation for 8x8, 12x12 and 16x16, i get correct results compared to Visual Profiler.
Where did i go wrong?
Kind regards,
Niels
With only 16 threads/block, all of your warps are only half full. My guess is that the profiler doesn’t check how much of each warp is active, and only looks at how many warps are in use at the same time. Warps with 16 real threads and 16 no-op threads would give you the factor of two you see.
this doesnt seem to work for me. i get:
=== Start profiling for session 'Session1' ===
Start program 'D:/program/MATLAB/R2007b/bin/matlab.exe' run #1 ...
Program run #1 completed.
Start program 'D:/program/MATLAB/R2007b/bin/matlab.exe' run #2 ...
Program run #2 completed.
Start program 'D:/program/MATLAB/R2007b/bin/matlab.exe' run #3 ...
Program run #3 completed.
Error -94 in reading profiler output.
Minimum expected columns (method,gputime,cputime,occupancy) not found in profiler output file.
i run win xp pro, and as can be seen form the output i use matlab r2007b.
any suggestions?
I have seen a couple of issues with the CUDA profiler. (CUDA 1.1)
Version 0.2: when running a kernel, on windows, error -94. Running the same thing with cygwin and “CUDA_PROFILE=1” exported properly, leads to no log file, at all.
Version 0.1: when running a kernel, under linux, and stopping the execution after a couple of minutes, the log file is created but is empty. Running directly through the GUI leads to a -94 error. This does not appear on windows.
Any ideas?
how have you solved your error -97?
i’m having that too and don’t know what to do … the app runs ok.
First check if the porfile output file is created (look in all dirs) while your program is running ! cause i have seen the files in some cases get deleted in others get garbled up after the program exits, i have to copy the file before i finish since i have a memory spill and for some reason that causes the files to be garbled up when the program exits.
if you find the file copy it and then import it to the gui :)
there is a .conf file that is created and deleted when i run the app…
but no log file …
EDIT: no, you are right, there is a log file … in a folder i never thought it would end up on, lol.
thanks
Strange behaviour and data miss interpretation in the profiler output!
I tried to use the Visual Profiler, first with the CUDA Matrix Multiplication example which worked fine and with my own cuda program which produced the strange output shown in the picture below. The occupancy column doesn’t contain the correct 0.4 or what ever number matches my implementation, but instead what i expect to be the CPU time. And the CPU time column contians something else, but i don’t know what… This results also in some strange timing diagram output, which is of very high importance to me.
Does anyone know where this behaviour comes from?
I really don’t get it because i launched the profiler the same way i did with the matrix multiplication example and there everything worked fine. Is there some parameter I have to set when compiling my application or anything?
Hi all,
I get the following error when I try to use cuda profiler to monitor my project.
The problem is I don’t get this error when I use the profiler on one of the existing nvidia sample projects.
My projects executes completely with no errors. But, I have no clue what I’m doing wrong here. Any suggestions???
Below is the error I get:
============================================================
=== Start profiling for session ‘Session2’ ===
Start program xterm -e /home/maryam/NVIDIA_CUDA_SDK/bin/linux/release/denoising, run #1 …
Program run #1 completed.
Error -97 in reading profiler output.
Unable to open file.
=============================================================
under what name is the output file created???
[font=“Courier”]$ strace -trace=open,read -o test.txt ./cudaprof[/font]
Reveals that the profiler writes a file but closes it right after and before writing anything?
[font=“Courier”] 0.000777 open(“/home/patrick/NVIDIA_CUDA_SDK/CudaVisualProfiler/bin/inputmethods///temp_cuda_profiler.conf”, O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE, 0666) = 15
0.000135 close(15) = 0
0.000433 pipe([15, 16]) = 0
0.000040 fcntl64(15, F_SETFD, FD_CLOEXEC) = 0
0.000031 fcntl64(16, F_SETFD, FD_CLOEXEC) = 0[/font]
When I try manually to create this file, the file is deleted when I start the session in the profiler, that means it’s not a problem of rights and the file is created, but deleted.
I have “Ubuntu 8.04” and have used the profiler successfully on 7.02.
Hi Patrick, what you found is the profile conf file not the output one. I dont remember the extension it has at the moment … :blink:
Does profiling work on programs using the driver API?
Is there a non-visual version of this that offers the same output?
Does this calculate GFLOPS performance?