CUDA 之基础

回答此问题,先给出网络配置的参数形式——<<<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.1GPU,这个值不能大于768,对于1.21.3的不能大于1024,对于我们试一试的这块级别高点的,不能大于1536。这个值可以获取哦——maxThreadsPerBlock

Ns:这个是可选参数,设定最多能动态分配的共享内存大小,比如16k,单不需要是,这个值可以省略或写0

S也是可选参数,表示流号,默认为0流这个概念我们这里不说。

接着,我想解决几个你肯定想问的两个问题,因为我看很多人想我这样的问这个问题:

1 block内的thread我们是都饱和使用吗?

答:不要,一般来说,我们开128256个线程,二维的话就是16*16

2 grid内一般用几个block呢?

答:牛人告诉我,一般来说是你的流处理器的4倍以上,这样效率最高。

回答这两个问题的解释,我想抄袭牛人的一段解释,解释的好的东西就要推广呀:

GPU的计算核心是以一定数量的Streaming Processor(SP)组成的处理器阵列,NV称之为Texture Processing Clusters(TPC),每个TPC中又包含一定数量的Streaming Multi-Processor(SM),每个SM包含8SPSP的主要结构为一个ALU(逻辑运算单元),一个FPU(浮点运算单元)以及一个Register File(寄存器堆)SM内包含有一个Instruction Unit、一个Constant Memory、一个Texture Memory8192Register、一个16KBShare Memory8Stream Processor(SP)和两个Special Function UnitsSFU)。(GeForce9300M GS只拥有1SM ThreadCUDA模型中最基本的运行单元,执行最基本的程序指令。Block是一组协作ThreadBlock内部允许共享存储,每个Block最多包含512ThreadGrid是一组Block,共享全局内存。Kernel是在GPU上执行的核心程序,每一个Grid对应一个Kernel任务。 在程序运行的时候,实际上每32Thread组成一个Warp,每个 warp 块都包含连续的线程,递增线程 ID WarpMP的基本调度单位,每次运行的时候,由于MP数量不同,所以一个Block内的所有Thread不一定全部同时运行,但是每个Warp内的所有Thread一定同时运行。因此,我们在定义Block Size的时候应使其为Warp Size的整数倍,也就是Block Size应为32的整数倍。理论上Thread越多,就越能弥补单个Thread读取数据的latency ,但是当Thread越多,每个Thread可用的寄存器也就越少,严重的时候甚至能造成Kernel无法启动。因此每个Block最少应包含64Thread,一般选择128或者256,具体视MP数目而定。一个MP最多可以同时运行768Thread,但每个MP最多包含8Block,因此要保持100%利用率,Block数目与其Size有如下几种设定方式: Ø 2 blocks x 384 threads Ø 3 blocks x 256 threads Ø 4 blocks x 192 threads Ø 6 blocks x 128 threads Ø 8 blocks x 96 threads 

这些电很重要啊,必须要充!不然,我就很难理解为什么网络线程如何分配的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值