在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