Alex Rivera | Logout

CUDA: Understanding the PTX info

Asked 2012-09-07T17:40:23.903
11

I'm not finding much useful info on PTX info --ptxas-options=-v I found a 2008 NVCC pdf that has a small blurb, but no details.
1) What is 64 bytes cmem[0], 12 bytes cmem[16] mean? I gather it refers to constant memory. I don't use any constant mem in the code, so this must come from the compiler. (What goes into RO mem?)
2) What does 49152+0 bytes smem mean? Yes, it is shared memory, but what do the two #'s mean?
3) Is there a doc that will help me with this? (What is it called?)
4) Where can I find a doc that will explain the *.ptx file? (I'd like to be able to read/understand the cuda assy code.)

Edit
Report

1 Answer

8
  1. cmem is dicussed here. In your case it means 64 bytes are used to pass arguments to kernel and 12 bytes are occupied by compiler-generated constants.

  2. In case of smem, the first number is the amount of data your code request, and the second number (0) indicates how much memory is used for system purposes.

  3. I don't know of any official information regarding verbose ptxas output format. E.g. in "CUDA Occupancy calculator" they simply say to sum the values for smem without any explnations.

  4. There are several PTX docs on nVidia website. The most fundamental is PTX: Parallel Thread Execution ISA Version 3.0.

answered 2012-09-07T18:27:20.193

Your Answer