cuda中线程的组织

设有 

dim3 blocks(bx,by);

dim3 threads(tx,ty);

ker<<<blocks,threads>>>()

则每个线程块有tx行ty列的线程,x=threadIdx.x,y=threadIdx.y代表第x行第y列的那个线程;

整个网格有bx行by列的线程块,blockIdx.x,blockIdx.y代表第x行第y列的那个线程块。

行数和列数都可以从0开始,所以threadIdx.x必然小于tx...因为每个线程块总共有tx行个线程,分别第0行,第1行,第2行...第tx-1行,最大就是第tx-1行。


线程的组织格式最好与我们的数据的组织格式能够吻合,或者一一对应,这有利于编程时的逻辑思考。


当然:以上只是一种看法,线程组织在网格里实际上是一维组织的,弄成多维的只是为了思考方便,所以把x,y看成坐标也是可以的。这里我们看成第x行第y列是为了和数组的组织统一起来,因为数组a[x][y],中的x和y也是第x行第y列的意思。所以只要我们思维清晰不要混乱就行,按自己的编程习惯认定一种。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zlingh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值