【CUDA】学习记录(4)-线程束的执行

线程模型

block:同一个block内共享内存,同一block中的thread可以彼此进行通信。
block:block-local synchronization。同一个块内的线程可以同步。
线程,可以根据blockIdx和threadIdx唯一的指定。



作者:不会code的程序猿
链接:https://www.jianshu.com/p/0afb1305b1ae
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Warp资源分配

➤ 程序计数器
➤寄存器
➤ 共享内存
每个warp的上下文都是全部保留在SM上的,所以warp之间的切换没有什么消耗。每个SM上的寄存器和共享内存分配给线程块,根据寄存器的多上和共享存储器的大小可以决定同时驻留在一个SM上的warp数目和线程块数目。
一个SM上同时驻留的线程越多,则每个线程占用的寄存器数量越少。

可扩展性Scalability

可扩展:当计算量增大时可以通过增加CUDA core来解决。
参考在不同数量的计算核心上执行相同应用程序代码的能力
作为透明的可扩展性。 透明可扩展的平台拓宽了现有用例
应用程序,并减轻开发人员的负担,因为它们可以避免对新的更改或不同的硬件。 可扩展性比效率更重要。 一个可扩展但效率低的系统可以通过简单地添加硬件核心来处理更大的工作负载。 效率很高但不可扩展系统可能快速达到可实现性能的上限。

C. 编程模型

软硬件概念对应(GPU 硬件层次和调度方式 - 知乎 (zhihu.com)

  • Thread -> CUDA Core
  • Block -> SM
  • Grid -> Device

 logical view and hardware view

Warp的执行方式

当创建了一个kernel时,从逻辑上理解为kernel中的所有线程都在并行,但是从硬件物理条件上看同一时刻并不是所有的线程都在执行。。
 

Warp和线程块

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值