首页 > 编程语言 > 详细

CUDA 计算线程索引的一般公式

时间:2017-08-06 22:25:23      阅读:442      评论:0      收藏:0      [点我收藏+]

CUDA thread index:

int blockId = blockIdx.z * (gridDim.x*gridDim.y)
                    + blockIdx.y * gridDim.x
                    + blockIdx.x;

int threadId = blockId * (blockDim.x * blockDim.y * blockDim.z)
                      + threadIdx.z * (blockDim.x * blockDim.y)
                      + threadIdx.y * blockDim.x
                      + threadIdx.x;

 

从上到下分别是:

block的3,2,1维;

thread的3,2,1维。

如果没有对应维度,删除对应的计算部分即可。

维度的值最小是1,但是索引的值最小是0.

 

ps: 最少的情况是都只有1维,最多的情况是都有3维。

所以最简单的都只有1维时:blockIdx.x * blockDim.x + threadIdx.x

 

CUDA 计算线程索引的一般公式

原文:http://www.cnblogs.com/kangtian0/p/7296198.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!