GPU中的SM和wrap的关系

tech2025-09-29  19

介绍

我们在cpu上做好了准备工作,然后将指令发送给GPU, 在这里我们看到grid为10,block为128,也就说有10个block,每一block有128个thread, 如何分配这些block? 原则

在GPU中一个block是不能拆分到两个SM中一个SM中的block要满足SM的条件限制 SM有哪些限制? 简单有这些,当然还有其他的没有展示,这里数值都是我瞎编的,具体的可以去官网文档查看参数: 一个block需要哪些资源? 一个SM能给的资源如上,那么一个block需要哪些资源呢?简单如下: 分配结果如下: 可以看到还有4个block没地方搁,不用担心,中间的调度器会一直轮询所有SM的,只要有空闲的位置就会将还没安排的block安排上去。 block里面所有线程都是同时执行吗? 在SM中,block继续分割为wrap.一个wrap为32个thread,共用一套指令,至于为啥是32,这和硬件有关系,比如人家卡里就32个cuda core,那可不是一次就只能执行1个wrap(32个线程)。 wrap如何执行? 好了,到现在为止wrap也切割好了,具体执行方式如下: 这个就不详细解释了,跟CPU调度类似,就是你io耽误了,其他的任务上,你IO结束了,你在继续占有计算资源。
最新回复(0)