Интерпретация выходных данных --ptxas-options = -v
Я пытаюсь понять использование ресурсов для каждого из моих потоков CUDA для рукописного ядра.
Я собрал свойkernel.cu
подать вkernel.o
файл сnvcc -arch=sm_20 -ptxas-options=-v
и я получил следующий вывод
ptxas info : Compiling entry function '_Z12searchkernel6octreePidiPdS1_S1_' for 'sm_20'
ptxas info : Function properties for _Z12searchkernel6octreePidiPdS1_S1_
72 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Used 46 registers, 176 bytes cmem[0], 16 bytes cmem[14]
Глядя на вывод выше, правильно ли сказать, что
each CUDA thread is using 46 registers? there is no register spilling to local memory?У меня также есть некоторые проблемы с пониманием результатов.
My kernel is calling a whole lot of __device__
functions. IS 72 bytes the sum-total
of the memory for the stack frames of the __global__
and __device__
functions?
What is the difference between 0 byte spill stores
and 0 bytes spill loads
Why is the information for cmem
(which I am assuming is constant memory) repeated twice with different figures? Within the kernel I am not using any constant
memory. Does that mean the compiler is, under the hood, going to tell the GPU to use some constant memory?