在compute的时候,是要dispatch一个数量的代表分了多少块任务集,dispatch的块内部也是有一个数量的,那么这些值怎么取的呢
内部,N卡32
外面dispatch的数量就是all/32
然后细说这个值
这有一个叫core的东西,就是相当于thread了,那一个SM里,有不少的core,但是,有一个warp scheduler,他应该负责调度,他一次只抓32个,据说。。他可能也不是32个core一人一次,还可能是8个core一人跑4次
然后可以得到一次并行你真的跑的数量其实是active thread * sm的数量,但是默认喃 active thread就当他是个warp 也就是32个线程
为什么说这个东西呢?
在使用compute shader的时候,其实脑子里就是任务并行化,但是你如果直接dispatch 1000个block,一个block里一个任务,其实浪费是很大的,要想用出来是正优化,还是要了解一下这个的
https://blog.csdn.net/qq_41598072/article/details/82877655
https://zhuanlan.zhihu.com/p/462191421