Interpretowanie wyników --ptxas-options = -v
Próbuję zrozumieć wykorzystanie zasobów dla każdego z moich wątków CUDA dla ręcznie napisanego jądra.
Skompilowałem mojekernel.cu
plik do akernel.o
plik znvcc -arch=sm_20 -ptxas-options=-v
i mam następujące wyjście
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]
Patrząc na powyższe wyniki, czy to słuszne
każdy wątek CUDA używa 46 rejestrów?nie ma rejestru przechodzącego do lokalnej pamięci?Mam też pewne problemy ze zrozumieniem wyjścia.
Moje jądro wywołuje całe mnóstwo__device__
Funkcje. IS 72 bajty suma pamięci dla ramek stosu__global__
i__device__
Funkcje?
Jaka jest różnica pomiędzy0 byte spill stores
i0 bytes spill loads
Dlaczego informacje są dlacmem
(które zakładam jest stałą pamięcią) powtarzane dwukrotnie z różnymi liczbami? W jądrze nie używam stałej pamięci. Czy to oznacza, że kompilator jest,pod maską, powiedz GPU, aby używał stałej pamięci?