威海高新园区建设运营有限公司网站,开发网站的好处,怎么在网站添加paypal,四川建设人才网官网首页1. 引言
前序博客#xff1a;
CUDA简介——基本概念CUDA简介——编程模式CUDA简介——For循环并行化
Thread Index#xff1a;
每个Thread都有其thread index。 在Kernel中#xff0c;可通过内置的threadIdx变量来获取其thread index。threadIdx为三维的#xff0c;有相…1. 引言
前序博客
CUDA简介——基本概念CUDA简介——编程模式CUDA简介——For循环并行化
Thread Index
每个Thread都有其thread index。 在Kernel中可通过内置的threadIdx变量来获取其thread index。threadIdx为三维的有相应的(x,y,z)。 Thread Blocks最多有3个维度因此每个维度都有相应的index threadIdx.xthreadIdx.ythreadIdx.z
如
使用threadIdx足以确定某Thread在单个block内的位置但该threadIdx在整个grid来看其是不唯一的。
如启动kernel时配置的grid的x维度有2个block且每个block内的x维度有4个Threads则这2个block内的threadIdx.x的取值范围均为0到3 为从整个grid来唯一索引Thread需额外再引入一些索引变量
Thread Index以dim3 threadIdx来表示有threadIdx.x、threadIdx.y、threadIdx.z。Block Index以dim3 blockIdx来表示有blockIdx.x、blockIdx.y、blockIdx.z。Block Dimension以dim3 blockDim来表示有blockDim.x、blockDim.y、blockDim.z。Grid Dimension以dim3 gridDim来表示有gridDim.x、gridDim.y、gridDim.z。
从而Grid内索引
threadIdx仅在其自身Thread Block内是唯一的。为唯一表示某Thread在Grid内的唯一索引需计算【几乎每个CUDA kernel都需要确定其Thread在Grid内的唯一索引】
如 通过如下例子可更好地理解各个index值的含义。
参考资料
[1] 2019年5月视频 Intro to CUDA (part 4): Indexing Threads within Grids and Blocks