码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-08-06 23:14:18      阅读:978      评论:0      收藏:0      [点我收藏+]

标签:没有   维度   公式   lock   read   int   uda   thread   dex   

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 计算线程索引的一般公式

标签:没有   维度   公式   lock   read   int   uda   thread   dex   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!