CUDA #pragma unroll

#pragma unroll,顾名思义就是CUDA中用来建议编译器展开循环的指令

使用时需要放在需要展开的循环的前面,只对他紧跟的循环有效

1
2
3
4
#pragma unroll
for(int i=0;i<10;i++){
//do sth
}

#pragma unroll 后面可以跟一个数字来指示展开的层数

1
2
3
4
#pragma unroll 8
for(int i=0;i<16;i++){
//do sth
}

如果这个整数没有指定,则默认完全展开

如果指定成1,则代表不展开

如果指定成非正数或者超过int大小的数,则会忽略这个编译指令