CUDA C Programming
线程管理
CUDA明确了线程层次抽象的概念以便于组织线程,这是一个两层的线程层次结构,由线程块和线程块网格构成。
关系:
- 由一个内核启动所产生的所有线程统称为一个网格。同一个网格中的所有线程共享相同的内存空间。
- 一个网格由多个线程块构成,一个线程块包含一组线程,同一个线程块内的线程协作通过:“同步”,“共享内存”的方式来实现,不同块内的线程不能协作。
- 线程依靠两个坐标变量来区分彼此
- blockIdx : 线程块在线程网格内的索引
- threadIdx : 块内的线程索引
- CUDA可以组织三维的网格和块。网格和块的维度由两个内置变量指定。
- gridDim : 线程格的维度,用每个线程格中的线程数来表示
- blockDim : 线程块的维度,用每个线程块中的线程数来表示
- 一个线程格会被组织成线程块的二维数组形式,一个线程块会被组织成线程的三维数组形式。
1 |
|
1 |
|
CUDA C Programming
https://cosmicdusty.cc/post/Knowledge/CUDACProgramming/