CUDA二维网格模型下线程索引的计算



用于线程索引计算的CUDA运行时库提供的变量

gridDim.x —— 线程网格X维度上线程块的数量

gridDim.y —— 线程网格Y维度上线程块的数量


blockDim.x  —— 一个线程块X维度上的线程数量

blockDim.y  —— 一个线程块Y维度上的线程数量


threadIdx.x —— 线程块X维度上的线程索引

threadIdx.y —— 线程块Y维度上的线程索引


二维线程网格模型下计算当前线程索引:

idx = (blockIdx.x * blockDim.x) + threadIdx.x;

idy = (blockIdx.y * blockDim.y) + threadIdx.y;

threadIdx = idx + idy * blockDim.x * gridDim.x;

解释:

idx 得到的是当前线程在整个线程网格中X维度的索引

idy 得到的是当前线程下整个线程网格中Y维度的索引

blockDim.x * gridDim.x计算得到线程网格中一行(x维度)的线程数量

idy*blockDim.x * gridDim.x计算得到线程网格中idy行(x维度)的总的线程数量

threadIdx为得到的当前线程的索引

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值