nvcc -Xptxas –v compiler flag has no effect

Dave O. picture Dave O. · Sep 15, 2010 · Viewed 7.7k times · Source

I have a CUDA project. It consists of several .cpp files that contain my application logic and one .cu file that contains multiple kernels plus a __host__ function that invokes them.

Now I would like to determine the number of registers used by my kernel(s). My normal compiler call looks like this:

nvcc -arch compute_20 -link src/kernel.cu obj/..obj obj/..obj .. -o bin/..exe -l glew32 ...

Adding the "-Xptxas –v" compiler flag to this call unfortunately has no effect. The compiler still produces the same textual output as before. The compiled .exe also works the same way as before with one exception: My framerate jumps to 1800fps, up from 80fps.

Answer

kokosing picture kokosing · Mar 1, 2011

I had the same problem, here is my solution:

  1. Compile *cu files into device only *ptx file, this will discard host code

    nvcc -ptx *.cu

  2. Compile *ptx file:

    ptxas -v *.ptx

The second step will show you number of used registers by kernel and amount of used shared memory.