CUDA线程分配

dim3 dimBlock(16,16);

//定义block内的thread二维网络为16*16

dim3 dimGrid((COLS+dimBlock.x-1)/(dimBlock.x), (ROWS+dimBlock.y-1)/(dimBlock.y));

//定义grid内的block二维网络为1*2

unsigned int row = blockDim.y*blockIdx.y + threadIdx.y;

//二维数组中的行号

unsigned int col = blockDim.x*blockIdx.x + threadIdx.x;

//二维线程中的列号

——<<<Dg,Db,Ns,S>>>,各个参数含义如下:

Dg:定义整个grid的维度,类型Dim3,但是实际上目前显卡支持两个维度,所以,dim3<<Dg.x, Dg.y, 1>>>z维度默认只能为1,上面显示出这个最大有65536*65536*1,每行有65536block,每列有65536block,整个grid中一共有65536*65536*1个block

Db:定义了每个block的维度,类型Dim3,比如512*512*64,这个可以定义3维尺寸,但是,这个地方是有讲究了,三个维度的积是有上限的,对于计算能力1.01.1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值