计算着色器中工作组的执行顺序是否确定且有序?

时间:2019-05-29 15:26:58

标签: unity3d compute-shader directcompute

我正在Unity中编写Compute Shader。我了解工作组中的一组线程可以在硬件上以任何顺序执行/完全并行执行。我不确定是不是一组工作组是否按特定顺序执行?

如果我的内核带有numthreads(256, 1, 1)注释,这是否意味着SV_GroupID零将首先使用其线程SV_GroupIndex从0到255(以任何顺序)执行,然后是{ {1}}第一,等等吗?

如果不是默认情况,是否有任何方法可以强制执行...?我可以将线程数设置为等于硬件上可用的线程数,以确保它一次只能执行一组操作或执行某些操作吗? (听起来很骇人!)

上下文:我有一个稀疏的有序数据数组,我试图在保留顺序的同时将其压缩为一个密集数组。事实证明,利用并行算法利用现有排序很棘手!

0 个答案:

没有答案