我正在Unity中编写Compute Shader。我了解工作组中的一组线程可以在硬件上以任何顺序执行/完全并行执行。我不确定是不是一组工作组是否按特定顺序执行?
如果我的内核带有numthreads(256, 1, 1)
注释,这是否意味着SV_GroupID
零将首先使用其线程SV_GroupIndex
从0到255(以任何顺序)执行,然后是{ {1}}第一,等等吗?
如果不是默认情况,是否有任何方法可以强制执行...?我可以将线程数设置为等于硬件上可用的线程数,以确保它一次只能执行一组操作或执行某些操作吗? (听起来很骇人!)
上下文:我有一个稀疏的有序数据数组,我试图在保留顺序的同时将其压缩为一个密集数组。事实证明,利用并行算法利用现有排序很棘手!