NV and AMD

zz https://www.zhihu.com/question/35361192/answer/62410540?from=profile_answer_card 

要弄清楚这个问题需要充分理解现代 GPU 的架构。受限于篇幅,就不展开了。

从硬件调度的角度上来看:

1. Grid:GPU (GPC) 级别的基本调度单位。
2. Block (CTA):SM 级别的基本调度单位。
3. Warp:ALU 级别的基本调度单位。

从资源分配和通信的角度来看:

1. Grid:共享同样的 Kernel 和 Context。
2. Block (CTA):同一 CTA 的线程运行在同一个 SM,因此同一 CTA 中的不同线程可以通过 Shared Memory 通信,并共享 L1 cache(只读)。
3. Warp:32 宽度的 SIMD,占用同一块向量寄存器,线程间可以通过特殊指令交换寄存器中的数据。


一个 warp 对应一条指令流,等价于一个同时操作 32 个数据的 thread。所以出现 warp 的地方直接换成 thread 理解也没问题。

以 block 的形式组织 warp 是为了实现可扩展性。全局同步开销太大,但是如果让一个 block 中的 warp 通过 barrier 同步来通信开销就小得多,这样设计出来的程序性能才有可能随着 ALU 数量的增加线性增长。


作者:程亦超
链接:https://www.zhihu.com/question/35361192/answer/62415387
来源:知乎
著作权归作者所有,转载请联系作者获得授权。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值