2015-03-05

CUDA の block と warp、threadIdx と thread ID について

1つの block が 31*31 のスレッドで構成される場合、

warpSize = 32
31 * 31 / warpSize = 30
31 * 31 % warpSize = 1

となり、block は 31個の warp に分割される。

また、thread ID は、

(thread ID) = threadIdx.x + threadIdx.y * blockDim.x

[参考]
cuda - How is the 2D thread blocks padded for warp scheduling? - Stack Overflow:
http://stackoverflow.com/questions/15044671/how-is-the-2d-thread-blocks-padded-for-warp-scheduling