1

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

如果我的内核用 注释numthreads(256, 1, 1),这是否意味着SV_GroupID首先执行零,其线程SV_GroupIndex从 0 到 255(以任何顺序),然​​后是SV_GroupID数字 1,等等?

如果不是默认情况下,有没有办法强制执行它......?我可以将线程数设置为等于硬件上可用的数量,以确保它一次只能执行一组吗?(听起来很老套!)

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

4

0 回答 0