Есть __global__ процедура.
20 строк, 1 цикл внутри.
заглянул в PTX, и мне стало дурно.
.entry _Z15BLXCrossMulGeneP12TNeuroHeaderi (
.param .u32 __cudaparm__Z15BLXCrossMulGeneP12TNeuroHeaderi_header,
.param .s32 __cudaparm__Z15BLXCrossMulGeneP12TNeuroHeaderi_N)
{
.reg .u16 %rh<4>;
.reg .u32 %r<44>;
.reg .f32 %f<73>;
.reg .pred %p<11>;
.loc 18 18 0
Означает ли это, что каждый поток будет кушать 132 регистра?
Cuda_Occupancy_Calculator.xls мне всё уже рассказал хорошего про такой расход регистров одним потоком.
P.S. Пробовал ставить ограничение по регистрам в компиляторе. Никакой разницы.
А что говорит, если nvcc
А что говорит, если nvcc пускать с --ptxas-options="-v" ?