Interpretando a saída de --ptxas-options = -v
Eu estou tentando entender o uso de recursos para cada um dos meus threads CUDA para um kernel escrito à mão.
Eu compilei meukernel.cu
arquivo para umkernel.o
arquivo comnvcc -arch=sm_20 -ptxas-options=-v
e eu tenho a seguinte saída
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]
Olhando para a saída acima, é correto dizer que
cada thread CUDA está usando 46 registradores?não há registro de derramamento na memória local?Eu também estou tendo alguns problemas com a compreensão da saída.
Meu kernel está chamando um monte de__device__
funções. IS 72 bytes a soma total da memória para os quadros de pilha do__global__
e__device__
funções?
Qual é a diferença entre0 byte spill stores
e0 bytes spill loads
Por que as informações paracmem
(que estou assumindo é memória constante) repetida duas vezes com figuras diferentes? Dentro do kernel não estou usando nenhuma memória constante. Isso significa que o compilador é,sob o capô, vai dizer a GPU para usar alguma memória constante?