對一個給定線程計算其線程束-束內索引和線程束索引的公式如下
laneID = threadIdx.x % 32
warpID = threadIdx.x / 32
有兩組洗牌指令,分爲整數型和浮點型,每組有4種形式的洗牌指令
1.
int __shf1(int var, int srcLane, int width=warpSize);
2.
int __shf1_up(int var, unsigned int delta, int width=warpSize);
3.
int __shf1_down(int var, unsigned int delta, int width=warpSize);
4.
int __shf1_xor(int var, int laneMask, int width=warpSize);
在本節討論的所有洗牌函數還支持單精度浮點值。浮點洗牌函數採用浮點型的var參 數,並返回一個浮點數。否則,浮點洗牌函數就與整型洗牌函數相同了。